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
- 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.
- 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.
- Les tickets de backfill peuvent être créés avec un champ
- Propriétés de la file d’attente
- Les tickets de backfill ne déclenchent pas l’allocation de Multiplayer Server.
- Les tickets de backfill ne sont pas pris en compte dans les statistiques de file d’attente, car leurs joueurs sont déjà en train de jouer et fausseraient le temps d’attente.
- 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’indicateurReturnMemberAttributes. 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’erreurMatchmakingTicketMembershipLimitExceeded, accompagnée d’une
liste des utilisateurs ayant des tickets de backfill en attente dans un corps
errorDetails.
