Passer au contenu principal
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, ce qui 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.

Prérequis

  • Une connaissance de base du SDK PlayFab Multiplayer. Pour plus d’informations, consultez le Démarrage rapide du SDK Matchmaking.
  • Définissez PFMULTIPLAYER_INCLUDE_SERVER_APIS avant d’inclure l’en-tête de matchmaking. Par exemple :

Configurer un ticket de backfill de serveur

Créez et renseignez une structure PFMatchmakingServerBackfillTicketConfiguration avec les détails nécessaires :
  • timeoutInSeconds : durée, en secondes, pendant laquelle tenter de remplir le ticket.
  • queueName : le nom d’une file d’attente de correspondance.
  • memberCount : le nombre de membres actuellement dans la correspondance.
  • members : les membres PFMatchmakingMatchMember actuellement dans la correspondance.
  • serverDetails (facultatif) : renseignez PFMultiplayerServerDetails avec des informations sur votre serveur (FQDN, adresse IP, ports, région) qui sont fournies aux clients.
Le champ PFMultiplayerServerDetails::ipv4Address n’est pas validé et peut être utilisé pour fournir des informations de chaîne de connexion arbitraires aux clients.

Création d’un ticket de backfill de serveur

Pour créer un ticket de backfill de serveur avec PFMultiplayerCreateServerBackfillTicket, nous devons transmettre l’entité de notre serveur de jeu (sous forme de PFEntityKey) ainsi que la configuration de backfill créée à l’étape précédente.

Vérifier l’état du ticket de matchmaking

Vous devez vérifier les mises à jour du ticket en appelant PFMultiplayerStartProcessingMatchmakingStateChanges pour recevoir les changements d’état, puis en appelant PFMultiplayerFinishProcessingMatchmakingStateChanges lorsque vous avez terminé de traiter ces changements d’état. Le SDK retourne un changement d’état TicketStatusChanged chaque fois que l’état du ticket change, et un changement d’état TicketCompleted lorsque le matchmaking est terminé.

Obtenir la correspondance

Après avoir reçu le changement d’état PFMatchmakingStateChangeType::TicketCompleted, appelez PFMatchmakingTicketGetMatch pour obtenir les détails de la correspondance. Ces détails contiennent l’ID de la correspondance, les utilisateurs qui ont été mis en correspondance, la région préférée pour la correspondance et une chaîne d’arrangement pour le lobby associé à la correspondance. Une fois que vous avez récupéré les informations dont vous avez besoin dans la structure PFMatchmakingMatchDetails, le ticket doit être détruit avec PFMultiplayerDestroyMatchmakingTicket.

Annulation d’un ticket

Si vous souhaitez annuler le processus de matchmaking avant l’expiration du délai défini dans PFMatchmakingServerBackfillTicketConfiguration, appelez PFMatchmakingTicketCancel avec le handle du ticket. L’appel de cette API ne garantit pas l’annulation du ticket. Le ticket peut encore se terminer avant que l’annulation puisse être traitée, ou la demande d’annulation peut échouer en raison d’erreurs réseau ou de service. Vous pouvez toujours traiter les changements d’état du matchmaking pour obtenir le résultat du ticket si vous souhaitez confirmer que l’annulation du ticket est terminée avant de continuer. Sinon, vous pouvez appeler immédiatement PFMultiplayerDestroyMatchmakingTicket.
Dernière modification le 8 octobre 2026