PlayDrop logoPlayDrop Studio
CréerÉchange de partiesGagnerApprendreConnecteursRessourcesCommunautéAide
PlayDrop logoPlayDrop Studio
CréerÉchange de partiesGagnerApprendreConnecteursRessourcesCommunautéAide
Se connecter
Sauvegardes cloud
Documentation

Commencez ici

Vue d’ensembleVotre premier jeuJeux PlayDropFAQ

Créer avec Cloud

Création CloudOffres et générations

Connecter votre app d’IA

Tous les connecteursClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publier et partager

Publier depuis votre app d’IAJeux HTML simplesPaquets et .playPublication et importFichiers de jeuVisibilité et audienceIllustrations et vidéos de la ficheGenres et tagsLocalisationJeux instantanés

Expérience de jeu

Chargement, pause et audioPlein écran et zones sûresSauvegardes cloudGroupes locaux et manettes

Jouer ensemble

Partage, amis et invitationsClassementsSuccèsGroupes en ligne et voixServeurs de jeu temps réel

Gains

MonétisationCrédits et récompenses

Ressources

Ressources de jeuGénération de ressources par IAFormats personnalisés et créations

Référence

SDK clientSDK serveurcatalogue.jsonErreurs et repriseDépannage
DocumentationSauvegardes cloud
Expérience de jeu

Sauvegardes cloud pour les jeux PlayDrop

Enregistrez et chargez la progression avec sdk.me.appData et sdk.me.updateAppData, pour invités et joueurs connectés : écritures, aperçus et hors ligne.

Les sauvegardes cloud conservent la progression de chaque joueur dans votre jeu sur PlayDrop : elle le suit du site web jusqu’aux apps. Un seul objet JSON est stocké par joueur et par jeu ; aucun serveur ni salle multijoueur n’est nécessaire.

Lire et écrire

Après init(), sdk.me.appData est l’état sauvegardé : { data, seq, ts_event, ts_arrival }, ou null avant la première sauvegarde. Lisez votre objet dans data. Écrivez l’objet entier avec updateAppData, qui renvoie l’état sauvegardé et met à jour 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
}
  • Chaque écriture remplace la totalité de l’objet sauvegardé : conservez tous les champs dont vous avez encore besoin.
  • Effectuez les écritures en série, comme ci-dessus, pour qu’une ancienne sauvegarde n’arrive jamais après une plus récente, et laissez la file avancer après un échec.
  • N’affichez « Sauvegardé » qu’une fois la promesse résolue. Modifier appData.data en mémoire n’enregistre rien.
  • appData n’a pas de méthodes get, set ni save.

Quand sauvegarder

Sauvegardez aux points de contrôle, en fin de niveau et lors des achats plutôt qu’à chaque image. Ne sauvegardez jamais pendant les aperçus ni les captures : n’écrivez que lorsque sdk.host.phase vaut play. Gardez une sauvegarde légère et versionnée avec votre propre champ, comme saveVersion: 2, pour qu’une version ultérieure du jeu puisse la migrer.

Invités et joueurs connectés

Inutile de vérifier sdk.me.isLoggedIn avant de sauvegarder : les invités PlayDrop conservent eux aussi leurs sauvegardes. Un joueur sans aucune session garde la sauvegarde en mémoire le temps de sa visite ; une écriture résolue ne prouve donc pas que la sauvegarde a atteint le cloud. N’utilisez isLoggedIn que pour les fonctionnalités qui exigent un véritable compte, comme les achats et le multijoueur hébergé.

Hors ligne

Dans un navigateur, les sauvegardes nécessitent une connexion et il n’existe pas de file d’attente hors ligne : continuez à jouer en cas d’échec et réessayez au prochain point de contrôle. Les hôtes qui annoncent la prise en charge des données sur l’appareil, comme les apps PlayDrop compatibles hors ligne, conservent les sauvegardes sur l’appareil et les synchronisent une fois en ligne.

Ce que les sauvegardes ne sont pas

Les sauvegardes sont propres à un joueur et à un jeu. Elles sont distinctes des classements et des succès, qui ont leurs propres API et apparaissent sur PlayDrop. Un état partagé entre joueurs, comme un match ou un monde, a sa place sur un serveur de jeu, dans les collections MongoDB de votre jeu.

Tester

Les sauvegardes appartiennent à un jeu envoyé sur PlayDrop. Envoyez au moins une fois une version privée, puis testez depuis l’url du reçu ou depuis le cadre Dev local décrit dans publier depuis votre app d’IA.

Guides associés

  • ClassementsDéclarez des classements dans catalogue.json, soumettez des scores avec sdk.leaderboards, affichez le top et les voisins du joueur : types de score, limites, règles.
  • SuccèsDéclarez des succès standard et progressifs avec icônes dans catalogue.json, débloquez-les et signalez la progression avec sdk.achievements.
  • Serveurs de jeu temps réelFaites héberger un serveur Colyseus 0.17 avec base MongoDB pour votre jeu, connectez le navigateur avec le SDK, testez à deux joueurs et connaissez les limites.
PrécédentPlein écran, zones sûres et coins de l’interface des jeux PlayDropSuivantGroupes locaux, manettes et manettes téléphone dans les jeux PlayDrop
Voir le Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Sur cette page

Lire et écrireQuand sauvegarderInvités et joueurs connectésHors ligneCe que les sauvegardes ne sont pasTester
Voir le Markdown