- Inicio del título
- Comprobación de conexión
- Comprobación de propiedad de los datos
- Sincronización de datos con la nube
- Bucle de juego
- Fin de la sesión
Inicio del título
Cuando el título se inicia, el primer paso es determinar el usuario para el que se administran las Game Saves. Si el usuario tiene una sesión de juego activa en otro dispositivo, un cuadro de diálogo del sistema le pide que cambie de dispositivo. Si el usuario cambia, el otro dispositivo sincroniza sus datos locales de Game Saves más recientes con el nuevo dispositivo. Si desea que los datos sean locales y estén vinculados al dispositivo, puede usar un proveedor solo de máquina. Esta opción pasa un identificador de usuarionull a las API de Game Saves.
Después de que el título seleccione al usuario, inicializa Game Saves con el identificador de ese usuario. Durante la inicialización, Game Saves se conecta a la red XBOX para preparar el espacio de almacenamiento del usuario.
Cuadro de diálogo del sistema pertinente:
Para obtener información sobre los modelos de usuario y la administración de usuarios, consulte Modelos de usuario.
Para obtener información sobre el almacenamiento, consulte Sistemas de almacenamiento de Game Saves.
Comprobación de conexión
A continuación, el título determina si puede conectarse a la red XBOX para confirmar que la sincronización con la nube es posible. Si el título no puede conectarse, el usuario tiene la opción de reintentarlo o de reanudar el título en modo sin conexión. Game Saves puede ejecutarse en modo sin conexión. Cuadros de diálogo del sistema pertinentes:
Comportamiento sin conexión
Comprobación de propiedad de los datos
Una vez confirmada la conexión, el título determina si el dispositivo tiene derecho a modificar los datos. Si es así, puede adquirir un bloqueo del título. Para que un título obtenga y libere un bloqueo, el título requiere acceso a los servicios de XBOX. El título comprueba si hay otro dispositivo que mantiene un bloqueo sobre los datos del usuario. Ese dispositivo podría seguir reteniendo un bloqueo por los siguientes motivos.- Estar desconectado de la red XBOX, lo que impide que el dispositivo llame a
WebReleaseLock. - El otro dispositivo está cargando una Game Save de gran tamaño y no puede llamar a
WebReleaseLock.
- Adquirir a la fuerza el bloqueo del otro dispositivo, lo que hace que el otro dispositivo pierda los datos de la sesión.
- Intentar adquirir el bloqueo de nuevo con normalidad.
- Cancelar la adquisición del bloqueo.
Sincronización de datos con la nube
Después de que el título adquiera el bloqueo de los datos del usuario, sincroniza esos datos con la nube. A continuación, el título determina si realiza una de las siguientes acciones:- Cargar los datos locales de Game Saves.
- Descargar los datos de la nube y actualizar los datos locales de Game Saves.
- No realizar ninguna acción.
- Resolver los conflictos de datos.
- Hora de guardado local: cuándo escribió este dispositivo un guardado por última vez
- Hora de guardado en la nube: cuándo se actualizó por última vez la copia de la nube
Los cuatro resultados de sincronización
Si se produce la descarga desde la nube, aparece un cuadro de diálogo de sincronización, Sincronizando datos para …. Si el usuario cancela las Game Saves con este cuadro de diálogo, el título continúa en modo sin conexión.
Estados de cambio y guardado
Este escenario supone que el usuario está jugando en dos dispositivos, el dispositivo A y el dispositivo B. El local cambió El usuario progresó mientras estaba sin conexión en el dispositivo A. Por ejemplo, el usuario subió al nivel 126 en el dispositivo A sin conexión a Internet. La nube cambió Se cargó progreso desde el dispositivo B desde la última vez que el usuario sincronizó el dispositivo A. Por ejemplo, el usuario subió al nivel 99 en el dispositivo B y lo cargó en la nube. Ambos cambiaron El usuario jugó sin conexión en el dispositivo A. El usuario también jugó en el dispositivo B desde la última vez que sincronizó el dispositivo A. Por ejemplo, el dispositivo A está en el nivel 126. La nube está en el nivel 99. Si hay un conflicto, el sistema pide al usuario que lo resuelva mediante un cuadro de diálogo: ¿Cuál quieres usar?Atomicidad
Las Game Saves son atómicas en el nivel de contenedor (carpeta). Si la carpeta de la nube incluye un blob que la carpeta local equivalente no contiene, el sistema trata las dos carpetas como independientes. Esta diferencia crea un conflicto.Bucle de juego
El bucle de juego es la parte activa de la sesión de juego. Comienza después de que el título termine de sincronizar los datos de guardado con la nube. Durante la sesión de juego activa, el título lee y escribe los datos de guardado localmente. Todos los datos creados o actualizados en este período permanecen en el almacenamiento local de Game Saves hasta que el sistema realiza una sincronización en la nube. El bucle de juego termina cuando finaliza la sesión de juego del usuario si se cumple una de las siguientes condiciones para consola o PC. Una sesión termina cuando una consola o un PC desencadena un cambio de estado, como una suspensión, una finalización, un cierre de sesión u otro evento del sistema.Sincronización periódica con la nube
Cada 30 minutos de juego, el título intenta sincronizarse automáticamente con la nube. Este comportamiento se basa en los siguientes escenarios.Fin de la sesión
Una vez finalizada la sesión de juego, el título carga los datos nuevos en la nube. El dispositivo intenta cargar los datos en la nube cuando tiene conexión. Después de cargar los datos, se libera el bloqueo. Para ver la liberación del bloqueo en la red XBOX con fines de depuración, consulte Inspección del tráfico de red de Game Saves.Pérdida de conexión y escenarios de bloqueo
Los datos escritos durante una pérdida de conexión se almacenan en el almacenamiento local de Game Saves y se cargan cuando se reanuda la conexión. Sin embargo, si el usuario intenta usar otro dispositivo, el dispositivo actual no puede liberar el bloqueo porque se perdió la conexión. El usuario puede forzar una transferencia del bloqueo a otro dispositivo. Según el momento en que se produzcan estas transferencias de bloqueo, un título puede experimentar comportamientos distintos.Pérdida de conexión antes del inicio del título
Cuándo: el usuario inicia un título sin conexión.El título ofrece al usuario la opción de iniciarse en modo sin conexión porque no hay conexión. Cuando el dispositivo se vuelve a conectar a la red XBOX y la nube contiene datos más recientes, el título trata los datos locales como obsoletos. En este caso, el título finaliza la sesión de juego terminando la aplicación con una operación de suspensión. Cuadro de diálogo del sistema pertinente: Necesitamos cerrar este juego o aplicación
Pérdida de conexión durante el bucle de juego
Cuándo: el usuario está en una sesión de juego activa y el título aún mantiene el bloqueo. En algún momento, se pierde la conexión. El título permite entonces jugar durante esta pérdida.
Pérdida de conexión antes del fin de la sesión (finalización o suspensión)
Cuándo: el jugador sale del título o lo suspende mientras el dispositivo está desconectado. El dispositivo aún tiene datos locales sin sincronizar.
