> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Démarrage rapide du matchmaking

> Présentation pas à pas d'un flux PlayFab Matchmaking complet dans Unity : créer des tickets, interroger leur état et récupérer les résultats de correspondance à l'aide du SDK Multiplayer.

# Démarrage rapide de l'API REST Matchmaking

<Note>
  Nous vous recommandons vivement d'envisager l'utilisation des SDK Multiplayer, car ils incluent la prise en charge des messages en temps réel, ce qui réduit le besoin d'interrogation. Cela améliore l'expérience de matchmaking et réduit les délais. [Démarrage rapide - SDK client](/fr-CA/services/playfab/multiplayer/matchmaking/quickstart-client-sdk)
</Note>

Ce guide de démarrage rapide vous guide tout au long du processus d'intégration de la fonctionnalité de matchmaking. Tous les exemples de code de ce démarrage rapide sont destinés à Unity; toutefois, les concepts et le flux s'appliquent (en général) également aux autres plateformes.

Selon la conception de votre jeu, consultez la section sur le matchmaking [à utilisateur unique](#single-user-ticket-matchmaking) et [à plusieurs
utilisateurs](#multiple-user-ticket-matchmaking).

Ce tutoriel montre comment soumettre un ticket à une file d'attente spécifique afin de trouver une partie. Une file d'attente correspond généralement à un mode de jeu ou à plusieurs modes de jeu (par exemple, un mode capture du drapeau et un mode roi de la colline dans la même file d'attente).

Le service de matchmaking se charge de trouver une correspondance parmi les tickets d'une file d'attente. Lorsqu'une correspondance est trouvée, votre titre doit se charger de connecter les joueurs entre eux pour jouer.

## Configurer une file d'attente de matchmaking dans Game Manager

Ce démarrage rapide suppose que vous avez configuré vos files d'attente dans Game Manager. Pour plus de détails sur la configuration d'une file d'attente, consultez [Configuration des files d'attente de matchmaking](/fr-CA/services/playfab/multiplayer/matchmaking/config-queues).

<a id="single-user-ticket-matchmaking" />

## Matchmaking avec un ticket à utilisateur unique

Si votre jeu dispose d'un mode de jeu 1 contre 1 ou permet à un utilisateur d'entrer seul dans le matchmaking, envisagez le matchmaking à utilisateur unique. Le matchmaking à utilisateur unique suit le modèle illustré ci-dessous.

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/multiplayer/matchmaking/quickstart/matchmaking-single-user-flow.png?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=7a34b642c26c3ab073ca258bae379604" alt="Flux de matchmaking" width="708" height="460" data-path="images/playfab/multiplayer/matchmaking/quickstart/matchmaking-single-user-flow.png" />

### Créer un ticket de matchmaking

Un utilisateur crée un ticket de matchmaking à l'aide de [CreateMatchmakingTicket](xref:titleid.playfabapi.com.multiplayer.matchmaking.creatematchmakingticket). Lorsque la création du ticket réussit, le service retourne un `TicketId`.

La création du ticket nécessite de spécifier le `Creator` (l'identité et les attributs de l'utilisateur), `GiveUpAfterSeconds` (le délai en secondes avant que le service abandonne la mise en correspondance du ticket) et le `QueueName` dans lequel rechercher une correspondance.

Le champ `Creator` doit contenir les attributs utilisateur requis par la configuration de la file d'attente correspondant au `QueueName`. Une bonne valeur pour `GiveUpAfterSeconds` est de 120 secondes, afin d'éviter que les utilisateurs n'abandonnent d'eux-mêmes.

```csharp theme={null}
PlayFabMultiplayerAPI.CreateMatchmakingTicket(
    new CreateMatchmakingTicketRequest
    {
        // The ticket creator specifies their own player attributes.
        Creator = new MatchmakingPlayer
        {
            Entity = new EntityKey
            {
                Id = "<Entity ID goes here>",
                Type = "<Entity type goes here>",
            },

            // Here we specify the creator's attributes.
            Attributes = new MatchmakingPlayerAttributes
            {
                DataObject = new
                {
                    Skill = 24.4
                },
            },
        },

        // Cancel matchmaking if a match is not found after 120 seconds.
        GiveUpAfterSeconds = 120,

        // The name of the queue to submit the ticket into.
        QueueName = "myqueue",
    },

    // Callbacks for handling success and error.
    this.OnMatchmakingTicketCreated,
    this.OnMatchmakingError);
```

### Vérifier l'état du ticket de matchmaking

Vous devez interroger le service à l'aide du `TicketId` pour accéder au `Status` du ticket dans le matchmaking. Pour ce faire, faites appeler [GetMatchmakingTicket](xref:titleid.playfabapi.com.multiplayer.matchmaking.getmatchmakingticket) par votre titre. Vous pouvez effectuer jusqu'à 10 interrogations par minute. Par exemple, interrogez l'état du ticket toutes les 6 secondes. L'interrogation peut augmenter les délais lors de la récupération de l'état de votre ticket. C'est pourquoi nous vous recommandons vivement d'envisager la méthode du SDK Multiplayer décrite dans [Démarrage rapide - SDK client](/fr-CA/services/playfab/multiplayer/matchmaking/quickstart-client-sdk). Celle-ci évite d'avoir à interroger le service grâce à la fonctionnalité de messages en temps réel.

Lorsque l'état du
ticket passe à `Matched`, votre client peut arrêter d'interroger le ticket. À partir de ce moment, le ticket inclut le `MatchId`.

```csharp theme={null}
PlayFabMultiplayerAPI.GetMatchmakingTicket(
    new GetMatchmakingTicketRequest
    {
        TicketId = "<ticket ID goes here>",
        QueueName = "myqueue",
    },
    this.OnGetMatchmakingTicket,
    this.OnMatchmakingError);
```

### Obtenir la correspondance

Depuis votre client, appelez [GetMatch](xref:titleid.playfabapi.com.multiplayer.matchmaking.getmatch) avec le `MatchId` fourni dans la réponse de
[GetMatchmakingTicket](xref:titleid.playfabapi.com.multiplayer.matchmaking.getmatchmakingticket). Cette correspondance contient la liste des utilisateurs qui ont été mis en correspondance.

```csharp theme={null}
PlayFabMultiplayerAPI.GetMatch(
    new GetMatchRequest
    {
        MatchId = "<match ID goes here>",
        QueueName = "myqueue",
    },
    this.OnGetMatch,
    this.OnMatchmakingError);
```

### Annulation d'un ticket de matchmaking

Si, pour une raison quelconque, votre client souhaite annuler le processus de matchmaking avant que `GiveUpAfterSeconds` ne soit atteint, appelez [CancelMatchmakingTicket](xref:titleid.playfabapi.com.multiplayer.matchmaking.cancelmatchmakingticket) avec le `TicketId`. Si aucune correspondance n'a encore été trouvée, le ticket est retiré du processus de matchmaking et son état passe à `Canceled`.

```csharp theme={null}
PlayFabMultiplayerAPI.CancelMatchmakingTicket(
    new CancelMatchmakingTicketRequest
    {
        QueueName = "myqueue",
        TicketId = "<ticket ID goes here>",
    },
    this.OnTicketCanceled,
    this.OnMatchmakingError);
```

<a id="multiple-user-ticket-matchmaking" />

## Matchmaking avec un ticket à plusieurs utilisateurs

Si votre jeu permet à des groupes de joueurs d'entrer ensemble dans une file d'attente de matchmaking, quelques étapes supplémentaires sont nécessaires pour entrer dans le matchmaking. Nous conseillons à votre titre de désigner un chef de groupe (le créateur), afin d'éviter des appels inutiles. Le chef crée le ticket, mais tous les membres du groupe doivent accepter de le rejoindre.

### Créer un ticket de matchmaking (plusieurs utilisateurs)

Le groupe doit élire un créateur de ticket dans votre titre. Le créateur crée un ticket de matchmaking à l'aide de [CreateMatchmakingTicket](xref:titleid.playfabapi.com.multiplayer.matchmaking.creatematchmakingticket), qui retourne un `TicketId` en cas de réussite. La création du ticket nécessite de spécifier le `Creator` (l'identité et les attributs de l'utilisateur), `GiveUpAfterSeconds` (le délai en secondes avant que le service abandonne la mise en correspondance du ticket), `MembersToMatchWith` (les identités des autres membres du groupe) et le `QueueName` dans lequel rechercher une correspondance.

Le champ `Creator` doit contenir les attributs utilisateur requis par la configuration de la file d'attente correspondant au `QueueName`. Une bonne valeur pour `GiveUpAfterSeconds` est de 120 secondes, afin d'éviter que les utilisateurs n'abandonnent d'eux-mêmes.

### Les membres du groupe rejoignent le ticket de correspondance

Une fois le ticket de correspondance créé, les autres membres du groupe doivent le rejoindre pour faire avancer le processus de matchmaking. À ce stade, le ticket est à l'état `WaitingForPlayers`. Il ne commence à être mis en correspondance avec d'autres tickets qu'une fois que tous les `MembersToMatchWith` ont rejoint le ticket.

Pour que les membres le rejoignent, le `Creator` doit partager le `TicketId` avec les autres membres au moyen de votre titre. Chaque membre appelle ensuite [JoinMatchmakingTicket](xref:titleid.playfabapi.com.multiplayer.matchmaking.joinmatchmakingticket), en fournissant ses propres attributs requis. Une fois que tous les membres ont rejoint le ticket, l'état du ticket devient `WaitingForMatch`.

```csharp theme={null}
PlayFabMultiplayerAPI.JoinMatchmakingTicket(
    new JoinMatchmakingTicketRequest
    {
        TicketId = "<ticket ID>",
        QueueName = "myqueue",
        Member = new MatchmakingPlayer
        {
            Entity = new EntityKey
            {
                Id = "<Entity ID goes here>",
                Type = "<Entity type goes here>",
            },
            Attributes = new MatchmakingPlayerAttributes
            {
                DataObject = new
                {
                    Skill = 19.3
                },
            },
        }
    },
    this.OnJoinMatchmakingTicket,
    this.OnMatchmakingError);
```

Le reste du processus est identique à celui du [matchmaking avec un ticket à utilisateur unique](#single-user-ticket-matchmaking)

### Connecter vos joueurs entre eux

Une fois vos joueurs mis en correspondance, vous souhaiterez qu'ils se rejoignent, soit au moyen d'un serveur, soit par des connexions pair à pair.

Si vous utilisez un serveur dédié, vous pouvez vous appuyer sur l'ID de correspondance pour identifier de façon unique le groupe de joueurs dans lequel ils doivent se trouver. Si vous utilisez les serveurs multijoueurs de PlayFab, `GetMatch` fournit un serveur et un port auxquels vos joueurs peuvent se connecter.

Pour plus d'informations, consultez [Intégration avec PlayFab Multiplayer Servers](/fr-CA/services/playfab/multiplayer/matchmaking/multiplayer-servers).

Dans cette version, la connexion pair à pair n'est actuellement pas officiellement prise en charge par le matchmaking. Si le pair à pair est nécessaire, envisagez d'utiliser [PlayFab Party](/fr-CA/services/playfab/multiplayer/networking) ou une [solution de contournement provisoire](/fr-CA/services/playfab/multiplayer/matchmaking/peer-to-peer).
Communiquez avec nous pour obtenir davantage d'assistance à ce sujet.

## Conclusion

Grâce à ce démarrage rapide, vous devriez maintenant disposer d'un flux de matchmaking fonctionnel dans votre jeu. Vous devez également tenir compte des points suivants :

* La façon dont votre titre gère la formation des groupes.
* Ce que votre titre affiche pendant que les utilisateurs attendent une correspondance.
* La façon de gérer les échecs et les nouvelles tentatives.


## Related topics

- [Démarrage rapide du SDK Matchmaking](/fr-CA/services/playfab/multiplayer/matchmaking/quickstart-client-sdk.md)
- [Démarrage rapide du SDK Lobby](/fr-CA/services/playfab/multiplayer/lobby/lobby-getting-started.md)
- [Démarrage rapide](/fr-CA/services/playfab/economy-monetization/economy-v2/quickstart.md)
- [Démarrage rapide du plugiciel Multiplayer pour Unity](/fr-CA/services/playfab/multiplayer/lobby/lobby-matchmaking-sdks/multiplayer-unity-plugin-quickstart.md)
- [Démarrage rapide du SDK Generator](/fr-CA/services/playfab/sdks/sdkgenerator/quickstart.md)
