- Démarrage du titre
- Vérification de la connexion
- Vérification de la propriété des données
- Synchronisation des données avec le cloud
- Boucle de jeu
- Fin de session
Démarrage du titre
Au lancement du titre, la première étape consiste à déterminer l’utilisateur pour lequel Game Saves est géré. Si l’utilisateur a une session de jeu active sur un autre appareil, une boîte de dialogue système lui demande de changer d’appareil. Si l’utilisateur change d’appareil, l’autre appareil synchronise ses dernières données Game Saves locales avec le nouvel appareil. Si vous souhaitez que les données soient locales et liées à l’appareil, vous pouvez utiliser un fournisseur propre à la machine. Cette option transmet un handle d’utilisateurnull aux API Game Saves.
Une fois que le titre a sélectionné l’utilisateur, il initialise Game Saves avec le handle de cet utilisateur. Pendant l’initialisation, Game Saves se connecte au réseau XBOX pour préparer l’espace de stockage de l’utilisateur.
Boîte de dialogue système concernée :


Vérification de la connexion
Ensuite, le titre détermine s’il peut se connecter au réseau XBOX afin de confirmer que la synchronisation avec le cloud est possible. Si le titre ne peut pas se connecter, l’utilisateur a la possibilité de réessayer ou de reprendre le titre en mode hors connexion. Game Saves peut fonctionner en mode hors connexion. Boîtes de dialogue système concernées :
Comportement hors connexion

Vérification de la propriété des données
Une fois la connexion confirmée, le titre détermine si l’appareil a le droit de modifier les données. Si c’est le cas, il peut acquérir un verrou sur le titre. Pour obtenir et libérer un verrou, le titre doit avoir accès aux services XBOX. Le titre vérifie si un autre appareil détient un verrou sur les données de l’utilisateur. Cet appareil peut encore conserver un verrou pour les raisons suivantes.- Il est déconnecté du réseau XBOX, ce qui l’empêche d’appeler
WebReleaseLock. - L’autre appareil charge une sauvegarde de jeu volumineuse et ne peut pas appeler
WebReleaseLock.
- Acquérir de force le verrou de l’autre appareil, ce qui entraîne la perte des données de session sur l’autre appareil.
- Réessayer d’acquérir le verrou normalement.
- Annuler l’acquisition du verrou.


Synchronisation des données avec le cloud
Une fois que le titre a acquis le verrou sur les données de l’utilisateur, il synchronise ces données avec le cloud. Le titre détermine ensuite s’il effectue l’une des actions suivantes :- Charger les données Game Saves locales.
- Télécharger les données du cloud et mettre à jour les données Game Saves locales.
- Ne rien faire.
- Résoudre les éventuels conflits de données.
- Heure de sauvegarde locale : date à laquelle cet appareil a écrit une sauvegarde pour la dernière fois
- Heure de sauvegarde cloud : date de la dernière mise à jour de la copie cloud
Les quatre résultats de synchronisation
Si un téléchargement depuis le cloud a lieu, une boîte de dialogue de synchronisation s’affiche, Synchronisation des données pour…. Si l’utilisateur annule Game Saves à l’aide de cette boîte de dialogue, le titre continue en mode hors connexion.
États modifiés et de sauvegarde
Ce scénario suppose que l’utilisateur joue sur deux appareils, l’appareil A et l’appareil B. Local modifié L’utilisateur a progressé hors connexion sur l’appareil A. Par exemple, l’utilisateur est passé au niveau 126 sur l’appareil A sans connexion Internet. Cloud modifié Une progression a été chargée depuis l’appareil B depuis la dernière synchronisation de l’appareil A par l’utilisateur. Par exemple, l’utilisateur est passé au niveau 99 sur l’appareil B et l’a chargé dans le cloud. Les deux modifiés L’utilisateur a joué hors connexion sur l’appareil A. Il a également joué sur l’appareil B depuis la dernière synchronisation de l’appareil A. Par exemple, l’appareil A est au niveau 126. Le cloud est au niveau 99. En cas de conflit, le système invite l’utilisateur à le résoudre au moyen d’une boîte de dialogue : Laquelle voulez-vous utiliser ?Atomicité
Les sauvegardes Game Saves sont atomiques au niveau du conteneur (dossier). Si le dossier cloud contient un blob que le dossier local correspondant ne contient pas, le système traite les deux dossiers comme distincts. Cette différence crée un conflit.
Boucle de jeu
La boucle de jeu est la partie active de la session de jeu. Elle commence une fois que le titre a terminé la synchronisation des données de sauvegarde avec le cloud. Pendant la session de jeu active, le titre lit et écrit les données de sauvegarde localement. Toutes les données créées ou mises à jour pendant cette période restent dans le stockage local de Game Saves jusqu’à ce que le système effectue une synchronisation cloud. La boucle de jeu se termine à la fin de la session de jeu de l’utilisateur si l’une des conditions suivantes est vraie pour la console ou le PC. Une session se termine lorsqu’une console ou un PC déclenche un changement d’état, tel qu’une suspension, un arrêt, une déconnexion ou un autre événement système.Synchronisation périodique avec le cloud
Toutes les 30 minutes de jeu, le titre tente de se synchroniser automatiquement avec le cloud. Ce comportement repose sur les scénarios suivants.
Fin de session
Une fois la session de jeu terminée, le titre charge les nouvelles données dans le cloud. L’appareil tente de charger les données dans le cloud lorsqu’il dispose d’une connexion. Une fois les données chargées, le verrou est libéré. Pour observer la libération du verrou sur le réseau XBOX à des fins de débogage, consultez Inspection du trafic réseau de Game Saves.
Scénarios de perte de connexion et de verrouillage
Les données écrites pendant une perte de connexion sont stockées dans le stockage local de Game Saves et chargées une fois la connexion rétablie. Toutefois, si l’utilisateur tente d’utiliser un autre appareil, l’appareil actuel ne peut pas libérer le verrou, car la connexion a été perdue. L’utilisateur peut forcer le transfert du verrou vers un autre appareil. Selon le moment où ces transferts de verrou se produisent, un titre peut présenter des comportements différents.Perte de connexion avant le démarrage du titre
Quand : l’utilisateur lance un titre sans connexion.Le titre propose à l’utilisateur de se lancer en mode hors connexion, car il n’y a pas de connexion. Lorsque l’appareil se reconnecte au réseau XBOX et que le cloud contient des données plus récentes, le titre considère les données locales comme obsolètes. Dans ce cas, le titre met fin à la session de jeu en arrêtant l’application avec une opération de suspension. Boîte de dialogue système concernée : Nous devons fermer ce jeu ou cette application
Perte de connexion pendant la boucle de jeu
Quand : l’utilisateur est dans une session de jeu active et le titre détient toujours le verrou. À un moment donné, la connexion est perdue. Le titre autorise alors le jeu pendant cette perte.
Perte de connexion avant la fin de session (arrêt ou suspension)
Quand : le joueur quitte ou suspend le titre alors que l’appareil est déconnecté. L’appareil possède toujours des données locales non synchronisées.
