title_player_account no namespace playfab.gamesave.
Eventos
gamesave_version_finalized
Emitido sempre que uma versão de jogo salvo é finalizada. Todos os arquivos foram carregados e a versão está completa. Este evento é o principal sinal para acompanhar a atividade de salvamento.
Conflict (objeto aninhado, presente somente durante a resolução de conflitos):
gamesave_version_marked_known_good
Emitido quando uma versão de jogo salvo é marcada explicitamente como “válida conhecida”. Uma versão válida conhecida serve como ponto de restauração confiável: é a versão para a qual o sistema reverte se um jogador ou o título precisar se recuperar de um estado de salvamento incorreto.
Cenários
Cenário: uso padrão entre dispositivos
Um fluxo típico entre dispositivos consiste em um jogador salvar em um dispositivo e retomar em outro. No PlayStream, esse padrão aparece como uma sequência de eventosgamesave_version_finalized com números de Version crescentes.
O que você vê:
- Um evento
gamesave_version_finalizedsempre que o jogador salva, comDeviceTypeePlayerIdentityProviderindicando qual dispositivo e qual provedor de identidade foram usados. NewFileCounteNewFilesSizeBytesmostram quantos dados mudaram em comparação com a versão anterior. Uma versão em queNewFileCounté 0 significa que o jogador finalizou uma versão sem conteúdo de arquivo novo (por exemplo, uma atualização somente de metadados).ConflicténulleIsGeneratedByRollbackéfalseem salvamentos normais.
- Frequência de salvamento por jogador: acompanhe a taxa de eventos de finalização para entender o engajamento dos jogadores e o comportamento de salvamento.
- Tamanhos dos salvamentos ao longo do tempo: monitore
TotalSizeByteseNewFilesSizeBytespara identificar um crescimento inesperado dos dados salvos que possa afetar os custos de armazenamento ou os tempos de sincronização. - Distribuição de dispositivos: agregue
DeviceTypepara entender a partir de quais plataformas seus jogadores salvam com mais frequência.
Cenário: resolução de conflitos
Os conflitos ocorrem quando dois dispositivos finalizam uma versão de jogo salvo com base na mesma versão base. Por exemplo, um jogador pode jogar offline no console e no PC ao mesmo tempo, e ambos os dispositivos tentam sincronizar quando voltam a ficar online. O que você vê:- Durante a resolução de conflitos, o cliente sempre carrega seus arquivos locais em um novo manifesto e finaliza o manifesto. Esse processo produz um único evento
gamesave_version_finalizedcom um objetoConflictnão nulo. A versão existente na nuvem (já finalizada em um evento anterior) não produz um novo evento. Conflict.IsWinnerinforma se as alterações locais do jogador venceram o conflito:true: o jogador escolheu keep local. O novo manifesto se torna a versão canônica, e a versão anterior na nuvem é substituída.false: o jogador escolheu keep remote. O novo manifesto é preservado como ponto de reversão (contendo os dados locais rejeitados), enquanto a versão existente na nuvem permanece canônica.
Conflict.ConflictingVersionaponta para a versão existente na nuvem que estava em conflito.
- Taxa de conflitos: filtre os eventos
gamesave_version_finalizedem queConflictestá presente. Uma taxa de conflitos crescente pode indicar que os jogadores trocam de dispositivo com frequência sem sincronizar ou que a cadência de salvamento do seu título causa colisões de versão desnecessárias. - Preferência entre local e remoto: compare a proporção de
IsWinner = true(manteve o local) eIsWinner = false(manteve o remoto) para entender como os jogadores resolvem os conflitos. Uma forte tendência para um dos lados pode indicar um problema de UX no prompt de conflito. - Padrões de conflito entre dispositivos: use
DeviceTypeePlayerIdentityProvidernos eventos de conflito para entender quais combinações de plataformas são mais propensas a conflitos.
Cenário: versão válida conhecida e reversão
O mecanismo de “válida conhecida” permite marcar uma versão específica como ponto de restauração confiável. Se o salvamento de um jogador for corrompido ou ele precisar se recuperar, o sistema poderá reverter para a versão válida conhecida mais recente e criar uma nova versão a partir dela. O que você vê:- Um evento
gamesave_version_marked_known_goodquando você designa uma versão como ponto de restauração, com o número deVersione o carimbo de data/horaMarkedAt. - Se ocorrer uma reversão, o sistema emitirá um novo evento
gamesave_version_finalizedcomIsGeneratedByRollback = true. O conteúdo dessa nova versão se baseia na versão válida conhecida, mas ela recebe um novo número de versão incrementado. - A versão gerada pela reversão também pode ter dados de
Conflictse a reversão tiver sido disparada como parte de uma resolução de conflito.
- Frequência de reversões: acompanhe os eventos
gamesave_version_finalizedem queIsGeneratedByRollback = true. Reversões frequentes em um título podem indicar problemas de corrupção de salvamentos ou na lógica de salvamento do título. - Atualidade da versão válida conhecida: compare a
Versionemgamesave_version_marked_known_goodcom aVersionfinalizada mais recente do mesmo jogador. Uma grande diferença significa que o jogador perderia um progresso significativo se fosse necessária uma reversão. - Correlação entre reversão e conflito: se as versões geradas por reversão aparecerem com frequência junto com dados de conflito, esse padrão pode sugerir que sua estratégia de resolução de conflitos está disparando reversões como efeito colateral.
