Pilvitallennukset PlayDrop-peleihin
Tallenna ja lataa edistyminen sdk.me.appData- ja updateAppData-rajapinnoilla vieraille ja kirjautuneille sekä kirjoitus-, esikatselu- ja offline-säännöt.
Pilvitallennukset säilyttävät jokaisen pelaajan edistymisen pelissäsi PlayDropissa, joten se seuraa pelaajaa verkkosivustolta sovelluksiin. Jokaista pelaajaa ja peliä kohden tallennetaan yksi JSON-olio; palvelinta tai moninpelihuonetta ei tarvita.
Lue ja kirjoita
init()-kutsun jälkeen sdk.me.appData on tallennettu tilannevedos: { data, seq, ts_event, ts_arrival }, tai null ennen ensimmäistä tallennusta. Lue oliosi kentästä data. Kirjoita koko olio kutsulla updateAppData, joka palauttaa tallennetun tilannevedoksen ja päivittää arvon sdk.me.appData.
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
}- Jokainen kirjoitus korvaa koko tallennetun olion: säilytä kaikki kentät, joita vielä tarvitset.
- Suorita kirjoitukset peräkkäin yllä olevan mallin mukaan, jotta vanhempi tallennus ei koskaan päädy uudemman jälkeen, ja pidä jono käynnissä epäonnistumisen jälkeen.
- Näytä ”Tallennettu” vasta, kun lupaus on täyttynyt. Arvon
appData.datamuuttaminen muistissa ei tallenna mitään. appData-oliolla ei ole metodejaget,settaisave.
Milloin tallentaa
Tallenna tarkistuspisteissä, tasojen lopussa ja ostojen yhteydessä, älä joka ruudulla. Älä koskaan tallenna esikatselujen tai kaappausten aikana: kirjoita vain, kun sdk.host.phase on play. Pidä tallennus pienenä ja versioi se omalla kentälläsi, kuten saveVersion: 2, jotta pelin myöhempi versio voi siirtää sen uuteen muotoon.
Vieraat ja kirjautuneet pelaajat
Sinun ei tarvitse tarkistaa arvoa sdk.me.isLoggedIn ennen tallentamista: myös PlayDropin vieraat säilyttävät tallennuksensa. Pelaaja, jolla ei ole lainkaan istuntoa, säilyttää tallennuksen muistissa kyseisen käynnin ajan, joten valmistunut kirjoitus ei todista, että tallennus päätyi pilveen. Käytä arvoa isLoggedIn vain ominaisuuksiin, jotka vaativat oikean tilin, kuten ostoihin ja isännöityyn moninpeliin.
Offline
Selaimessa tallennukset vaativat verkkoyhteyden, eikä offline-jonoa ole: jatka pelaamista epäonnistumisen jälkeen ja yritä uudelleen seuraavassa tarkistuspisteessä. Laitedataa tukevat isännät, kuten offline-tilaa tukevat PlayDrop-sovellukset, säilyttävät tallennukset laitteella ja synkronoivat ne, kun yhteys on käytettävissä.
Mitä tallennukset eivät ole
Tallennukset ovat yksityisiä yhdelle pelaajalle ja yhdelle pelille. Ne ovat erillään tulostauluista ja saavutuksista, joilla on omat rajapintansa ja jotka näkyvät PlayDropissa. Pelaajien välillä jaettu tila, kuten ottelu tai maailma, kuuluu pelipalvelimelle pelisi MongoDB-kokoelmiin.
Testaa
Tallennukset kuuluvat palveluun ladattuun peliin. Lataa yksityinen versio vähintään kerran ja testaa sitten kuittauksen url-osoitteesta tai paikallisesta Dev-kehyksestä, joka kuvataan sivulla julkaiseminen tekoälysovelluksesta.