Skip to main content
PlayFab Game Saves emite eventos de PlayStream que puede usar para realizar el seguimiento de cómo los jugadores guardan, sincronizan y administran los datos de su juego. Use estos eventos para supervisar la actividad de guardado, detectar conflictos y comprender los patrones de uso entre dispositivos en toda su base de jugadores. Todos los eventos de Game Saves se emiten sobre entidades 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 eventos gamesave_version_finalized con números de Version que se incrementan. Lo que ve:
  • Un evento gamesave_version_finalized cada vez que el jugador guarda, con DeviceType y PlayerIdentityProvider que indican qué dispositivo y proveedor de identidad se usaron.
  • NewFileCount y NewFilesSizeBytes muestran cuántos datos cambiaron en comparación con la versión anterior. Una versión donde NewFileCount es 0 significa que el jugador finalizó una versión sin contenido de archivos nuevo (por ejemplo, una actualización solo de metadatos).
  • Conflict es null e IsGeneratedByRollback es false para los guardados normales.
A qué debe prestar atención:
  • 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 TotalSizeBytes y NewFilesSizeBytes para 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 DeviceType para 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_finalized con un objeto Conflict no nulo. La versión existente en la nube (ya finalizada en un evento anterior) no produce un evento nuevo.
  • Conflict.IsWinner le 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.ConflictingVersion apunta a la versión existente en la nube que estaba en conflicto.
A qué debe prestar atención:
  • Tasa de conflictos: Filtre los eventos gamesave_version_finalized en los que Conflict esté 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 a IsWinner = 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 DeviceType y PlayerIdentityProvider en 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_good cuando designa una versión como punto de restauración, con el número de Version y la marca de tiempo MarkedAt.
  • Si se produce una reversión, el sistema emite un evento gamesave_version_finalized nuevo con IsGeneratedByRollback = 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 Conflict si la reversión se desencadenó como parte de una resolución de conflictos.
A qué debe prestar atención:
  • Frecuencia de reversión: Realice el seguimiento de los eventos gamesave_version_finalized en los que IsGeneratedByRollback = 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 Version en gamesave_version_marked_known_good con la última Version finalizada 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.
Última modificación el 28 de agosto de 2026