Configuraciones de Partner Center
Habilitación de los servicios de XBOX y Game Saves para el título
Para usar las API de Game Saves, complete los siguientes pasos en Partner Center.- Habilite los servicios de XBOX.
- Inicie sesión en Partner Center.
- Vaya a su título y, a continuación, habilite los servicios de XBOX en la configuración. Para obtener más información sobre este paso, consulte Configuración de una aplicación o un juego en Partner Center, para socios administrados.
- Obtenga el identificador de configuración de servicio (SCID). Todas las operaciones de lectura y escritura deben estar asociadas a un SCID. El SCID también se usa para la inicialización de Game Saves.
- En Partner Center, encuentre el SCID en la pestaña XBOX services > XBOX settings del título. También puede encontrar el App ID de cuenta Microsoft (MSA) (MSAAppID) en esta página.
Escenarios de desarrollo
¿Dónde integro Game Saves en el código?
La lógica de Game Saves depende del inicio de sesión del usuario. Agregue el código de Game Saves junto al flujo de inicio de sesión del usuario.¿Cómo me aseguro de que los datos de guardado del juego no se dañen?
Para guardar datos de forma segura y evitar daños, siga estos pasos. Esta orientación se aplica a todas las operaciones de guardado.- Escriba en un archivo temporal.
- Serialice los datos de guardado en un archivo nuevo (por ejemplo,
save.tmp) en lugar de sobrescribir el guardado activo. Este paso protege el guardado existente en caso de que el proceso se interrumpa en mitad de la escritura.
- Serialice los datos de guardado en un archivo nuevo (por ejemplo,
- Cierre el identificador de escritura después de que la escritura se haya confirmado por completo en el disco.
- Reemplace el archivo de guardado antiguo de forma atómica por el nuevo archivo temporal mediante la función de Win32 ReplaceFile.
¿Cómo admito dispositivos sin conexión?
Usted es responsable de determinar cómo se comporta el título si hay una pérdida de conexión, tanto antes como después de inicializar Game Saves. Para obtener más información sobre el comportamiento sin conexión, consulte Descripción del flujo de sincronización de Game Saves.¿Qué interacciones del usuario debo tener en cuenta?
El sistema operativo muestra avisos del sistema cuando una acción requiere la intervención del usuario. Para obtener información sobre estos avisos, consulte Cuadros de diálogo de Game Saves.¿Hay alguna forma de guardar localmente y solo en el dispositivo?
Si pasa un identificador de usuarionull al proceso de inicialización de Game Save, el sistema crea un proveedor solo de máquina. Los datos se almacenan localmente y persisten en el dispositivo, con un límite máximo de 256 MB. Los datos no se sincronizan con la nube.
Para obtener más información sobre el almacenamiento de Game Saves, consulte Sistemas de almacenamiento de Game Saves.
Administración de Game Saves a través del dispositivo
Acceso a las Game Saves locales en PC mediante el Explorador de archivos
Si el título se ejecuta en PC, tiene acceso directo a los archivos. Según la implementación de la API de Game Saves, puede acceder a sus Game Saves locales en las siguientes ubicaciones.
Cuando manipula datos en PC, la lógica de sincronización sigue aplicándose. Por ejemplo, modificar datos cuando el título no tiene un bloqueo provoca conflictos.
Acceso a las Game Saves locales en la consola
Administre los datos de guardado de la consola a través de la interfaz de usuario de XBOX. Acceda a ellos mediante los siguientes pasos.- Seleccione el botón Home en el mando de XBOX.
- Seleccione My games & apps > See all.
- Sitúese sobre su juego y, a continuación, seleccione el botón View.
- Seleccione Saved data.
- Eliminar datos en la consola mediante la interfaz de usuario del sistema no quita la copia almacenada en la nube. Cuando vuelva a iniciar el título, este sincroniza los datos desde la nube.
- Los datos del proveedor de máquina aparecen como un usuario sin nombre. Estos datos permanecen en el dispositivo, no se sincronizan con la nube y están vinculados al dispositivo.
Escenarios de prueba
Cuando cree casos de prueba, separe la validación de los datos de la lógica de guardado del juego.Probar si las Game Saves se sincronizan correctamente con la nube y desde ella
Use los siguientes pasos para probar que la sincronización sea correcta. Los flujos de prueba verifican el comportamiento.XGameSaveFiles:
- Confirme que el SCID es correcto.
- Confirme que está usando el identificador de usuario correcto.
- Confirme que el título llama a
XGameSaveFilesGetFolderWithUIAsyncdurante la sesión de juego actual. Si el título se reanuda desde un estado de suspensión, llame a la función.- Use Fiddler para confirmar que se adquirió el bloqueo.
- Guarde esta ruta de acceso y úsela más adelante para confirmar que los datos se están cargando.
- Escriba algunos datos en la ruta de acceso de archivo proporcionada por
XGameSaveFilesGetFolderWithUIAsync. - Finalice o suspenda el título.
- Espere entre 10 y 30 segundos para que el sistema operativo cargue automáticamente los datos en la nube y libere el bloqueo.
- Confirme que los datos se cargaron y que el bloqueo se liberó mediante Fiddler.
- Elimine manualmente los datos de la carpeta proporcionada por
XGameSaveFilesGetFolderWithUIAsync.- En la consola, acceda a estos datos a través de la configuración del jugador.
- Vuelva a iniciar el título y, a continuación, intente iniciar la sesión del usuario.
- Aparece un cuadro de diálogo de sincronización que muestra una sincronización de descarga activa desde la nube.
- Herramientas de Game Saves para inspeccionar el tráfico y manipular guardados
- Descripción del flujo de sincronización de Game Saves
Probar si las Game Saves se mueven correctamente entre dispositivos
Para obtener un plan de pruebas que confirme si los datos se mueven correctamente, consulte el Plan de pruebas XR-052-06.Escenarios de migración
Compartición de Game Saves entre títulos
Para transferir datos de un título a otro o acceder a ellos, complete dos pasos.- Modifique las directivas de acceso del título al que quiere acceder en Partner Center.
- Inicialice los proveedores de Game Saves de ambos títulos en el código fuente.
Modificación de las directivas de acceso
Un título controla qué títulos tienen acceso a sus datos de Game Saves mediante la configuración de directivas de acceso.- Vaya a Partner Center.
- Seleccione Apps and games > <su título> > Gameplay settings.
- En Gameplay Settings, seleccione Access Policies y, a continuación, expanda Connected Storage.
- Seleccione Add app/service y, a continuación, agregue los títulos a los que quiere proporcionar acceso.
- Cuando termine de agregar los títulos, seleccione Save y, a continuación, seleccione Publish. Los cambios surten efecto en un plazo de una hora.
Inicialización de los proveedores de Game Save
Ahora que tiene permiso para acceder al primer título, puede leer los datos deXGameSave del otro título.
- Si usa
XGameSave, llame aXGameSaveInitializeProvideroXGameSaveInitializeProviderAsyncpara cada título. - Si usa
XGameSaveFiles, los proveedores se inicializan implícitamente. Llame aXGameSaveFilesGetFolderWithUiAsyncpara cada título.
Interoperabilidad entre XGameSave y XGameSaveFiles
Un título podría necesitar usarXGameSave junto con XGameSaveFiles. Los motivos habituales podrían ser los siguientes:
- El publicador tiene un título existente en la consola que ya usa
XGameSave. - El publicador no quiere actualizar ese título existente para usar
XGameSaveFiles. - El publicador considera que agregar
XGameSaveFilesa un título de PC es más fácil que usarXGameSave, pero aun así quiere admitir guardados cruzados entre PC, consola y la transmisión de juegos de XBOX.
XGameSave a XGameSaveFiles y viceversa es bastante sencillo. Cuando el título llama a XGameSaveFilesGetFolderWithUiAsync, asigna los contenedores y blobs a directorios y archivos mediante las siguientes reglas:
- Cualquier barra diagonal (/) en el nombre del contenedor crea la estructura de directorios en la que reside el archivo.
- Los siguientes caracteres no son válidos para
XGameSaveFiles. Si el sistema encuentra estos caracteres, los asigna a un guion bajo (_):- Caracteres desde \0 hasta \001f, ambos inclusive.
- Los siguientes caracteres no son válidos para
XGameSaveFiles. Si el sistema encuentra estos caracteres, los asigna a un punto (.):- Comillas (”)
- Signo menor que (<)
- Signo mayor que (>)
- Barra vertical (|)
- Asterisco (*)
- Signo de interrogación (?)
- Barra diagonal inversa (\)
- Una barra diagonal (/) en el nombre del blob se asigna a un punto (.) en el nombre del archivo.
- Los archivos están limitados a 16 MB.
XGameSaveadmite un tamaño máximo de carga de 16 MB.
XGameSaveFiles a XGameSave, restaura los nombres originales de los contenedores y blobs si los nombres de archivo permanecen sin cambios o no se mueven.
Portabilidad de títulos anteriores a Game Saves de PC con guardados en la nube sin código
Algunos títulos que porta a PC Game Pass podrían requerir una solución de guardado en la nube sin código. Este requisito puede darse en los siguientes escenarios:- El título se ejecuta como una aplicación x86. Usa el Microsoft Game Development Kit (GDK) solo en su forma empaquetada.
- El título se crea sin código personalizado, mediante herramientas como Blueprint en Unreal Engine o Bolt en Unity.
- El título finaliza.
- El usuario del que se hace seguimiento cierra la sesión.
- El estado de energía del PC cambia.
- Han pasado 30 minutos desde que el título escribió por última vez en el área de guardado designada.
XGameSaveFiles y comparte todas sus limitaciones con respecto a los tamaños de archivo y los límites de almacenamiento por usuario. Los archivos están limitados a 64 MB (o 16 MB si se necesita interoperación entre XGameSave o Connected Storage). De forma predeterminada, el almacenamiento por usuario está limitado a 256 MB. Los títulos que necesiten límites de almacenamiento por usuario más grandes pueden trabajar con su administrador de socios de desarrollo (DPM) para solicitar una excepción.
Existen convenciones de nomenclatura y límites de caracteres específicos para los directorios y los nombres de archivo. Para obtener más información, consulte Lógica de rutas de acceso de XGameSaveFiles.
Los guardados en la nube sin código requieren que el título se inicie como una compilación empaquetada mediante
wdapp install. Iniciar el archivo .exe directamente no activa la redirección de guardados en la nube.Cuando se ejecuta una compilación empaquetada, los guardados escritos a través de NoCodePCRoot se redirigen al almacenamiento administrado por XGameSaveFiles. Un inicio directo posterior del .exe lee en su lugar la carpeta física NoCodePCRoot, que podría estar vacía, lo que hace que los guardados parezcan perdidos. Para evitar este problema, pruebe siempre los guardados en la nube sin código con compilaciones empaquetadas mediante wdapp install.Habilitación de los guardados en la nube sin código
Para habilitar los guardados en la nube sin código, complete los siguientes pasos:- Modifique el archivo
MicrosoftGame.config. - Habilite el modelo de usuario simplificado.
- Especifique la carpeta raíz de los archivos de guardado.
- Proporcione el SCID correspondiente del título.
NoCodePCRoot debe ser relativa a una de las opciones de una pequeña colección.
Use
SavedGames como valor de RelativeTo. La carpeta Saved Games (%USERPROFILE%\Saved Games) corresponde al identificador de carpeta conocida de Windows FOLDERID_SavedGames. OneDrive no sincroniza esta carpeta de forma predeterminada.Evite usar otras ubicaciones como AppData (%APPDATA%). OneDrive puede sincronizar estas ubicaciones y podría provocar conflictos con la sincronización de guardados en la nube.Para obtener más información sobre FOLDERID_SavedGames, consulte SHGetKnownFolderPath.<NoCodePCRoot RelativeTo="SavedGames">savegame1.sav</NoCodePCRoot>, no es válido porque savegame1.sav se ignora. <NoCodePCRoot> está pensado para definir una ruta de acceso de directorio, no un archivo específico.
