PlayDrop logoPlayDrop Studio
CrearIntercambio de partidasGanarAprenderConectoresRecursosComunidadAyuda
PlayDrop logoPlayDrop Studio
CrearIntercambio de partidasGanarAprenderConectoresRecursosComunidadAyuda
Iniciar sesión
Partidas guardadas en la nube
Documentación

Empieza aquí

ResumenTu primer juegoJuegos de PlayDropPreguntas frecuentes

Crea con Cloud

Creación con CloudPlanes y generaciones

Conecta tu app de IA

Todos los conectoresClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publica y comparte

Publicar desde tu app de IAJuegos HTML simplesEmpaquetado y .playPublicar e importarArchivos del juegoVisibilidad y alcanceImágenes y vídeo de la fichaGéneros y etiquetasLocalizaciónJuegos instantáneos

Experiencia de juego

Carga, pausa y audioPantalla completa y zonas segurasPartidas guardadas en la nubeGrupos locales y mandos

Juega en grupo

Compartir, amigos e invitacionesClasificacionesLogrosGrupos en línea y vozServidores en tiempo real

Gana

MonetizaciónCréditos y recompensas

Recursos

Recursos de juegoGeneración de recursos con IAFormatos personalizados y creaciones de jugadores

Referencia

SDK de clienteSDK de servidorcatalogue.jsonErrores y recuperaciónSolución de problemas
DocumentaciónPartidas guardadas en la nube
Experiencia de juego

Partidas guardadas en la nube para juegos de PlayDrop

Guarda y carga el progreso con sdk.me.appData y sdk.me.updateAppData, para invitados y jugadores con sesión: escrituras, vistas previas y juego sin conexión.

Las partidas guardadas en la nube conservan el progreso de cada jugador en tu juego en PlayDrop, para que lo acompañe de la web a las apps. Se guarda un objeto JSON por jugador y juego; no hace falta ningún servidor ni sala multijugador.

Lee y escribe

Después de init(), sdk.me.appData es la instantánea guardada: { data, seq, ts_event, ts_arrival }, o null antes del primer guardado. Lee tu objeto desde data. Escribe el objeto completo con updateAppData, que devuelve la instantánea guardada y actualiza 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 escritura reemplaza todo el objeto guardado: conserva todos los campos que todavía necesites.
  • Realiza las escrituras en serie, como arriba, para que un guardado antiguo nunca llegue después de uno más reciente, y mantén la cola en marcha tras un fallo.
  • Muestra «Guardado» solo cuando la promesa se resuelva. Cambiar appData.data en memoria no guarda nada.
  • appData no tiene métodos get, set ni save.

Cuándo guardar

Guarda en los puntos de control, al terminar un nivel y en las compras, no en cada fotograma. No guardes nunca durante las vistas previas ni las capturas: escribe solo cuando sdk.host.phase sea play. Mantén cada partida guardada pequeña y versionada con un campo propio, como saveVersion: 2, para que una versión posterior del juego pueda migrarla.

Invitados y jugadores con la sesión iniciada

No necesitas comprobar sdk.me.isLoggedIn antes de guardar: los invitados de PlayDrop también conservan sus partidas guardadas. Un jugador sin ninguna sesión conserva la partida guardada en memoria durante esa visita, así que una escritura resuelta no demuestra que haya llegado a la nube. Usa isLoggedIn solo para funciones que necesitan una cuenta real, como las compras y el multijugador alojado.

Sin conexión

En un navegador, guardar requiere conexión y no hay cola sin conexión: sigue jugando si falla y vuelve a intentarlo en el siguiente punto de control. Los hosts que anuncian compatibilidad con datos en el dispositivo, como las apps de PlayDrop que funcionan sin conexión, conservan las partidas guardadas en el dispositivo y las sincronizan cuando hay conexión.

Qué no son las partidas guardadas

Cada partida guardada es privada y pertenece a un solo jugador y un solo juego. Son independientes de las clasificaciones y los logros, que tienen sus propias API y aparecen en PlayDrop. El estado compartido entre jugadores, como una partida multijugador o un mundo, va en un servidor de juego, en las colecciones de MongoDB de tu juego.

Prueba

Las partidas guardadas pertenecen a un juego subido. Sube una versión privada al menos una vez y prueba desde la url del recibo o desde el marco Dev local que se describe en publicar desde tu app de IA.

Guías relacionadas

  • ClasificacionesDeclara clasificaciones en catalogue.json, envía puntuaciones con sdk.leaderboards y muestra los mejores puestos y los vecinos del jugador. Tipos, límites y reglas.
  • LogrosDeclara logros estándar e incrementales con iconos en catalogue.json, desbloquéalos e informa del progreso con sdk.achievements.
  • Servidores en tiempo realEjecuta un servidor Colyseus 0.17 alojado con base de datos MongoDB, conéctate desde el navegador con el SDK, prueba con dos jugadores y conoce los límites.
AnteriorPantalla completa, zonas seguras y esquinas del HUD en PlayDropSiguienteGrupos locales, mandos y mandos de teléfono en juegos de PlayDrop
Ver Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

En esta página

Lee y escribeCuándo guardarInvitados y jugadores con la sesión iniciadaSin conexiónQué no son las partidas guardadasPrueba
Ver Markdown