Cómo funciona la reversión
Game Saves realiza el seguimiento de las versiones finalizadas de los datos de guardado de un jugador. Cuando desencadena una reversión, el servicio crea una nueva versión cuyo contenido es idéntico al estado anterior que está restaurando. La reversión conserva el historial de versiones original. No elimina ni sobrescribe versiones anteriores. Los demás dispositivos que se sincronizan después de la reversión la ven como una actualización normal. Hay dos tipos de reversión. Cada uno se desencadena pasando una marca de opción aPFGameSaveFilesAddUserWithUiAsync:
Ambas opciones recurren al comportamiento predeterminado (sincronizar la versión más reciente actual) si no existe ningún punto de restauración apto.
Cuándo usar cada tipo de reversión
Reversión al último estado correcto conocido
UseRollbackToLastKnownGood cuando sospeche que la carga más reciente es incorrecta. Los desencadenantes habituales incluyen:
- Error de carga o comprobación de integridad fallida después de descargar un guardado.
- Un bloqueo durante una operación de guardado o inmediatamente después.
- Un informe de un jugador sobre un estado dañado o con retroceso.
Reversión al último conflicto
UseRollbackToLastConflict cuando un jugador eligió el lado equivocado durante la resolución de conflictos. Como se describe en Conflictos de Game Saves, ambas opciones de resolución conservan la rama descartada. Esta opción de reversión restaura esa rama conservada.
Llamada a la API
Desencadene la reversión pasando la opción adecuada aPFGameSaveFilesAddUserWithUiAsync. Solo puede llamar a esta función una vez por usuario, por lo que para revertir en el caso de un usuario que ya se ha agregado, primero llame a PFGameSaveFilesUninitializeAsync y espere a que se complete.
Comportamiento de reserva
Si no existe ningún punto de restauración apto para el tipo de reversión solicitado, la llamada se comporta como si hubiera pasadoPFGameSaveFilesAddUserOptions::None. La versión más reciente actual se sincroniza con normalidad. Compruebe los archivos sincronizados después de que se complete la llamada para confirmar si se produjo una reversión.
Configuración del título
Puede restringir la reversión iniciada por el cliente mediante dos marcas de configuración. Cuando habilita cualquiera de las marcas, solo las herramientas de soporte técnico y Game Manager pueden realizar ese tipo de reversión.
Establezca estas marcas en Game Manager en Progression > Game Saves.
Control de errores
Consideraciones
- La reversión crea una nueva versión. No borra el historial. La secuencia de versiones del jugador continúa hacia adelante.
- El servicio realiza el seguimiento del estado correcto conocido automáticamente. Determina qué versiones son aptas en función de ciclos correctos de carga y posterior reemplazo. Su juego no necesita marcar las versiones explícitamente.
- Una reversión por llamada de adición de usuario. Dado que solo puede llamar a
PFGameSaveFilesAddUserWithUiAsyncuna vez por usuario, desencadenar una segunda reversión requiere llamar primero aPFGameSaveFilesUninitializeAsync. - Las devoluciones de llamada de la interfaz de usuario se siguen activando. La reversión pasa por el mismo flujo de sincronización que una llamada de adición de usuario normal. Registre sus devoluciones de llamada de la interfaz de usuario antes de llamar a la API.
- Restrinja la reversión si es necesario. Si su juego controla la recuperación en el lado del servidor o mediante herramientas de soporte técnico, deshabilite la reversión del cliente con las marcas de configuración del título para evitar que los jugadores reviertan el progreso accidentalmente.
- La reversión funciona en todas las plataformas. Esta API no tiene protecciones específicas de plataforma.
