PlayDrop logoPlayDrop Studio
CriarTroca de partidasGanharAprenderConectoresRecursosComunidadeAjuda
PlayDrop logoPlayDrop Studio
CriarTroca de partidasGanharAprenderConectoresRecursosComunidadeAjuda
Entrar
Salvamentos na nuvem
Documentação

Comece aqui

Visão geralSeu primeiro jogoJogos do PlayDropPerguntas frequentes

Crie com o Cloud

Criação com CloudPlanos e gerações

Conecte seu app de IA

Todos os conectoresClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publique e compartilhe

Publicar pelo seu app de IAJogos em HTML simplesEmpacotamento e .playPublicação e importaçãoArquivos do jogoVisibilidade e alcanceArte e vídeo da listagemGêneros e tagsLocalizaçãoJogos instantâneos

Experiência de jogo

Carregamento, pausa e áudioTela cheia e áreas segurasSalvamentos na nuvemGrupos locais e controles

Jogue junto

Compartilhamento, amigos e convitesPlacaresConquistasGrupos online e vozServidores em tempo real

Ganhe

MonetizaçãoCréditos e recompensas

Assets

Assets de jogoGeração de assets com IAFormatos personalizados e criações dos jogadores

Referência

SDK de clienteSDK de servidorcatalogue.jsonErros e recuperaçãoSolução de problemas
DocumentaçãoSalvamentos na nuvem
Experiência de jogo

Salvamentos na nuvem para jogos do PlayDrop

Salve e carregue o progresso com sdk.me.appData e sdk.me.updateAppData, para convidados e jogadores logados, com as regras de gravação, prévias e modo offline.

Os salvamentos na nuvem guardam o progresso de cada jogador no seu jogo no PlayDrop, para que ele acompanhe o jogador do site aos apps. É armazenado um objeto JSON por jogador e por jogo; não é preciso servidor nem sala multijogador.

Leia e grave

Depois de init(), sdk.me.appData é o snapshot salvo: { data, seq, ts_event, ts_arrival }, ou null antes do primeiro salvamento. Leia seu objeto em data. Grave o objeto inteiro com updateAppData, que retorna o snapshot salvo e atualiza sdk.me.appData.

js
const sdk = await playdrop.init();
let progress = { level: 1, coins: 0, ...(sdk.me.appData?.data ?? {}) };
let queue = Promise.resolve();

// Resolves with the saved snapshot; rejects when the save failed.
function save(changes) {
  progress = { ...progress, ...changes };
  const snapshot = { ...progress };
  const attempt = queue.then(() => sdk.me.updateAppData(snapshot));
  queue = attempt.catch(() => {}); // a failed save must not block the next one
  return attempt;
}

try {
  await save({ level: 2 });
  showSaved();
} catch (error) {
  showSaveError(); // progress stays in memory; the next save sends it again
}
  • Cada gravação substitui todo o objeto salvo: mantenha todos os campos de que você ainda precisa.
  • Execute as gravações em sequência, como acima, para que um salvamento antigo nunca chegue depois de um mais recente, e mantenha a fila funcionando depois de uma falha.
  • Mostre "Salvo" só depois que a promise for resolvida. Alterar appData.data na memória não salva nada.
  • appData não tem métodos get, set ou save.

Quando salvar

Salve em checkpoints, no fim das fases e nas compras, e não a cada quadro. Nunca salve durante prévias ou capturas: só grave quando sdk.host.phase for play. Mantenha o salvamento pequeno e versionado com um campo seu, como saveVersion: 2, para que uma versão futura do jogo possa migrá-lo.

Convidados e jogadores logados

Você não precisa verificar sdk.me.isLoggedIn antes de salvar: os convidados do PlayDrop também mantêm seus salvamentos. Um jogador sem nenhuma sessão mantém o salvamento na memória durante aquela visita, então uma gravação resolvida não prova que o salvamento chegou à nuvem. Use isLoggedIn só para recursos que exigem uma conta real, como compras e multijogador hospedado.

Offline

No navegador, os salvamentos precisam de conexão e não há fila offline: continue o jogo quando houver falha e tente de novo no próximo checkpoint. Hosts que anunciam suporte a dados no dispositivo, como os apps do PlayDrop que funcionam offline, guardam os salvamentos no dispositivo e os sincronizam quando há conexão.

O que os salvamentos não são

Os salvamentos são privados de um jogador e de um jogo. Eles são separados dos placares e das conquistas, que têm suas próprias APIs e aparecem no PlayDrop. Estados compartilhados entre jogadores, como uma partida ou um mundo, ficam em um servidor de jogo, nas coleções MongoDB do seu jogo.

Teste

Os salvamentos pertencem a um jogo enviado. Envie uma versão privada pelo menos uma vez e depois teste pela url do recibo ou pelo frame Dev local descrito em publicar pelo seu app de IA.

Guias relacionados

  • PlacaresDeclare placares no catalogue.json, envie pontuações com sdk.leaderboards e mostre o topo e os vizinhos do jogador. Tipos de pontuação, limites e atualizações.
  • ConquistasDeclare conquistas padrão e incrementais com ícones no catalogue.json, desbloqueie-as e informe o progresso com sdk.achievements.
  • Servidores em tempo realRode um servidor Colyseus 0.17 hospedado com um banco MongoDB para o seu jogo, conecte o navegador com o SDK, teste com dois jogadores e conheça os limites.
AnteriorTela cheia, áreas seguras e cantos do HUD em jogos do PlayDropPróximoGrupos locais, controles físicos e controles de celular no PlayDrop
Ver Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Nesta página

Leia e graveQuando salvarConvidados e jogadores logadosOfflineO que os salvamentos não sãoTeste
Ver Markdown