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 pratiques exemplaires pour écrire des données de façon sécuritaire, la gestion des sauvegardes propre à chaque plateforme et les procédures de test recommandées.

Configurations dans Partner Center

Activer les services XBOX et 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 en savoir plus 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 sert également à l’initialisation de Game Saves.
    • Dans Partner Center, trouvez le SCID sous l’onglet XBOX services > XBOX settings de votre titre. Vous pouvez également trouver l’ID d’application (MSAAppID) de votre compte Microsoft (MSA) 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 en savoir plus sur les fichiers de configuration de jeu, consultez Créer le fichier Microsoft Game Config .mgc.

Scénarios de développement

Où dois-je intégrer Game Saves dans mon code?

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

Comment m’assurer que mes données de sauvegarde ne deviennent pas corrompues?

Pour sauvegarder des données de façon sécuritaire et éviter la corruption, suivez ces étapes. Ces directives 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) plutôt que 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 l’ancien fichier de sauvegarde de façon atomique par le nouveau fichier temporaire au moyen de la fonction Win32 ReplaceFile.

Comment prendre en charge les appareils hors ligne?

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

De quelles interactions utilisateur dois-je tenir compte?

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

Existe-t-il un moyen de sauvegarder localement et uniquement 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 machine seulement. Les données sont stockées localement et persistent sur l’appareil, avec une limite maximale de 256 Mo. Les données ne se synchronisent pas avec le nuage. Pour en savoir plus sur le stockage de Game Saves, consultez Systèmes de stockage de Game Saves.

Gérer Game Saves au moyen de l’appareil

Accéder aux sauvegardes locales sur PC au moyen 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 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 lorsque le titre ne détient pas de verrou cause des conflits.

Accéder aux sauvegardes locales sur console

Gérez les données de sauvegarde de la console au moyen de l’interface utilisateur XBOX. Pour y accéder, suivez les étapes suivantes.
  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 sauvegardées.
Vue de gestion de Game Saves dans le stockage de la console. Tenez compte des éléments suivants lorsque vous manipulez des données directement sur la console.
  • La suppression de données sur la console au moyen de l’interface utilisateur du système ne supprime pas la copie stockée dans le nuage. Lorsque vous relancez le titre, il synchronise les données à partir du nuage.
  • Les données du fournisseur machine apparaissent comme un utilisateur sans nom. Ces données demeurent sur l’appareil, ne se synchronisent pas avec le nuage et sont liées à l’appareil.
Pour en savoir plus sur le fournisseur machine, consultez Systèmes de stockage de Game Saves. Pour un contrôle plus détaillé des sauvegardes, utilisez les outils de 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.

Vérifier si les sauvegardes se synchronisent correctement vers le nuage et à partir de celui-ci

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

Vérifier si les sauvegardes sont itinérantes correctement

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

Scénarios de migration

Partager des sauvegardes 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 voulez 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 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 voulez donner accès.
  5. Lorsque vous avez terminé d’ajouter les titres, sélectionnez Save, puis Publish. Les modifications prennent effet dans l’heure qui suit.
La capture d’écran suivante montre un exemple où 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 pourrait devoir utiliser XGameSave conjointement avec XGameSaveFiles. Les raisons typiques pourraient être les suivantes :
  • L’éditeur a un titre existant sur console qui utilise déjà XGameSave.
  • L’éditeur ne veut pas mettre à jour ce titre existant pour utiliser XGameSaveFiles.
  • L’éditeur estime qu’ajouter XGameSaveFiles à un titre PC est plus facile que d’utiliser XGameSave, mais souhaite tout de même prendre en charge les sauvegardes croisées entre PC, console et la diffusion de jeux XBOX en continu.
Passer de XGameSave à XGameSaveFiles est assez 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 mappe à un trait de soulignement (_) :
    • Les caractères de \0 à \001f, inclusivement.
  • Les caractères suivants ne sont pas valides pour XGameSaveFiles. Si le système rencontre ces caractères, il les mappe à 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 mappée à un point (.) dans le nom du fichier.
  • Les fichiers sont limités à 16 Mo. XGameSave prend en charge une taille de téléversement maximale de 16 Mo.
Lorsque le titre revient de XGameSaveFiles à XGameSave, il restaure les noms d’origine des conteneurs et des blobs si les noms de fichiers restent inchangés ou ne sont pas déplacés.

Porter des titres antérieurs vers Game Saves sur PC avec les sauvegardes infonuagiques sans code

Certains titres que vous portez vers PC Game Pass pourraient nécessiter une solution de sauvegarde infonuagique sans code. Cette exigence peut survenir dans les scénarios suivants :
  • Le titre s’exécute en tant qu’application x86. Il utilise le Microsoft Game Development Kit (GDK) uniquement sous sa forme empaquetée.
  • Le titre est créé sans code personnalisé, au moyen d’outils comme Blueprint dans Unreal Engine ou Bolt dans Unity.
Les titres qui utilisent les sauvegardes infonuagiques sans code lisent et écrivent dans leur répertoire de sauvegarde désigné au moyen des 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 particulier pour gérer la synchronisation et le téléversement. La synchronisation a lieu avant le lancement du titre. Les sauvegardes infonuagiques sans code sont téléversées lorsque le titre ne s’exécute plus sur PC. Le téléversement 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 infonuagique sans code est construite sur XGameSaveFiles et en partage toutes les limitations relatives à la taille des fichiers et aux limites de stockage par utilisateur. Les fichiers sont limités à 64 Mo (ou à 16 Mo s’il faut une interopérabilité avec XGameSave ou Connected Storage). 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 collaborer avec leur gestionnaire de partenaires développeurs (DPM) pour demander une exception.
Il existe des conventions d’affectation de noms et des limites de caractères particulières pour les répertoires et les noms de fichiers. Pour en savoir plus, consultez Logique des chemins XGameSaveFiles.
Les sauvegardes infonuagiques sans code sont prises en charge uniquement sur PC. Le titre nécessite le modèle d’utilisateur simplifié. Celui-ci garantit qu’un utilisateur est connecté avant le lancement du titre. Si un utilisateur ne peut pas ê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 infonuagiques sans code exigent que le titre soit lancé en tant que build empaqueté au moyen de wdapp install. Lancer directement le fichier .exe n’active pas la redirection des sauvegardes infonuagiques.Lorsqu’un build empaqueté s’exécute, les sauvegardes écrites au moyen de NoCodePCRoot sont redirigées vers le stockage géré par XGameSaveFiles. Un lancement direct ultérieur du .exe lit plutôt le dossier physique NoCodePCRoot, qui pourrait être vide, ce qui donne l’impression que les sauvegardes sont manquantes. Pour éviter ce problème, testez toujours les sauvegardes infonuagiques sans code avec des builds empaquetés au moyen de wdapp install.

Activer les sauvegardes infonuagiques sans code

Pour activer les sauvegardes infonuagiques sans code, effectuez les étapes suivantes :
  1. Modifiez votre fichier MicrosoftGame.config.
  2. Activez le modèle d’utilisateur simplifié.
  3. Indiquez le dossier racine des fichiers de sauvegarde.
  4. Fournissez le SCID correspondant du titre.
L’exemple de code suivant illustre ce processus.
Le dossier racine que vous indiquez pour NoCodePCRoot doit être relatif à l’une des quelques options suivantes.
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 comme AppData (%APPDATA%). OneDrive peut synchroniser ces emplacements et causer des conflits avec la synchronisation des sauvegardes infonuagiques.Pour en savoir plus 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> sert à définir un chemin de répertoire, et non un fichier précis.

Exemples de code

Documentation de référence de l’API

Voir aussi

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