Introduction
Ce document s’adresse aux développeurs de jeux qui utilisent actuellement MPSD et souhaitent passer à PlayFab Multiplayer et MPA pour leurs jeux multijoueurs. Il couvre les scénarios multijoueurs les plus courants et fournit des extraits de code montrant comment utiliser PlayFab Multiplayer avec MPA.Vue d’ensemble de Multiplayer Session Directory (MPSD)
- Service de session complet permettant de partager les informations nécessaires pour connecter un groupe d’utilisateurs
- Intégré à l’interface utilisateur XBOX pour les fonctionnalités d’invitation et de jonction
- Entièrement intégré au matchmaking SmartMatch
- Les sessions sont dérivées de modèles de session prédéfinis
- Fonctionnalités intégrées de détection de la connectivité et de gestion du flux de session
- Disponible en service à service
Vue d’ensemble du service Multiplayer Activity (MPA)
- Service léger qui simplifie l’intégration XBOX Live pour les activités des joueurs, les invitations et les joueurs récents
- Se coordonne avec le shell et le système d’exploitation de la console pour l’envoi et l’acceptation d’invitations et les jonctions
- Aucune gestion de session ni aucun matchmaking
- Disponible en service à service
Vue d’ensemble de PlayFab Multiplayer
- Service complet de lobby multijoueur incluant des fonctionnalités de recherche et de parcours des lobbies
- Notifications de service multiplateformes en temps réel avec une intégration d’API transparente
- Service de matchmaking complet prenant en charge les notifications en temps réel
Initialisation
Le tableau suivant répertorie les fonctions comparables utilisées par MPSD et PlayFab Multiplayer pour l’initialisation.Initialisation - Exemple de code
Initialisez la bibliothèque avec votre titleID PlayFab et définissez le jeton d’entité reçu lors de la connexion au service PlayFab.Modifications de l’état du lobby
Le tableau suivant répertorie les fonctions comparables utilisées par MPSD et PlayFab Multiplayer pour gérer les événements liés aux sessions et aux lobbies.Modifications de l’état du lobby - Exemple de code
Indiquez à la bibliothèque que vous commencez à traiter les modifications d’état. Traitez chaque modification d’état en file d’attente, puis indiquez que vous avez terminé de traiter les modifications d’état.Créer un lobby
Le tableau suivant répertorie les fonctions comparables utilisées par MPSD et PlayFab Multiplayer pour créer et rejoindre une session ou un lobby.Aucune installation ni configuration supplémentaire dans PlayFab Game Manager n’est nécessaire pour créer un lobby. Toute la configuration peut être effectuée dans le code.
Créer un lobby - Exemple de code
Configurez le lobby et définissez les éventuelles propriétés initiales du lobby ou des membres, puis créez et rejoignez le lobby.Rechercher des lobbies
Le tableau suivant répertorie les fonctions comparables utilisées par MPSD et PlayFab Multiplayer pour rechercher des sessions ou des lobbies.Rechercher des lobbies - Exemple de code
Définissez la configuration de recherche, puis recherchez des lobbies.Clés de recherche de lobby
Seul un ensemble restreint de clés peut être utilisé pour définir des propriétés de recherche personnalisées.- Pour les propriétés de type chaîne, les clés suivantes sont prises en charge : string_key1, string_key2, […] string_key30
- Pour les propriétés numériques, les clés suivantes sont prises en charge : number_key1, number_key2, […] number_key30
Opérateurs de recherche de lobby
Les chaînes de requête des API FindLobbies sont structurées selon une syntaxe de type OData. La taille maximale de la chaîne de filtre est de 600 caractères. Ces opérateurs OData peuvent être utilisés pour composer des chaînes de requête. Les opérateurs sont sensibles à la casse.Lorsque vous comparez des propriétés de type chaîne, veillez à placer la valeur comparée entre apostrophes. Par exemple, “string_key1 eq ‘SOME STRING VALUE’”. Les propriétés numériques n’ont pas besoin d’être entourées d’apostrophes.
Tri des résultats de recherche
Chaîne de style OData qui contient le tri de cette requête dans l’ordre croissant (“asc”) ou décroissant (“desc”). Les clauses OrderBy peuvent être utilisées pour toutes les clés de recherche numériques ou les clés de recherche prédéfinies numériques. Pour trier selon la proximité avec un nombre, le moniker distance peut être utilisé afin de trier selon la distance par rapport à la clé de recherche numérique donnée. Vous ne pouvez pas utiliser l’ordre croissant ou décroissant avec le tri par distance. Ce champ ne prend en charge qu’une seule clause de tri ou une seule clause de distance. Si aucun tri n’est fourni ou si un départage est nécessaire pour le tri donné, le tri par défaut est décroissant selon l’heure de création.Tri et filtrage des résultats de recherche - Exemple de code
Rejoindre un lobby
Le tableau suivant répertorie les fonctions comparables utilisées par MPSD et PlayFab Multiplayer pour rejoindre des sessions ou des lobbies.Rejoindre un lobby nécessite une chaîne de connexion. En général, l’hôte du lobby définit cette chaîne de connexion dans son activité ou l’envoie via une invitation. Pour obtenir la chaîne de connexion, vous devez appeler
PFLobbyGetConnectionString.Rejoindre un lobby - Exemple de code
Définissez la configuration de jonction initiale, puis rejoignez le lobby.Mettre à jour un lobby
Le tableau suivant répertorie les fonctions comparables utilisées par MPSD et PlayFab Multiplayer pour mettre à jour une session ou un lobby.PFLobbyPostUpdate peut être utilisé pour mettre à jour à la fois les propriétés du lobby et les propriétés des membres. Vous pouvez mettre à jour l’un de ces types de propriétés, ou les deux, en un seul appel à la fonction.Mettre à jour un lobby - Exemple de code (propriétés du lobby)
Mettre à jour un lobby - Exemple de code (propriétés des membres)
Matchmaking
Les API de matchmaking de PlayFab Multiplayer sont relativement similaires à celles de MPSD.Les files d’attente de matchmaking doivent être configurées via PlayFab Game Manager.
Modifications de l’état du matchmaking
Le tableau suivant répertorie les fonctions comparables utilisées par MPSD et PlayFab Multiplayer pour gérer les événements liés au matchmaking.Modifications de l’état du matchmaking - Exemple de code
Indiquez à la bibliothèque que vous commencez à traiter les modifications d’état. Traitez chaque modification d’état en file d’attente, puis indiquez que vous avez terminé de traiter les modifications d’état.Démarrer le matchmaking
Démarrer le matchmaking - Exemple de code
Le matchmaking ne démarre pas tant que tous les membres spécifiés dans le champ
membersToMatchWith n’ont pas rejoint.Nettoyage
Le tableau suivant répertorie les fonctions comparables utilisées par MPSD et PlayFab Multiplayer pour le nettoyage et l’arrêt.Veillez à quitter tous les lobbies actifs et à détruire tous les tickets de matchmaking en cours avant d’appeler
PFMultiplayerUninitialize.Nettoyage - Exemple de code
Activités
Le tableau suivant répertorie les fonctions comparables utilisées par MPSD et MPA pour gérer les activités.Lorsque vous définissez une activité ou envoyez une invitation, veillez à utiliser la chaîne de connexion renvoyée par
PFLobbyGetConnectionString.Activités - Exemple de code
Invitations
Le tableau suivant répertorie les fonctions comparables utilisées par MPSD et MPA pour envoyer et recevoir des invitations.Invitations - Exemple de code (interface utilisateur du titre)
Invitations - Exemple de code (interface utilisateur XBOX)
XGameUiShowMultiplayerActivityGameInviteResult utilise l’activité actuellement définie. Vous devez définir une activité à l’aide de XblMultiplayerActivitySetActivityAsync avant d’utiliser cette fonction.Joueurs récents
Le tableau suivant montre comment la liste des joueurs récents est gérée avec MPSD et MPA.Pour éviter la limitation, il est recommandé de regrouper les appels à
XblMultiplayerActivityUpdateRecentPlayers.