title_player_account en el espacio de nombres playfab.gamesave.
Eventos
gamesave_version_finalized
Se emite cada vez que se finaliza una versión de guardado del juego. Todos los archivos están cargados y la versión está completa. Este evento es la señal principal para realizar el seguimiento de la actividad de guardado.
Conflict (objeto anidado, presente solo durante la resolución de conflictos):
gamesave_version_marked_known_good
Se emite cuando una versión de guardado del juego se marca explícitamente como “correcta conocida”. Una versión correcta conocida sirve como punto de restauración de confianza. La versión a la que el sistema revierte si un jugador o el título necesita recuperarse de un estado de guardado incorrecto.
Escenarios
Escenario: uso estándar entre dispositivos
Un flujo típico entre dispositivos consiste en un jugador que guarda en un dispositivo y reanuda en otro. En PlayStream, este patrón aparece como una secuencia de eventosgamesave_version_finalized con números de Version que se incrementan.
Lo que ve:
- Un evento
gamesave_version_finalizedcada vez que el jugador guarda, conDeviceTypeyPlayerIdentityProviderque indican qué dispositivo y proveedor de identidad se usaron. NewFileCountyNewFilesSizeBytesmuestran cuántos datos cambiaron en comparación con la versión anterior. Una versión dondeNewFileCountes 0 significa que el jugador finalizó una versión sin contenido de archivos nuevo (por ejemplo, una actualización solo de metadatos).ConflictesnulleIsGeneratedByRollbackesfalsepara los guardados normales.
- Frecuencia de guardado por jugador: Realice el seguimiento de la tasa de eventos de finalización para comprender la implicación de los jugadores y su comportamiento de guardado.
- Tamaños de guardado a lo largo del tiempo: Supervise
TotalSizeBytesyNewFilesSizeBytespara detectar un crecimiento inesperado en los datos de guardado que podría afectar a los costos de almacenamiento o a los tiempos de sincronización. - Distribución de dispositivos: Agregue
DeviceTypepara comprender desde qué plataformas guardan sus jugadores con mayor frecuencia.
Escenario: resolución de conflictos
Los conflictos se producen cuando dos dispositivos finalizan una versión de guardado del juego a partir de la misma versión base. Por ejemplo, un jugador podría jugar sin conexión en su consola y en su PC al mismo tiempo, y ambos dispositivos intentan sincronizar cuando vuelven a estar en línea. Lo que ve:- Durante la resolución de conflictos, el cliente siempre carga sus archivos locales en un manifiesto nuevo y finaliza el manifiesto. Este proceso produce un único evento
gamesave_version_finalizedcon un objetoConflictno nulo. La versión existente en la nube (ya finalizada en un evento anterior) no produce un evento nuevo. Conflict.IsWinnerle indica si los cambios locales del jugador ganaron el conflicto:true: el jugador eligió conservar local. El manifiesto nuevo se convierte en la versión canónica y la versión anterior en la nube queda reemplazada.false: el jugador eligió conservar remoto. El manifiesto nuevo se conserva como punto de reversión (que contiene los datos locales rechazados), mientras que la versión existente en la nube sigue siendo la canónica.
Conflict.ConflictingVersionapunta a la versión existente en la nube que estaba en conflicto.
- Tasa de conflictos: Filtre los eventos
gamesave_version_finalizeden los queConflictesté presente. Una tasa de conflictos en aumento podría indicar que los jugadores cambian de dispositivo con frecuencia sin sincronizar, o que la cadencia de guardado de su título causa colisiones de versión innecesarias. - Preferencia local frente a remota: Compare la proporción de
IsWinner = true(se conservó lo local) frente aIsWinner = false(se conservó lo remoto) para comprender cómo resuelven los conflictos los jugadores. Una fuerte inclinación hacia un lado podría indicar un problema de experiencia de usuario con el aviso de conflicto. - Patrones de conflicto entre dispositivos: Use
DeviceTypeyPlayerIdentityProvideren los eventos de conflicto para comprender qué combinaciones de plataformas son más propensas a los conflictos.
Escenario: versión correcta conocida y reversión
El mecanismo de “correcta conocida” le permite marcar una versión específica como punto de restauración de confianza. Si el guardado de un jugador se daña o necesita recuperarse, el sistema puede revertir a la versión correcta conocida más reciente y crear una versión nueva a partir de ella. Lo que ve:- Un evento
gamesave_version_marked_known_goodcuando designa una versión como punto de restauración, con el número deVersiony la marca de tiempoMarkedAt. - Si se produce una reversión, el sistema emite un evento
gamesave_version_finalizednuevo conIsGeneratedByRollback = true. El contenido de esta versión nueva se basa en la versión correcta conocida, pero recibe un número de versión nuevo e incrementado. - La versión generada por la reversión también puede tener datos de
Conflictsi la reversión se desencadenó como parte de una resolución de conflictos.
- Frecuencia de reversión: Realice el seguimiento de los eventos
gamesave_version_finalizeden los queIsGeneratedByRollback = true. Las reversiones frecuentes en un título podrían indicar problemas de daños en los guardados o problemas con la lógica de guardado del título. - Actualización de la versión correcta conocida: Compare la
Versionengamesave_version_marked_known_goodcon la últimaVersionfinalizada para el mismo jugador. Una brecha grande significa que el jugador perdería un progreso significativo si se necesita una reversión. - Correlación entre reversión y conflicto: Si las versiones generadas por reversión aparecen con frecuencia junto con datos de conflicto, ese patrón podría sugerir que su estrategia de resolución de conflictos está desencadenando reversiones como efecto secundario.
