Vue d’ensemble des modifications
Le SDK unifié PlayFab v2 introduit plusieurs améliorations clés :- Architecture unifiée : tous les services PlayFab (Core, Services, Party, Multiplayer, GameSave) sont intégrés dans un seul SDK
- Authentification simplifiée : une seule connexion donne accès à tous les services PlayFab via des handles d’entité
- Gestion automatique des jetons : plus besoin d’actualiser manuellement les jetons ni de gérer les ID d’entité
- Interopérabilité améliorée : communication fluide entre les différents services PlayFab
- Structure de projet simplifiée : une seule installation de SDK au lieu de plusieurs packages distincts
Modifications de la structure du projet
Pour les utilisateurs du GDK
Ancienne structure (GDK 2504 et versions antérieures) :- Extensions distinctes pour chaque composant du SDK
- Dossiers d’inclusion et de bibliothèques individuels : PlayFab.Services.Cpp, PlayFab.Party.Cpp, PlayFab.Multiplayer.Cpp
- Chaque service avait un nom ExtensionLibrary distinct dans le GDK
- Plusieurs téléchargements requis depuis GitHub pour les différents services PlayFab
- Un seul SDK PlayFab unifié
- Structure organisée par plateforme avec des sous-dossiers (xbox, windows, etc.)
- Tous les en-têtes regroupés dans un seul dossier includes (Core, Services, Multiplayer, Party, GameSave)
- Bibliothèques combinées dans un dossier lib unifié
Mise à jour des références de votre projet
Pendant la période de transition (GDK 2510), l’ancien et le nouveau SDK coexistent. Pour migrer :- Supprimez les anciennes références : supprimez les références à PlayFab.Services.Cpp, PlayFab.Party.Cpp et aux autres extensions de SDK individuelles
- Ajoutez la référence unifiée : référencez le nouveau SDK unifié PlayFab ou mettez à jour les chemins d’inclusion et de bibliothèques vers les emplacements unifiés
- Anticipez l’avenir : Microsoft supprimera les anciens dossiers dans les futures versions du GDK (éventuellement d’ici 2026) ; mettez donc à jour vos fichiers de projet en conséquence
Pour les utilisateurs de GitHub/autonomes
- Remplacez les multiples téléchargements de SDK par le package SDK unifié unique
- Mettez à jour les chemins du projet pour utiliser la nouvelle structure de dossiers organisée par plateforme
Authentification et gestion des entités
Le concept d’entités et de jetons d’entité existe dans les deux versions, mais leur utilisation a été simplifiée dans la v2.Modifications de la gestion des jetons
Approche des SDK autonomes PlayFab (v1) :- Récupération manuelle des jetons à l’aide de
PFAuthenticationGetEntityTokenAsync - Actualisation manuelle des jetons à leur expiration
- Transmission de l’ID d’entité et des chaînes de jeton aux autres services (par exemple,
partyManager.CreateLocalUser(entityId, titlePlayerEntityToken, &localUser))
- Gestion automatique des jetons par le SDK Core
- Actualisation des jetons en arrière-plan avant leur expiration
- Transmission directe du
PFEntityHandleaux autres services (par exemple,partyManager.CreateLocalUser(entityHandle, &localUser))
Étapes de migration pour l’authentification
- Supprimez la gestion manuelle des jetons : supprimez le code qui récupère ou vérifie manuellement les jetons PlayFab
- Stockez les handles d’entité : conservez le
PFEntityHandleobtenu lors de la connexion et utilisez-le dans tous les services PlayFab - Mettez à jour les appels de service : remplacez les paramètres d’ID d’entité et de jeton par des handles d’entité
- Gérez la réauthentification : utilisez les API
PFAuthenticationReLogin*Asyncpour les scénarios de réauthentification
Modifications d’API incompatibles par composant
PlayFab Core
Impact de la migration : modifications minimes requises- La plupart des appels au service Core restent inchangés
- Mettez à jour les chemins d’inclusion pour qu’ils pointent vers les en-têtes du SDK unifié
PlayFab Services
Impact de la migration : modifications minimes requises- La plupart des appels Services restent inchangés
- Mettez à jour les chemins d’inclusion pour qu’ils pointent vers les en-têtes du SDK unifié
PlayFab Party (mise en réseau/voix)
Impact de la migration : petites modifications requisesModifications de l’initialisation
Initialisation v1 :Modifications de la création d’utilisateurs locaux
Approche v1 :Étapes de migration pour Party
- Mettez à jour l’initialisation : remplacez le simple appel
PartyManager::Initialize()par l’approche utilisant une structure de configuration - Supprimez la récupération des jetons : supprimez tout code qui obtient manuellement l’ID d’entité et le jeton pour Party
- Transmettez des handles d’entité : utilisez directement
PFEntityHandleau lieu de paramètres de type chaîne - Supprimez la logique d’actualisation des jetons : supprimez le code qui vérifie ou actualise périodiquement les jetons Party
- Mettez à jour les dépendances : assurez-vous que PlayFab Core est initialisé avant
PartyManager::Initialize() - Supprimez les appels propres à XBOX : remplacez
PartyXblManagerInitialize()par l’appel génériquePartyInitialize()sur XBOX
PlayFab Multiplayer (Lobby et matchmaking)
Impact de la migration : petites modifications requises Les concepts de base (lobby, ticket de matchmaking) restent les mêmes, mais les fonctions attendent désormais des handles d’entité au lieu de chaînes.Modifications des opérations de lobby
Approche v1 :Étapes de migration pour Multiplayer
- Mettez à jour les appels de fonction : remplacez les paramètres d’ID PlayFab et de jeton d’entité par
PFEntityHandle - Supprimez les étapes d’authentification : supprimez les appels distincts « Authenticate Multiplayer »
- Initialisez explicitement : appelez
PFMultiplayerInitialize()et éventuellementPFMultiplayerStartProcessing() - Mettez à jour le matchmaking : utilisez des handles d’entité lors de la création des tickets de matchmaking
Liste de vérification générale de la migration
Mises à jour du code
- Mettre à jour les chemins d’inclusion : pointez vers le répertoire d’inclusion du SDK unifié
- Mettre à jour l’édition des liens des bibliothèques : liez les bibliothèques unifiées au lieu des bibliothèques distinctes
- Supprimer les fonctions dépréciées : supprimez les appels aux fonctions supprimées, comme
PartyManager::CreateLocalUserWithEntityType - Remplacer la gestion manuelle des jetons : supprimez la logique de mise en cache et d’actualisation des jetons
- Mettre à jour l’ordre d’initialisation : assurez-vous que PlayFab Core est initialisé avant les autres services
Liste de vérification des tests
Après la migration, vérifiez chaque sous-système :- Authentification : la connexion renvoie un handle d’entité valide
- Opérations de lobby : la création et la jonction de lobbies fonctionnent correctement
- Mise en réseau Party : les joueurs peuvent se connecter et communiquer entre différentes machines
- Gestion des erreurs : tous les appels PlayFab gèrent correctement les erreurs
- Scénarios multi-utilisateurs : plusieurs utilisateurs locaux fonctionnent, le cas échéant
Problèmes courants et solutions
Erreurs du compilateur concernant des paramètres manquants :- Vérifiez si les signatures de fonction ont changé pour exiger un
PFEntityHandle - Assurez-vous de transmettre le handle d’entité au lieu d’ID sous forme de chaînes
- Vérifiez que PlayFab Core est initialisé avant les autres services
- Vérifiez que la connexion est terminée avant de créer des utilisateurs locaux dans Party/Multiplayer
- Rares, mais vérifiez que la v2 n’introduit pas de problèmes dans les chemins de code critiques en termes de performances
Avantages de la migration
Simplification du code
- Complexité réduite : supprimez le code de contournement lié à la séparation des services de la v1
- Gestion unifiée des erreurs : tous les services PlayFab utilisent un signalement des erreurs cohérent
- Authentification centralisée : un seul flux de connexion pour toutes les fonctionnalités PlayFab
Interopérabilité améliorée
- Intégration fluide : l’ajout de nouvelles fonctionnalités PlayFab nécessite une configuration minimale
- Meilleure prise en charge multi-utilisateurs : le SDK unifié gère plus efficacement plusieurs utilisateurs locaux
- Modèle d’entité cohérent : même approche d’authentification pour tous les services
Pérennité
- Développement actif : la v2 est la version activement maintenue
- Nouvelles fonctionnalités : les futures fonctionnalités PlayFab cibleront le SDK unifié
- Support à long terme : les SDK v1 finiront par être dépréciés
Étapes suivantes
- Mettez à jour la structure du projet : migrez vers la structure du SDK unifié
- Refactorisez l’authentification : implémentez l’approche basée sur les handles d’entité
- Testez minutieusement : vérifiez que toutes les fonctionnalités PlayFab fonctionnent correctement
- Nettoyez le code : supprimez les contournements v1 dépréciés et la gestion manuelle des jetons
- Surveillez les performances : assurez-vous que la migration n’introduit pas de problèmes de performances
