Fonctionnement de la restauration
Game Saves suit les versions finalisées des données de sauvegarde d’un joueur. Lorsque vous déclenchez une restauration, le service crée une nouvelle version dont le contenu est identique à l’état antérieur que vous restaurez. La restauration préserve l’historique des versions d’origine : elle ne supprime ni n’écrase les versions précédentes. Les autres appareils qui se synchronisent après la restauration la voient comme une mise à jour normale. Il existe deux types de restauration. Vous déclenchez chacun d’eux en transmettant un indicateur d’option àPFGameSaveFilesAddUserWithUiAsync :
Les deux options reviennent au comportement par défaut (synchronisation de la dernière version actuelle) s’il n’existe aucun point de restauration admissible.
Quand utiliser chaque type de restauration
Restauration vers la dernière version fiable
UtilisezRollbackToLastKnownGood lorsque vous soupçonnez que le dernier téléversement est défectueux. Voici des déclencheurs courants :
- Échec du téléversement ou échec d’un contrôle d’intégrité après le téléchargement d’une sauvegarde.
- Un plantage pendant ou immédiatement après une opération de sauvegarde.
- Un joueur signale un état corrompu ou une régression.
Restauration vers le dernier conflit
UtilisezRollbackToLastConflict lorsqu’un joueur a choisi le mauvais côté lors de la résolution d’un conflit. Comme décrit dans Conflits de Game Saves, les deux choix de résolution conservent la branche écartée. Cette option de restauration rétablit cette branche conservée.
Appel de l’API
Déclenchez la restauration en transmettant l’option appropriée àPFGameSaveFilesAddUserWithUiAsync. Vous ne pouvez appeler cette fonction qu’une seule fois par utilisateur; pour effectuer une restauration pour un utilisateur déjà ajouté, appelez d’abord PFGameSaveFilesUninitializeAsync et attendez la fin de l’opération.
Comportement de repli
S’il n’existe aucun point de restauration admissible pour le type de restauration demandé, l’appel se comporte comme si vous aviez transmisPFGameSaveFilesAddUserOptions::None. La dernière version actuelle est synchronisée normalement. Vérifiez les fichiers synchronisés une fois l’appel terminé pour confirmer si une restauration a eu lieu.
Configuration du titre
Vous pouvez restreindre les restaurations lancées par le client à l’aide de deux indicateurs de configuration. Lorsque vous activez l’un de ces indicateurs, seuls les outils de soutien et Game Manager peuvent effectuer ce type de restauration.
Définissez ces indicateurs dans Game Manager, sous Progression > Game Saves.
Gestion des erreurs
Points à prendre en compte
- La restauration crée une nouvelle version. Elle n’efface pas l’historique. La séquence de versions du joueur continue d’avancer.
- Le service suit automatiquement les versions fiables. Il détermine les versions admissibles en fonction des cycles réussis de téléversement puis de remplacement. Votre jeu n’a pas besoin de marquer explicitement les versions.
- Une restauration par appel d’ajout d’utilisateur. Comme vous ne pouvez appeler
PFGameSaveFilesAddUserWithUiAsyncqu’une seule fois par utilisateur, le déclenchement d’une deuxième restauration nécessite d’appeler d’abordPFGameSaveFilesUninitializeAsync. - Les rappels d’interface utilisateur se déclenchent toujours. La restauration suit le même flux de synchronisation qu’un appel d’ajout d’utilisateur normal. Inscrivez vos rappels d’interface utilisateur avant d’appeler l’API.
- Restreignez la restauration si nécessaire. Si votre jeu gère la récupération côté serveur ou au moyen d’outils de soutien, désactivez la restauration côté client à l’aide des indicateurs de configuration du titre afin d’éviter que les joueurs annulent accidentellement leur progression.
- La restauration fonctionne sur toutes les plateformes. Cette API ne comporte aucune restriction propre à une plateforme.
