Hur man spara spel

1
Published on 10 Aug, 2013. Last updated 25 Feb, 2019

Construct 2 ger ett enkelt sätt att spara spel. Dessa tillåter dina spelare för att spara spelet, sedan komma tillbaka senare och läsa in den precis där de slutade. Det är viktigt för långa spel, speciellt när de nivåer eller stadier är långa. Även om det är möjligt att ha en mycket enkel "sista nivån nått" typ spara med [WebStorage] [1], är det oftast mycket svårt att använda det sparar hela tillståndet för varenda objekt. [System objektet] [2] Spara och Load åtgärder enkelt tillåter dig att göra just detta, så att du enkelt kan lägga till sofistikerade spara spelet funktionalitet med mycket liten ansträngning.

Grundläggande sparat spel stöd

Ett enkelt sätt att lägga till sparade spel är bara använder systemet Spara och Load åtgärder när en viss knapp trycks in. Till exempel:

För mobila spel du måste förstås göra en touchable knapp någonstans istället, men att hålla det enkelt att vi ska fokusera på ett skrivbord spel.

Sparade spel lagras på disk av webbläsaren. Detta innebär att spelare kan stänga av sin dator eller enhet, kom tillbaka nästa dag, och sparat spel kan fortfarande lästs. Observera dock spara spel är förknippade med specifika webbläsare. Till exempel kommer Firefox och Chrome lagra sparade spel för sig, om en spelare sparar ett spel medan du använder Chrome, sedan växlar till Firefox, kommer de inte att kunna ladda det sparade spel.

Sparade spel inte sparas i cache-minnet. Webbläsarens cache är en mycket tillfällig lagring som används för att spara saker som bilder på webbsidor utan att behöva ladda ner dem varje gång, och det är regelbundet rensas. Sparade spel går inte det (lyckligtvis), lagras de i antingen WebStorage eller IndexedDB, som är permanenta förråd och påverkas inte av användaren rensa sin cache.

Spara slitsar

Det är ofta bra att tillåta spelare att ha flera sparade spel. Detta är vad save slot tillåter. Varje slot är som en separat fil som lagrar en annan räddning. Du kan erbjuda spelaren en uppsättning av ankomst-och avgångstider för att spara till, eller låta dem skriva in sina egna spara spelnamn.

Observera att de flesta webbläsare har en gräns för hur mycket data som en webbsida kan spara till disk.Det är osannolikt att vara ett problem för de flesta spel, men om du har ett stort antal separata save slots du kan träffa lagringsutrymmet. Erbjuder ett begränsat antal save slots är ett bra sätt att se till att du aldrig når gränsen. Lämplig användning av Nej Spara beteende kan också bidra till att göra sparade spel mindre (se nedan).

Färdig triggers

Sparande kan ta en stund att slutföra, och spelet fortsätter att gå under tiden. När sparandet har slutförts, det System trigga på spara kompletta triggers. Likaså lastning kan ta en stund att slutföra, och utlöser On last komplett när du är klar. Notera eventuella ändringar som gjorts efter den Spara handling, men innan On spara komplett triggers, kan fortfarande räddas.

Om du försöker ladda från en plats som inte har sparats ännu, misslyckades On last utlöser. Om användaren väljer en save slot att ladda, kanske du bara vill starta ett nytt färskt spel i denna händelse.

'Nej Spara' beteende

Allt med [No Spara uppförande] [4] kommer inte att sparas, och kommer inte att påverkas vid lastning. Det är god praxis att lägga till Nej Spara beteende till några statiska objekt, till exempel landskap och bakgrunder. Den kan också användas på automatiskt uppdaterade objekt som HUD och textobjekt som uppdateras varje fästing. Detta kommer inte att göra någon skillnad på spelet, men det gör spara spel mindre och snabbare att spara och ladda, eftersom onödig information har utelämnats. (Det är också nödvändigt att göra [kontinuerlig förhandsvisning] [5] arbeta effektivt.)

Ändra projektet efter att ha sparat

Spara spel bör vara robust mot förändringar i ditt projekt. Du ska kunna lägga till, ta bort och ordna olika saker som variabler, beteenden och andra föremål, och fortfarande har gamla sparade spel laddar framgångsrikt. Observera dock något nytt du lägger inte kommer att ha spara data för det, så kommer inte att påverkas vid lastning. Notera även om du tar bort något från projektet kommer inte att kunna ladda igen heller. Du kan radera enskilda fall utan att påverka sparade spel, men om du tar bort hela objekttyper, layouter eller lager, kommer de aldrig laddas tillbaka från ett sparat spel.

avancerade ämnen

Allt täckt hittills är nog för de flesta spel att enkelt lägga ett sparat spel funktion. Men avancerade användare kan vara intresserad av följande ämnen som går in på mer ingående om save spelsystem.

Vad är och sparas inte

Den fullständiga tillståndet i spelet - däribland instansvariabler, globala och lokala variabler, egenskaper beteende, effekter, partiklar, som spelas ljud etc. - sparas. Men det finns några undantag, förhoppningsvis av vilka ingen är förvånande. Följande saker är inte sparats och kommer inte att påverkas vid laddning:

- Input tillstånd (i.e. muspositionen, eller om spelaren höll nycklar eller berör)

- AJAX förfrågningar

- WebSocket anslutningar

- Den XML-objekt

- Användare Media video eller ljud feeds

- Facebook inloggning

- WebStorage tillstånd

- CocoonJS/Windows 8 stat

- Eventuella in-app inköp på alla plattformar

- Allt med 'No Spara beteende

Använda JSON data direkt

I både On spara komplett och på belastning komplett triggers, systemet SaveState JSON uttrycket returnerar en sträng med alla JSON data för sparat spel. Notera Spara Stat JSON uttryck återkommer en tom sträng utanför dessa triggers, triggers är din enda möjlighet att få tillgång till uppgifterna.

Om du har en egen server, är det möjligt att göra delade sparade spel genom att publicera JSON data till servern med AJAX objektet och lagrar det i en server databas. Alternativt vissa plattformar som Windows 8 och Clay.io tillåter dig att lagra data för den inloggade användaren, där det är delad någonstans de loggar in. Detta är ett användbart för att låta användare ta sparade spel med dem vart de än går.

När du får JSON strängen tillbaka, kan du ladda spelet från den med Belastning från JSON systemåtgärd.

Versionshantering

Vanligtvis kommer du att kunna ändra ditt projekt och gamla spel kommer fortfarande laddar fint. Men vissa avancerade användare kanske vill spåra exakt vilken version av deras projekt ett sparat spel har kommit från. Du kan göra detta med hjälp av en global variabel. Ring variabeln Version och initiera den till 1. Senare, om du publicerar en ny version av ditt spel, ändra det ursprungliga värdet på variabeln till ett nytt nummer, t.ex. 2. Nu när On last komplett utlöser, har den globala variabeln lastats och in med det värde Version vid den tidpunkt då Spara åtgärder användes. Detta kan vara användbart om du lägger till massor av nya objekt till spelet, men vill se till att de är förstörda eller döljas vid lastning gamla sparade spel.

  • 0 Comments

Want to leave a comment? Login or Register an account!