PlayDrop logoPlayDrop Studio
OpprettSpillbytteTjenLærConnectorerRessurserFellesskapStøtte
PlayDrop logoPlayDrop Studio
OpprettSpillbytteTjenLærConnectorerRessurserFellesskapStøtte
Logg inn
Skylagring
Dokumentasjon

Start her

OversiktDitt første spillPlayDrop-spillFAQ

Lag med Cloud

Opprettelse med CloudAbonnementer og genereringer

Koble til KI-appen din

Alle connectorerClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publiser og del

Publiser fra KI-appen dinEnkle HTML-spillPakking og .playPubliser og importerSpillfilerSynlighet og rekkeviddeOppføringsbilder og videoSjangre og taggerLokaliseringInstant-spill

Spillopplevelse

Lasting, pause og lydFullskjerm og trygge områderSkylagringLokale grupper og kontrollere

Spill sammen

Deling, venner og invitasjonerTopplisterPrestasjonerNettgrupper og stemmeSanntidsservere

Tjen

InntekterKreditter og belønninger

Ressurser

SpillressurserKI-generering av ressurserEgendefinerte formater og spillerkreasjoner

Referanse

Klient-SDKServer-SDKcatalogue.jsonFeil og gjenopprettingFeilsøking
DokumentasjonSkylagring
Spillopplevelse

Skylagring for PlayDrop-spill

Lagre og hent fremgang med sdk.me.appData og updateAppData for gjester og innloggede spillere, med regler for skriving, forhåndsvisninger og spill uten nett.

Skylagring tar vare på hver spillers fremgang i spillet ditt på PlayDrop, slik at den følger spilleren fra nettstedet til appene. Ett JSON-objekt per spiller og spill lagres; du trenger ingen server eller flerspillerrom.

Les og skriv

Etter init() er sdk.me.appData det lagrede øyeblikksbildet: { data, seq, ts_event, ts_arrival }, eller null før den første lagringen. Les objektet ditt fra data. Skriv hele objektet med updateAppData, som returnerer det lagrede øyeblikksbildet og oppdaterer 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
}
  • Hver skriving erstatter hele det lagrede objektet: behold alle feltene du fortsatt trenger.
  • Utfør skrivinger etter hverandre, som ovenfor, slik at en eldre lagring aldri kommer frem etter en nyere, og hold køen i gang etter en feil.
  • Vis «Lagret» først når promisen er oppfylt. Å endre appData.data i minnet lagrer ingenting.
  • appData har ikke metodene get, set eller save.

Når du skal lagre

Lagre ved sjekkpunkter, slutten av brett og kjøp i stedet for i hvert bilde. Lagre aldri under forhåndsvisninger eller opptak: skriv bare når sdk.host.phase er play. Hold lagringen liten og versjonert med et eget felt, som saveVersion: 2, slik at en senere versjon av spillet kan migrere den.

Gjester og innloggede spillere

Du trenger ikke sjekke sdk.me.isLoggedIn før du lagrer: PlayDrop-gjester beholder også lagringene sine. En spiller uten noen økt i det hele tatt beholder lagringen i minnet under det besøket, så en fullført skriving beviser ikke at lagringen kom frem til skyen. Bruk isLoggedIn bare for funksjoner som krever en ekte konto, som kjøp og hostet flerspiller.

Uten nett

I en nettleser krever lagring nettverkstilkobling, og det finnes ingen kø for lagringer uten nett: fortsett å spille ved feil og prøv igjen ved neste sjekkpunkt. Verter som oppgir støtte for enhetsdata, som PlayDrop-apper som fungerer uten nett, beholder lagringer på enheten og synkroniserer dem når de er på nett.

Hva lagringer ikke er

Lagringer er private for én spiller og ett spill. De er atskilt fra topplister og prestasjoner, som har egne API-er og vises på PlayDrop. Tilstand som deles mellom spillere, som en kamp eller en verden, hører hjemme på en spillserver i MongoDB-samlingene til spillet ditt.

Test

Lagringer hører til et opplastet spill. Last opp en privat versjon minst én gang, og test deretter fra url i kvitteringen eller fra den lokale Dev-rammen som er beskrevet i publisering fra KI-appen din.

Relaterte veiledninger

  • TopplisterDeklarer topplister i catalogue.json, send poengsummer med sdk.leaderboards og vis toppen og spillerens naboer. Poengtyper, grenser og oppdateringsregler.
  • PrestasjonerDeklarer vanlige og trinnvise prestasjoner med ikoner i catalogue.json, lås dem opp og rapporter fremgang med sdk.achievements.
  • SanntidsservereKjør en hostet Colyseus 0.17-server med en MongoDB-database for spillet ditt, koble til fra nettleseren med SDK-en, test med to spillere og kjenn grensene.
ForrigeFullskjerm, trygge områder og HUD-hjørner for PlayDrop-spillNesteLokale grupper, spillkontrollere og telefonkontrollere på PlayDrop
Vis Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

På denne siden

Les og skrivNår du skal lagreGjester og innloggede spillereUten nettHva lagringer ikke erTest
Vis Markdown