Passer au contenu principal
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, améliore l’expérience de matchmaking et réduit les délais. Utilisation des tickets de backfill de serveur - SDK Multiplayer
Les jeux hébergés sur un serveur doivent parfois rechercher des joueurs supplémentaires. Cela se produit le plus souvent lorsqu’un ou plusieurs joueurs se déconnectent pendant la partie. Les tickets de backfill de serveur permettent à un serveur de jeu de rechercher des joueurs supplémentaires qui s’intègrent dans la partie en cours. Les tickets de backfill de serveur diffèrent des tickets de matchmaking ordinaires de plusieurs façons :
  1. Mise en correspondance
    • Les tickets de backfill ne peuvent pas être mis en correspondance entre eux.
    • Les tickets de backfill sont prioritaires lors de la recherche. Cela réduit la fragmentation de la base de joueurs.
  2. Contrat
    • Les tickets de backfill peuvent être créés avec un champ ServerDetails. Cela permet au serveur d’indiquer comment les joueurs mis en correspondance doivent s’y connecter.
    • Les tickets de backfill peuvent être créés avec des affectations d’équipe. Cela permet aux jeux comportant des équipes de conserver leurs informations d’équipe.
  3. Propriétés de la file d’attente
  4. Propriété
    • Les tickets de backfill appartiennent à un serveur de jeu, et non à un utilisateur. Les utilisateurs ne peuvent ni consulter les tickets de backfill ni interagir avec eux de quelque façon que ce soit.

Création d’un ticket de backfill de serveur

Le processus de backfill commence de la même façon que la création d’un ticket de matchmaking ordinaire, mais avec l’appel CreateServerBackfillTicket au lieu d’un appel CreateServerMatchmakingTicket. Le serveur de jeu doit fournir toutes les informations sur les membres de la partie qu’il héberge actuellement. Le moyen le plus efficace consiste à stocker les attributs retournés dans le résultat de correspondance précédent. Ces attributs peuvent être récupérés en appelant GetMatch avec l’indicateur ReturnMemberAttributes. Le serveur de jeu peut également interroger les utilisateurs pour obtenir les informations d’attributs. En plus des membres, le serveur de jeu peut spécifier deux informations supplémentaires.

ServerDetails

Cette structure est identique à celle retournée par un appel GetMatch et permet au serveur de spécifier toutes les informations nécessaires pour s’y connecter. Lorsque le ticket de backfill est mis en correspondance, sa structure ServerDetails est retournée à tous les joueurs qui appellent GetMatch sur la correspondance résultante. Tous les champs de cette structure sont facultatifs. Les titres n’ont parfois besoin que d’un sous-ensemble de ces champs pour fournir suffisamment d’informations aux clients afin qu’ils se connectent au serveur de jeu.
Le champ IPV4Address n’est pas validé et peut être utilisé pour fournir des informations de chaîne de connexion arbitraires aux clients.

Affectations d’équipe

Si le ticket de backfill est soumis à une file d’attente avec des équipes, chaque membre peut également être spécifié avec un TeamId, indiquant l’équipe dans laquelle il se trouve actuellement. Cette appartenance est conservée lorsqu’une correspondance est retournée. Si aucun TeamId n’est spécifié pour un utilisateur, celui-ci peut être placé dans n’importe quelle équipe.

Interaction avec un ticket de backfill

Une fois créé, un ticket de backfill commence à rechercher des tickets de matchmaking ordinaires qui répondent aux critères des règles. Le flux des tickets de backfill est identique au fonctionnement des tickets de matchmaking ordinaires, mais avec des API analogues. Le serveur de jeu peut vérifier l’état de son ticket en appelant GetServerBackfillTicket. Il peut également annuler le ticket en appelant CancelServerBackfillTicket.
Les clients ne sont pas autorisés à annuler un ticket de backfill dont ils font partie. Supposons qu’un client participe à une correspondance 4 contre 4 et qu’un joueur de l’équipe adverse se déconnecte. Le client pourrait conserver son avantage en annulant continuellement tous les tickets de backfill dont il fait partie. Pour éviter cela, seuls les serveurs de jeu peuvent annuler les tickets de backfill.

Limites d’appartenance et récupération après la perte de tickets de backfill

Comme pour les tickets de matchmaking ordinaires, un utilisateur ne peut à tout moment faire partie que d’un seul ticket de backfill par file d’attente. Cette limite est suivie séparément de celle des tickets ordinaires contrôlés par un client. Si un serveur de jeu crée un ticket de backfill puis plante, les utilisateurs du ticket de backfill perdu ne peuvent pas être soumis dans un autre ticket de backfill en raison de la limite d’appartenance. Un serveur de jeu le découvre en recevant l’erreur MatchmakingTicketMembershipLimitExceeded, accompagnée d’une liste des utilisateurs ayant des tickets de backfill en attente dans un corps errorDetails.
Le serveur de jeu peut sortir un utilisateur de cette situation en appelant CancelAllServerBackfillTicketsForPlayer, qui supprime tous les tickets de backfill dont l’utilisateur fait partie. ListServerBackfillTicketsForPlayer est également fourni pour découvrir les tickets de backfill dont un joueur peut faire partie.

Interactions avec la règle de sélection de région

La règle de sélection de région exige normalement que les tickets spécifient un tableau de mesures de latence pour leur attribut. Un ticket de backfill, en revanche, représente une partie déjà en cours dans un centre de données particulier. Au lieu d’un tableau de mesures de latence, la requête créée doit spécifier une région dans la structure ServerDetails. Pour être mis en correspondance avec le ticket de backfill, les tickets doivent avoir un temps de ping acceptable vers la région spécifiée par le ticket de backfill.

Interactions avec la règle de similarité de taille de ticket d’équipe

La règle de similarité de taille de ticket d’équipe garantit que les grands groupes de joueurs sont opposés à d’autres grands groupes de joueurs. Cependant, les tickets de backfill ne contiennent pas l’information indiquant quels joueurs ont rejoint la partie en groupe. Par conséquent, la règle de similarité de taille de ticket est ignorée lors de la mise en correspondance des tickets de backfill.
Dernière modification le 8 octobre 2026