Passer au contenu principal
Cette page décrit la séquence complète de démarrage et d’arrêt du SDK PlayFab Services. Tous les titres suivent le même modèle général : configurer les hooks facultatifs, initialiser Core, créer une configuration de service, initialiser Services, effectuer le travail, puis tout arrêter dans l’ordre inverse.

Séquence d’initialisation

L’initialisation comporte quatre étapes. La première est facultative; les trois autres sont obligatoires.

Étape 1 : définir des hooks de mémoire personnalisés (facultatif)

Si votre titre utilise un allocateur de mémoire personnalisé, appelez PFMemSetFunctions avant toute autre API PlayFab. Toutes les allocations de mémoire du SDK passent alors par vos propres rappels alloc et free.
PFMemSetFunctions doit être appelé avant PFInitialize. Il ne peut pas être appelé à nouveau une fois les hooks définis.
Si vous n’avez pas besoin d’une gestion personnalisée de la mémoire, ignorez cette étape. Le SDK utilise les routines d’allocation par défaut.

Étape 2 : initialiser PlayFab Core

PFInitialize configure l’état global du SDK, notamment la couche HTTP et la file d’attente des tâches d’arrière-plan. La signature exacte varie selon la plateforme.

Windows, Linux, iOS et macOS

Transmettez un XTaskQueueHandle si vous souhaitez contrôler la file d’attente qui gère le travail en arrière-plan. Transmettez nullptr pour utiliser la file d’attente du pool de threads par défaut.

Android

Sur Android, vous devez également fournir la machine virtuelle Java et le contexte de l’application afin que le SDK puisse initialiser libHttpClient :
Si vous n’appelez pas explicitement PFInitialize, PFServicesInitialize l’appelle en interne avec les paramètres par défaut. Cela convient à la plupart des titres. Toutefois, si vous utilisez des hooks de mémoire personnalisés au moyen de PFMemSetFunctions, vous devez appeler vous-même PFInitialize; sinon, PFServicesInitialize initialise Core avant que vos hooks de mémoire ne prennent effet, et le SDK utilise alors les routines d’allocation par défaut.

Étape 3 : créer une configuration de service

PFServiceConfigCreateHandle crée un handle qui indique au SDK le titre et le point de terminaison PlayFab à cibler. Vous trouverez ces deux valeurs dans Game Manager.
Le PFServiceConfigHandle retourné est requis pour tous les appels de connexion ultérieurs.

Étape 4 : initialiser PlayFab Services

PFServicesInitialize configure la couche Services (Inventory, Leaderboards, Friends, etc.) au-dessus de Core.

Windows, Linux, iOS et macOS

Le paramètre est réservé à un usage ultérieur; transmettez nullptr.

Android

Sur Android, transmettez un struct HCInitArgs contenant la machine virtuelle Java et le contexte de l’application :
Une fois cet appel réussi, le SDK est prêt. Vous pouvez connecter des joueurs et effectuer des appels de service.

Cycle de vie de PFServiceConfigHandle

Un PFServiceConfigHandle est un handle à comptage de références. Le SDK gère sa durée de vie interne par comptage de références, mais il vous incombe de fermer chaque handle que vous possédez.

Dupliquer un handle

Utilisez PFServiceConfigDuplicateHandle lorsque vous devez partager une configuration de service entre des composants qui gèrent leur propre durée de vie :

Séquence d’arrêt

L’arrêt suit l’ordre inverse de l’initialisation. Vous devez désinitialiser Services avant Core, et les deux appels sont asynchrones.

Étape 1 : fermer tous les handles ouverts

Avant de démonter le SDK, fermez chaque PFEntityHandle et PFServiceConfigHandle que vous possédez :

Étape 2 : désinitialiser Services

PFServicesUninitializeAsync démonte la couche Services. Attendez la fin de cette opération avant de continuer.

Étape 3 : désinitialiser Core

Une fois le nettoyage de Services terminé, appelez PFUninitializeAsync pour démonter Core :
Si vous n’avez pas appelé explicitement PFInitialize, vous pouvez ignorer PFUninitializeAsync. Dans ce cas, PFServicesUninitializeAsync gère automatiquement le nettoyage de Core. Toutefois, si vous avez appelé vous-même PFInitialize, vous devez appeler vous-même PFUninitializeAsync.

Exemple complet

Cet exemple montre le cycle de vie complet, de l’initialisation à l’arrêt, pour un titre Windows :

Erreurs courantes

Voir aussi

Dernière modification le 8 octobre 2026