Como a reversão funciona
O Game Saves acompanha as versões finalizadas dos dados salvos de um jogador. Quando você dispara uma reversão, o serviço cria uma nova versão cujo conteúdo é idêntico ao estado anterior que você está restaurando. A reversão preserva o histórico de versões original. Ela não exclui nem sobrescreve as versões anteriores. Outros dispositivos que sincronizam após a reversão a veem como uma atualização normal. Há dois tipos de reversão. Você dispara cada um passando um sinalizador de opção paraPFGameSaveFilesAddUserWithUiAsync:
Ambas as opções recorrem ao comportamento padrão (sincronizar a versão mais recente atual) se não houver um ponto de restauração qualificado.
Quando usar cada tipo de reversão
Reversão para a última versão válida conhecida
UseRollbackToLastKnownGood quando suspeitar que o upload mais recente está incorreto. Os gatilhos comuns incluem:
- Falha de carregamento ou falha na verificação de integridade após baixar um salvamento.
- Uma falha durante ou imediatamente após uma operação de salvamento.
- Um relato de jogador sobre estado corrompido ou regredido.
Reversão para o último conflito
UseRollbackToLastConflict quando um jogador escolheu o lado errado durante a resolução de conflito. Conforme descrito em Conflitos do Game Saves, ambas as escolhas de resolução preservam o branch descartado. Esta opção de reversão restaura esse branch preservado.
Chamando a API
Dispare a reversão passando a opção apropriada paraPFGameSaveFilesAddUserWithUiAsync. Você só pode chamar essa função uma vez por usuário; portanto, para reverter um usuário que já foi adicionado, primeiro chame PFGameSaveFilesUninitializeAsync e aguarde a conclusão.
Comportamento de fallback
Se não houver um ponto de restauração qualificado para o tipo de reversão solicitado, a chamada se comportará como se você tivesse passadoPFGameSaveFilesAddUserOptions::None. A versão mais recente atual é sincronizada normalmente. Verifique os arquivos sincronizados após a conclusão da chamada para confirmar se ocorreu uma reversão.
Configuração do título
Você pode restringir a reversão iniciada pelo cliente por meio de dois sinalizadores de configuração. Ao habilitar qualquer um dos sinalizadores, somente as ferramentas de suporte e o Game Manager poderão executar esse tipo de reversão.
Defina esses sinalizadores no Game Manager em Progression > Game Saves.
Tratamento de erros
Considerações
- A reversão cria uma nova versão. Ela não apaga o histórico. A sequência de versões do jogador continua avançando.
- O serviço acompanha as versões válidas conhecidas automaticamente. Ele determina quais versões se qualificam com base em ciclos bem-sucedidos de carregamento seguido de substituição. Seu jogo não precisa marcar as versões explicitamente.
- Uma reversão por chamada de adição de usuário. Como você só pode chamar
PFGameSaveFilesAddUserWithUiAsyncuma vez por usuário, disparar uma segunda reversão exige chamarPFGameSaveFilesUninitializeAsyncprimeiro. - Os retornos de chamada de interface do usuário continuam sendo disparados. A reversão passa pelo mesmo fluxo de sincronização de uma chamada normal de adição de usuário. Registre seus retornos de chamada de interface do usuário antes de chamar a API.
- Restrinja a reversão, se necessário. Se o seu jogo tratar a recuperação no lado do servidor ou por meio de ferramentas de suporte, desabilite a reversão pelo cliente com os sinalizadores de configuração do título para evitar que os jogadores revertam o progresso acidentalmente.
- A reversão funciona em todas as plataformas. Esta API não tem proteções específicas de plataforma.
