PlayDrop logoPlayDrop Studio
ErstellenSpieltauschVerdienenLernenConnectorsAssetsCommunityHilfe
PlayDrop logoPlayDrop Studio
ErstellenSpieltauschVerdienenLernenConnectorsAssetsCommunityHilfe
Anmelden
Cloud-Spielstände
Dokumentation

Hier starten

ÜbersichtDein erstes SpielPlayDrop-SpieleFAQ

Mit Cloud erstellen

Cloud-ErstellungTarife & Generierungen

KI-App verbinden

Alle ConnectorsClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Veröffentlichen und teilen

Aus deiner KI-App veröffentlichenEinfache HTML-SpielePakete und .playVeröffentlichen und importierenSpieldateienSichtbarkeit und ReichweiteBilder und Videos für den SpieleintragGenres und TagsLokalisierungSofortspiele

Spielerlebnis

Laden, Pause und AudioVollbild und sichere BereicheCloud-SpielständeLokale Partys und Controller

Zusammen spielen

Teilen, Freunde und EinladungenBestenlistenErfolgeOnline-Partys und SprachchatEchtzeit-Spielserver

Verdienen

MonetarisierungCredits & Belohnungen

Assets

Spiel-AssetsKI-Asset-GenerierungEigene Formate und Spielerkreationen

Referenz

Client-SDKServer-SDKcatalogue.jsonFehler und WiederherstellungFehlerbehebung
DokumentationCloud-Spielstände
Spielerlebnis

Cloud-Spielstände für PlayDrop-Spiele

Spielerfortschritt mit sdk.me.appData und sdk.me.updateAppData speichern und laden, für Gäste und Angemeldete; Regeln für Schreiben, Vorschau und Offline.

Cloud-Spielstände bewahren den Fortschritt jedes Spielers in deinem Spiel auf PlayDrop auf, sodass er ihn von der Website bis in die Apps begleitet. Gespeichert wird ein JSON-Objekt pro Spieler und Spiel; ein Server oder Multiplayer-Raum ist nicht nötig.

Lesen und schreiben

Nach init() ist sdk.me.appData der gespeicherte Snapshot: { data, seq, ts_event, ts_arrival }, oder null vor dem ersten Speichern. Lies dein Objekt aus data. Schreibe das ganze Objekt mit updateAppData; die Methode gibt den gespeicherten Snapshot zurück und aktualisiert 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
}
  • Jeder Schreibvorgang ersetzt das gesamte gespeicherte Objekt: Behalte jedes Feld, das du noch brauchst.
  • Führe Schreibvorgänge wie oben nacheinander aus, damit ein älterer Spielstand nie nach einem neueren ankommt, und halte die Warteschlange nach einem Fehler am Laufen.
  • Zeige „Gespeichert“ erst an, wenn das Promise erfüllt ist. Eine Änderung an appData.data im Arbeitsspeicher speichert nichts.
  • appData hat keine Methoden get, set oder save.

Wann speichern

Speichere an Checkpoints, am Levelende und bei Käufen statt in jedem Frame. Speichere nie während Vorschauen oder Aufnahmen: Schreibe nur, wenn sdk.host.phase gleich play ist. Halte einen Spielstand klein und versioniere ihn mit einem eigenen Feld wie saveVersion: 2, damit eine spätere Spielversion ihn migrieren kann.

Gäste und angemeldete Spieler

Du musst sdk.me.isLoggedIn vor dem Speichern nicht prüfen: Auch PlayDrop-Gäste behalten ihre Spielstände. Ein Spieler ganz ohne Sitzung behält den Spielstand für diesen Besuch im Arbeitsspeicher; ein erfolgreicher Schreibvorgang beweist also nicht, dass der Spielstand in der Cloud angekommen ist. Verwende isLoggedIn nur für Funktionen, die ein echtes Konto brauchen, etwa Käufe und gehosteten Multiplayer.

Offline

Im Browser brauchen Spielstände eine Verbindung, und es gibt keine Offline-Warteschlange: Lass das Spiel bei einem Fehler weiterlaufen und versuche es am nächsten Checkpoint erneut. Hosts, die Unterstützung für Gerätedaten angeben, etwa offlinefähige PlayDrop-Apps, behalten Spielstände auf dem Gerät und synchronisieren sie, sobald sie online sind.

Was Spielstände nicht sind

Spielstände sind privat für einen Spieler und ein Spiel. Sie sind getrennt von Bestenlisten und Erfolgen, die eigene APIs haben und auf PlayDrop erscheinen. Zustand, den Spieler miteinander teilen, etwa ein Match oder eine Welt, gehört auf einen Spielserver in die MongoDB-Collections deines Spiels.

Testen

Spielstände gehören zu einem hochgeladenen Spiel. Lade mindestens einmal eine private Version hoch und teste dann über die url aus dem Beleg oder im lokalen Dev-Rahmen, der unter Aus deiner KI-App veröffentlichen beschrieben ist.

Verwandte Anleitungen

  • BestenlistenBestenlisten in catalogue.json deklarieren, Punkte mit sdk.leaderboards senden, Spitzenplätze und Nachbarn des Spielers zeigen. Punktarten, Grenzen, Update-Regeln.
  • ErfolgeStandard- und Fortschrittserfolge mit Symbolen in catalogue.json deklarieren, freischalten und Fortschritt mit sdk.achievements melden.
  • Echtzeit-SpielserverGehosteter Colyseus-0.17-Server mit MongoDB-Datenbank für dein Spiel: Verbindung per SDK aus dem Browser, Test mit zwei Spielern und die Grenzen.
ZurückVollbild, sichere Bereiche und HUD-Ecken für PlayDrop-SpieleWeiterLokale Partys, Gamepads und Handy-Controller in PlayDrop-Spielen
Markdown anzeigen
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Auf dieser Seite

Lesen und schreibenWann speichernGäste und angemeldete SpielerOfflineWas Spielstände nicht sindTesten
Markdown anzeigen