Configurações do Partner Center
Habilitando os serviços XBOX e o Game Saves para o seu título
Para usar as APIs do Game Saves, conclua as etapas a seguir no Partner Center.- Habilite os serviços XBOX.
- Entre no Partner Center.
- Acesse o seu título e habilite os serviços XBOX nas configurações. Para obter mais informações sobre esta etapa, consulte Configurando um aplicativo ou jogo no Partner Center, para Parceiros Gerenciados.
- Obtenha o identificador de configuração de serviço (SCID). Todas as operações de leitura e gravação devem estar associadas a um SCID. O SCID também é usado na inicialização do Game Saves.
- No Partner Center, encontre o SCID na guia XBOX services > XBOX settings do seu título. Você também pode encontrar a ID do Aplicativo (MSAAppID) da sua conta Microsoft (MSA) nesta página.

- No Partner Center, encontre o SCID na guia XBOX services > XBOX settings do seu título. Você também pode encontrar a ID do Aplicativo (MSAAppID) da sua conta Microsoft (MSA) nesta página.
Cenários de desenvolvimento
Onde integro o Game Saves no meu código?
A lógica do Game Saves depende da entrada do usuário. Adicione o código do Game Saves junto ao fluxo de entrada do usuário.Como garanto que os dados dos meus jogos salvos não sejam corrompidos?
Para salvar dados com segurança e evitar corrupção, siga estas etapas. Esta orientação se aplica a todas as operações de salvamento.- Grave em um arquivo temporário.
- Serialize os dados salvos em um novo arquivo (por exemplo,
save.tmp) em vez de substituir o salvamento ativo. Esta etapa protege o salvamento existente caso o processo seja interrompido no meio da gravação.
- Serialize os dados salvos em um novo arquivo (por exemplo,
- Feche o identificador de gravação depois que a gravação estiver totalmente confirmada no disco.
- Substitua o arquivo de salvamento antigo de forma atômica pelo novo arquivo temporário usando a função ReplaceFile do Win32.
Como dou suporte a dispositivos offline?
Você é responsável por determinar como o título se comporta se houver perda de conexão antes e depois da inicialização do Game Saves. Para obter mais informações sobre o comportamento offline, consulte Noções básicas sobre o fluxo de sincronização do Game Saves.Quais interações do usuário preciso conhecer?
O sistema operacional mostra prompts do sistema quando uma ação requer a entrada do usuário. Para obter informações sobre esses prompts, consulte Caixas de diálogo do Game Saves.Há uma maneira de salvar localmente e somente no dispositivo?
Se você passar um identificador de usuárionull para o processo de inicialização do Game Save, o sistema criará um provedor somente de máquina. Os dados são armazenados localmente e persistem no dispositivo, com um limite máximo de 256 MB. Os dados não são sincronizados com a nuvem.
Para obter mais informações sobre o armazenamento do Game Saves, consulte Sistemas de armazenamento do Game Saves.
Gerenciando jogos salvos pelo dispositivo
Acessando jogos salvos locais no PC usando o Explorador de Arquivos
Se o seu título for executado no PC, você terá acesso direto aos arquivos. Dependendo da implementação da API do Game Saves, você pode acessar os jogos salvos locais nos seguintes locais.
Ao manipular dados no PC, a lógica de sincronização continua se aplicando. Por exemplo, modificar dados quando o título não tem um bloqueio causa conflitos.
Acessando jogos salvos locais no console
Gerencie os dados salvos do console pela interface do usuário do XBOX. Acesse-os seguindo estas etapas.- Selecione o botão Home no controle XBOX.
- Selecione Meus jogos e aplicativos > Ver tudo.
- Passe o cursor sobre o seu jogo e selecione o botão Exibir.
- Selecione Dados salvos.

- Excluir dados no console usando a interface do usuário do sistema não remove a cópia armazenada na nuvem. Quando você inicia o título novamente, ele sincroniza os dados a partir da nuvem.
- Os dados do provedor de máquina aparecem como um usuário sem nome. Esses dados permanecem no dispositivo, não são sincronizados com a nuvem e ficam vinculados ao dispositivo.
Cenários de teste
Ao criar casos de teste, separe a validação de dados da lógica de jogos salvos.Testar se os jogos salvos são sincronizados corretamente de e para a nuvem
Use as etapas a seguir para testar a sincronização correta. Os fluxos de teste verificam o comportamento.XGameSaveFiles:
- Confirme se o SCID está correto.
- Confirme se você está usando o identificador de usuário correto.
- Confirme se o título chama
XGameSaveFilesGetFolderWithUIAsyncdurante a sessão de jogo atual. Se o título for retomado de um estado de suspensão, chame a função.- Use o Fiddler para confirmar que o bloqueio foi adquirido.
- Salve esse caminho e use-o mais tarde para confirmar que os dados estão sendo carregados.
- Grave alguns dados no caminho de arquivo fornecido por
XGameSaveFilesGetFolderWithUIAsync. - Encerre ou suspenda o título.
- Aguarde de 10 a 30 segundos para que o sistema operacional carregue automaticamente os dados para a nuvem e libere o bloqueio.
- Confirme que os dados foram carregados e que o bloqueio foi liberado usando o Fiddler.
- Exclua manualmente os dados na pasta fornecida por
XGameSaveFilesGetFolderWithUIAsync.- No console, acesse esses dados pelas configurações do jogador.
- Inicie o título novamente e tente fazer o usuário entrar.
- Uma caixa de diálogo de sincronização é exibida, mostrando uma sincronização de download ativa a partir da nuvem.
- Ferramentas do Game Saves para inspecionar o tráfego e manipular salvamentos
- Noções básicas sobre o fluxo de sincronização do Game Saves
Testar se os jogos salvos fazem roaming corretamente
Para obter um plano de teste que confirme se os dados fazem roaming, consulte Plano de Teste XR-052-06.Cenários de migração
Compartilhando jogos salvos entre títulos
Para transferir ou acessar dados de um título em outro, conclua duas etapas.- Modifique as políticas de acesso do título que você deseja acessar no Partner Center.
- Inicialize os provedores do Game Saves para ambos os títulos no código-fonte.
Modificar políticas de acesso
Um título controla quais títulos têm acesso aos seus dados de jogos salvos configurando políticas de acesso.- Acesse o Partner Center.
- Selecione Apps and games > <your title> > Gameplay settings.
- Em Gameplay Settings, selecione Access Policies e expanda Connected Storage.
- Selecione Add app/service e adicione os títulos aos quais você deseja fornecer acesso.
- Quando terminar de adicionar os títulos, selecione Save e, em seguida, Publish. As alterações entram em vigor em até uma hora.

Inicializar provedores do Game Save
Agora que você tem permissão para acessar o primeiro título, pode ler os dados deXGameSave do outro título.
- Se você estiver usando
XGameSave, chameXGameSaveInitializeProviderouXGameSaveInitializeProviderAsyncpara cada título. - Se você estiver usando
XGameSaveFiles, os provedores são inicializados implicitamente. ChameXGameSaveFilesGetFolderWithUiAsyncpara cada título.
Interoperabilidade entre XGameSave e XGameSaveFiles
Um título pode precisar usarXGameSave junto com XGameSaveFiles. Os motivos típicos podem ser os seguintes:
- O editor tem um título existente no console que já usa
XGameSave. - O editor não quer atualizar esse título existente para usar
XGameSaveFiles. - O editor acha que adicionar
XGameSaveFilesa um título de PC é mais fácil do que usarXGameSave, mas ainda deseja dar suporte a salvamentos cruzados entre PC, console e streaming de jogos XBOX.
XGameSave e XGameSaveFiles é bastante simples. Quando o título chama XGameSaveFilesGetFolderWithUiAsync, ele mapeia contêineres e blobs para diretórios e arquivos usando as seguintes regras:
- Qualquer barra (/) no nome do contêiner cria a estrutura de diretórios em que o arquivo reside.
- Os caracteres a seguir são inválidos para
XGameSaveFiles. Se o sistema encontrar esses caracteres, ele os mapeará para um sublinhado (_):- Caracteres de \0 a \001f, inclusive.
- Os caracteres a seguir não são válidos para
XGameSaveFiles. Se o sistema encontrar esses caracteres, ele os mapeará para um ponto (.):- Aspas (”)
- Sinal de menor que (<)
- Sinal de maior que (>)
- Barra vertical (|)
- Asterisco (*)
- Ponto de interrogação (?)
- Barra invertida (\)
- Uma barra (/) no nome do blob é mapeada para um ponto (.) no nome do arquivo.
- Os arquivos são limitados a 16 MB.
XGameSavedá suporte a um tamanho máximo de carregamento de 16 MB.
XGameSaveFiles para XGameSave, ele restaura os nomes originais de contêineres e blobs se os nomes de arquivo permanecerem inalterados ou não forem movidos.
Portando títulos anteriores para o Game Saves do PC com salvamentos na nuvem sem código
Alguns títulos que você porta para o PC Game Pass podem exigir uma solução de salvamento na nuvem sem código. Esse requisito pode ocorrer nos seguintes cenários:- O título é executado como um aplicativo x86. Ele usa o Microsoft Game Development Kit (GDK) apenas em sua forma empacotada.
- O título é criado sem código personalizado, usando ferramentas como o Blueprint no Unreal Engine ou o Bolt no Unity.
- O título é encerrado.
- O usuário rastreado sai.
- O estado de energia do PC muda.
- Passaram-se 30 minutos desde a última vez que o título gravou na área de salvamento designada.
XGameSaveFiles e compartilha todas as suas limitações com relação a tamanhos de arquivo e limites de armazenamento por usuário. Os arquivos são limitados a 64 MB (ou 16 MB se houver necessidade de interoperabilidade com XGameSave ou Connected Storage). Por padrão, o armazenamento por usuário é limitado a 256 MB. Os títulos que precisam de limites maiores de armazenamento por usuário podem trabalhar com o Gerente de Parceiros de Desenvolvedor (DPM) para solicitar uma exceção.
Há convenções de nomenclatura e limites de caracteres específicos para diretórios e nomes de arquivo. Para obter mais informações, consulte Lógica de caminho do XGameSaveFiles.
Os salvamentos na nuvem sem código exigem que o título seja iniciado como um build empacotado usando
wdapp install. Iniciar o .exe diretamente não ativa o redirecionamento de salvamento na nuvem.Quando um build empacotado é executado, os salvamentos gravados por meio de NoCodePCRoot são redirecionados para o armazenamento gerenciado pelo XGameSaveFiles. Uma inicialização posterior direta do .exe lê a pasta física NoCodePCRoot, que pode estar vazia, fazendo com que os salvamentos pareçam estar ausentes. Para evitar esse problema, sempre teste os salvamentos na nuvem sem código com builds empacotados usando wdapp install.Habilitando salvamentos na nuvem sem código
Para habilitar salvamentos na nuvem sem código, conclua as seguintes etapas:- Modifique o arquivo
MicrosoftGame.config. - Habilite o modelo de usuário simplificado.
- Especifique a pasta raiz para os arquivos de salvamento.
- Forneça o SCID correspondente do título.
NoCodePCRoot deve ser relativa a uma de um pequeno conjunto de opções.
Use
SavedGames como o valor de RelativeTo. A pasta Jogos Salvos (%USERPROFILE%\Saved Games) corresponde à ID de pasta conhecida do Windows FOLDERID_SavedGames. O OneDrive não sincroniza essa pasta por padrão.Evite usar outros locais, como AppData (%APPDATA%). O OneDrive pode sincronizar esses locais e causar conflitos com a sincronização de salvamentos na nuvem.Para obter mais informações sobre FOLDERID_SavedGames, consulte SHGetKnownFolderPath.<NoCodePCRoot RelativeTo="SavedGames">savegame1.sav</NoCodePCRoot>, não é válido porque savegame1.sav é ignorado. <NoCodePCRoot> destina-se a definir um caminho de diretório, não um arquivo específico.
