Skip to main content
Cet article fournit des instructions détaillées pour les scénarios courants de développement et de migration lors de l’utilisation de Game Saves. Il couvre la configuration essentielle dans Microsoft Partner Center, les bonnes pratiques pour écrire des données en toute sécurité, la gestion des sauvegardes propre à chaque plateforme et les procédures de test recommandées.

Configurations de Partner Center

Activation des services XBOX et de Game Saves pour votre titre

Pour utiliser les API Game Saves, effectuez les étapes suivantes dans Partner Center.
  • Activez les services XBOX.
    1. Connectez-vous à Partner Center.
    2. Accédez à votre titre, puis activez les services XBOX dans les paramètres. Pour plus d’informations sur cette étape, consultez Configuration d’une application ou d’un jeu dans Partner Center, pour les partenaires gérés.
  • Obtenez votre identificateur de configuration de service (SCID). Toutes les opérations de lecture et d’écriture doivent être associées à un SCID. Le SCID est également utilisé pour l’initialisation de Game Saves.
    • Dans Partner Center, recherchez le SCID sous l’onglet XBOX services > XBOX settings de votre titre. Vous pouvez également trouver l’ID d’application de votre compte Microsoft (MSA) (MSAAppID) sur cette page. Vue des services XBOX dans Partner Center.
Après avoir obtenu votre SCID et votre MSAAppID, ajoutez cet ID d’application au fichier de configuration (.mgc) du titre. Pour plus d’informations sur les fichiers de configuration de jeu, consultez Création du fichier Microsoft Game Config .mgc.

Scénarios de développement

Où intégrer Game Saves dans mon code ?

La logique de Game Saves dépend de la connexion de l’utilisateur. Ajoutez le code Game Saves à côté du flux de connexion de l’utilisateur.

Comment m’assurer que mes données de sauvegarde de jeu ne sont pas endommagées ?

Pour enregistrer des données en toute sécurité et éviter leur endommagement, procédez comme suit. Ces recommandations s’appliquent à toutes les opérations de sauvegarde.
  1. Écrivez dans un fichier temporaire.
    • Sérialisez vos données de sauvegarde dans un nouveau fichier (par exemple, save.tmp) au lieu d’écraser la sauvegarde active. Cette étape protège la sauvegarde existante si votre processus est interrompu en cours d’écriture.
  2. Fermez le handle d’écriture une fois l’écriture entièrement validée sur le disque.
  3. Remplacez de manière atomique l’ancien fichier de sauvegarde par le nouveau fichier temporaire à l’aide de la fonction Win32 ReplaceFile.

Comment prendre en charge les appareils hors connexion ?

Il vous incombe de déterminer le comportement du titre en cas de perte de connexion, avant comme après l’initialisation de Game Saves. Pour plus d’informations sur le comportement hors connexion, consultez Comprendre le flux de synchronisation de Game Saves.

Quelles interactions utilisateur dois-je connaître ?

Le système d’exploitation affiche des invites système lorsqu’une action nécessite une intervention de l’utilisateur. Pour plus d’informations sur ces invites, consultez Boîtes de dialogue Game Saves.

Est-il possible d’enregistrer uniquement en local, sur l’appareil ?

Si vous transmettez un handle d’utilisateur null au processus d’initialisation de Game Save, le système crée un fournisseur propre à la machine. Les données sont stockées localement et persistent sur l’appareil, avec une limite maximale de 256 Mo. Les données ne sont pas synchronisées avec le cloud. Pour plus d’informations sur le stockage de Game Saves, consultez Systèmes de stockage de Game Saves.

Gestion des sauvegardes de jeu via l’appareil

Accès aux sauvegardes de jeu locales sur PC à l’aide de l’Explorateur de fichiers

Si votre titre s’exécute sur PC, vous avez un accès direct aux fichiers. Selon l’implémentation de l’API Game Saves, vous pouvez accéder à vos sauvegardes de jeu locales aux emplacements suivants. Lorsque vous manipulez des données sur PC, la logique de synchronisation s’applique toujours. Par exemple, modifier des données alors que le titre ne détient pas de verrou provoque des conflits.

Accès aux sauvegardes de jeu locales sur console

Gérez les données de sauvegarde de la console via l’interface utilisateur XBOX. Pour y accéder, procédez comme suit.
  1. Sélectionnez le bouton Accueil de la manette XBOX.
  2. Sélectionnez Mes jeux et applications > Tout afficher.
  3. Placez le curseur sur votre jeu, puis sélectionnez le bouton Affichage.
  4. Sélectionnez Données enregistrées.
Vue de gestion de Game Saves dans le stockage de la console. Tenez compte des points suivants lorsque vous manipulez des données directement sur la console.
  • La suppression de données sur la console à l’aide de l’interface système ne supprime pas la copie stockée dans le cloud. Lorsque vous relancez le titre, il synchronise les données depuis le cloud.
  • Les données du fournisseur machine apparaissent comme un utilisateur sans nom. Ces données restent sur l’appareil, ne se synchronisent pas avec le cloud et sont liées à l’appareil.
Pour plus d’informations sur le fournisseur machine, consultez Systèmes de stockage de Game Saves. Pour un contrôle plus précis des sauvegardes de jeu, utilisez les outils Game Saves.

Scénarios de test

Lorsque vous créez des cas de test, séparez la validation des données de la logique de sauvegarde de jeu.

Tester si les sauvegardes de jeu se synchronisent correctement vers et depuis le cloud

Suivez les étapes ci-dessous pour tester la bonne synchronisation. Les flux de test vérifient le comportement. XGameSaveFiles :
  1. Vérifiez que le SCID est correct.
  2. Vérifiez que vous utilisez le bon handle d’utilisateur.
  3. Vérifiez que le titre appelle XGameSaveFilesGetFolderWithUIAsync pendant la session de jeu actuelle. Si le titre reprend après une suspension, appelez la fonction.
    1. Utilisez Fiddler pour vérifier que le verrou a été acquis.
    2. Enregistrez ce chemin et utilisez-le plus tard pour vérifier que les données sont en cours de chargement.
  4. Écrivez des données dans le chemin de fichier fourni par XGameSaveFilesGetFolderWithUIAsync.
  5. Arrêtez ou suspendez le titre.
  6. Attendez 10 à 30 secondes que le système d’exploitation charge automatiquement les données dans le cloud et libère le verrou.
    1. Vérifiez à l’aide de Fiddler que les données ont été chargées et que le verrou a été libéré.
  7. Supprimez manuellement les données du dossier fourni par XGameSaveFilesGetFolderWithUIAsync.
    1. Sur console, accédez à ces données via les paramètres du joueur.
  8. Relancez le titre, puis tentez de connecter l’utilisateur.
  9. Une boîte de dialogue de synchronisation apparaît, indiquant une synchronisation de téléchargement active depuis le cloud.
Pour vous aider à tester la réussite de la synchronisation, consultez les ressources suivantes :

Tester si les sauvegardes de jeu sont correctement itinérantes

Pour un plan de test permettant de vérifier l’itinérance des données, consultez le plan de test XR-052-06.

Scénarios de migration

Partage de sauvegardes de jeu entre titres

Pour transférer des données d’un titre à un autre ou y accéder, effectuez deux étapes.
  1. Modifiez les stratégies d’accès du titre auquel vous souhaitez accéder dans Partner Center.
  2. Initialisez les fournisseurs Game Saves des deux titres dans le code source.

Modifier les stratégies d’accès

Un titre contrôle quels titres ont accès à ses données de sauvegarde de jeu en configurant des stratégies d’accès.
  1. Accédez à Partner Center.
  2. Sélectionnez Apps and games > <votre titre> > Gameplay settings.
  3. Dans Gameplay Settings, sélectionnez Access Policies, puis développez Connected Storage.
  4. Sélectionnez Add app/service, puis ajoutez les titres auxquels vous souhaitez donner accès.
  5. Lorsque vous avez terminé d’ajouter les titres, sélectionnez Save, puis Publish. Les modifications prennent effet dans un délai d’une heure.
La capture d’écran suivante montre un exemple dans lequel le titre GameSaveFilesCombo est rendu entièrement accessible au titre GameSaveSample. Vue de Partner Center pour modifier la stratégie d'accès d'un titre.

Initialiser les fournisseurs Game Save

Maintenant que vous avez l’autorisation d’accéder au premier titre, vous pouvez lire les données XGameSave de l’autre titre.
  • Si vous utilisez XGameSave, appelez XGameSaveInitializeProvider ou XGameSaveInitializeProviderAsync pour chaque titre.
  • Si vous utilisez XGameSaveFiles, les fournisseurs sont initialisés implicitement. Appelez XGameSaveFilesGetFolderWithUiAsync pour chaque titre.

Interopérabilité entre XGameSave et XGameSaveFiles

Un titre peut avoir besoin d’utiliser XGameSave conjointement avec XGameSaveFiles. Les raisons typiques peuvent être les suivantes :
  • L’éditeur dispose d’un titre existant sur console qui utilise déjà XGameSave.
  • L’éditeur ne souhaite pas mettre à jour ce titre existant pour utiliser XGameSaveFiles.
  • L’éditeur estime qu’il est plus facile d’ajouter XGameSaveFiles à un titre PC que d’utiliser XGameSave, mais souhaite tout de même prendre en charge les sauvegardes croisées entre PC, console et le streaming de jeux XBOX.
Le passage entre XGameSave et XGameSaveFiles est relativement simple. Lorsque le titre appelle XGameSaveFilesGetFolderWithUiAsync, il mappe les conteneurs et les blobs à des répertoires et des fichiers selon les règles suivantes :
  • Toute barre oblique (/) dans le nom du conteneur crée la structure de répertoires dans laquelle se trouve le fichier.
  • Les caractères suivants ne sont pas valides pour XGameSaveFiles. Si le système rencontre ces caractères, il les remplace par un trait de soulignement (_) :
    • Caractères de \0 à \001f inclus.
  • Les caractères suivants ne sont pas valides pour XGameSaveFiles. Si le système rencontre ces caractères, il les remplace par un point (.) :
    • Guillemets (”)
    • Signe inférieur à (<)
    • Signe supérieur à (>)
    • Barre verticale (|)
    • Astérisque (*)
    • Point d’interrogation (?)
    • Barre oblique inverse (\)
  • Une barre oblique (/) dans le nom du blob est remplacée par un point (.) dans le nom du fichier.
  • Les fichiers sont limités à 16 Mo. XGameSave prend en charge une taille de chargement maximale de 16 Mo.
Lorsque le titre repasse de XGameSaveFiles à XGameSave, il restaure les noms d’origine des conteneurs et des blobs si les noms de fichiers restent inchangés ou si les fichiers ne sont pas déplacés.

Portage de titres antérieurs vers Game Saves sur PC avec les sauvegardes cloud sans code

Certains titres que vous portez vers PC Game Pass peuvent nécessiter une solution de sauvegarde cloud sans code. Cette exigence peut survenir dans les scénarios suivants :
  • Le titre s’exécute en tant qu’application x86. Il n’utilise le Microsoft Game Development Kit (GDK) que sous sa forme empaquetée.
  • Le titre est créé sans code personnalisé, à l’aide d’outils tels que Blueprint dans Unreal Engine ou Bolt dans Unity.
Les titres qui utilisent les sauvegardes cloud sans code lisent et écrivent dans leur répertoire de sauvegarde désigné via les API d’E/S de fichiers Win32 standard. Le système synchronise automatiquement les données. Vous n’avez pas besoin d’écrire de code spécial pour gérer la synchronisation et le chargement. La synchronisation a lieu avant le lancement du titre. Les sauvegardes cloud sans code sont chargées lorsque le titre ne s’exécute plus sur le PC. Le chargement a lieu lorsque l’une des conditions suivantes est remplie :
  • Le titre est arrêté.
  • L’utilisateur suivi se déconnecte.
  • L’état d’alimentation du PC change.
  • 30 minutes se sont écoulées depuis la dernière écriture du titre dans la zone de sauvegarde désignée.
La solution de sauvegarde cloud sans code repose sur XGameSaveFiles et partage toutes ses limitations en matière de taille de fichier et de limites de stockage par utilisateur. Les fichiers sont limités à 64 Mo (ou 16 Mo si une interopérabilité avec XGameSave ou Connected Storage est nécessaire). Par défaut, le stockage par utilisateur est limité à 256 Mo. Les titres qui ont besoin de limites de stockage par utilisateur plus élevées peuvent contacter leur Developer Partner Manager (DPM) pour demander une exception.
Il existe des conventions de nommage et des limites de caractères spécifiques pour les noms de répertoires et de fichiers. Pour plus d’informations, consultez Logique des chemins XGameSaveFiles.
Les sauvegardes cloud sans code ne sont prises en charge que sur PC. Le titre nécessite le modèle utilisateur simplifié. Celui-ci garantit qu’un utilisateur est connecté avant le lancement du titre. Si aucun utilisateur ne peut être connecté au titre, celui-ci ne se lance pas. Si l’utilisateur est déconnecté pendant le jeu, le titre est arrêté.
Les sauvegardes cloud sans code nécessitent que le titre soit lancé en tant que build empaquetée à l’aide de wdapp install. Le lancement direct du fichier .exe n’active pas la redirection des sauvegardes cloud.Lorsqu’une build empaquetée s’exécute, les sauvegardes écrites via NoCodePCRoot sont redirigées vers le stockage géré par XGameSaveFiles. Un lancement direct ultérieur du fichier .exe lit plutôt le dossier physique NoCodePCRoot, qui peut être vide, ce qui donne l’impression que les sauvegardes ont disparu. Pour éviter ce problème, testez toujours les sauvegardes cloud sans code avec des builds empaquetées à l’aide de wdapp install.

Activation des sauvegardes cloud sans code

Pour activer les sauvegardes cloud sans code, procédez comme suit :
  1. Modifiez votre fichier MicrosoftGame.config.
  2. Activez le modèle utilisateur simplifié.
  3. Spécifiez le dossier racine des fichiers de sauvegarde.
  4. Fournissez le SCID correspondant au titre.
L’exemple de code suivant illustre ce processus.
Le dossier racine que vous spécifiez pour NoCodePCRoot doit être relatif à l’une des quelques options disponibles.
Utilisez SavedGames comme valeur de RelativeTo. Le dossier Parties enregistrées (%USERPROFILE%\Saved Games) correspond à l’ID de dossier connu Windows FOLDERID_SavedGames. OneDrive ne synchronise pas ce dossier par défaut.Évitez d’utiliser d’autres emplacements tels que AppData (%APPDATA%). OneDrive peut synchroniser ces emplacements, ce qui risque de provoquer des conflits avec la synchronisation des sauvegardes cloud.Pour plus d’informations sur FOLDERID_SavedGames, consultez SHGetKnownFolderPath.
Vous ne pouvez pas placer de fichiers directement dans le répertoire racine. Imbriquez-les dans au moins un sous-dossier du dossier racine. Par exemple, utiliser directement un nom de fichier, comme <NoCodePCRoot RelativeTo="SavedGames">savegame1.sav</NoCodePCRoot>, n’est pas valide, car savegame1.sav est ignoré. <NoCodePCRoot> est destiné à définir un chemin de répertoire, et non un fichier spécifique.

Exemples de code

Documentation de référence des API

Voir aussi

Table des matières de Game Saves
Last modified on October 6, 2026