Oneshot Gems
Jetzt spielen

Für Spieleentwickler

Migrieren Sie bewusst alte Speicherformen

Beim Save-State-Test wird abgefragt, ob die beabsichtigten Werte bestehen bleiben. Die Versionierung beantwortet eine andere Frage: Was soll passieren, wenn ein späterer Spiel-Build Daten liest, die von einem älteren Build geschrieben wurden? Wenn Version eins eine beste Punktzahl als Zahl und Version zwei ein Profilobjekt speichert, kann das Lesen der alten Form, als ob sie neu wäre, das Menü beschädigen oder den Fortschritt stillschweigend verwerfen. Legen Sie eine Version neben den gespeicherten Daten ab und schreiben Sie eine explizite Migration für bekannte frühere Formen.

Auf dieser Seite

Werte in einem kleinen versionierten Datenobjekt speichern

Anstatt eine bloße Punktzahl wie 240 zu speichern, speichern Sie ein JSON-Objekt wie { version: 2, bestScore: 240, settings: { sound: true } }. Analysieren Sie beim Laden den Text, überprüfen Sie, ob es sich um ein Objekt handelt, und überprüfen Sie seine Version, bevor Sie Felder verwenden. JSON.parse kann einen SyntaxError für ungültiges JSON auslösen. Behandeln Sie daher fehlerhaften Text mit einem definierten Fallback, anstatt zuzulassen, dass der Start stoppt, bevor der Player beginnen kann.

Halten Sie das Datenobjekt kompakt und dokumentieren Sie die Bedeutung jeder Version. Betrachten Sie die Versionsnummer nicht als ausreichende Validierung: Ein als Version 2 markierter Wert kann unvollständig sein oder den falschen Typ haben. Prüfen Sie die Felder, auf die der aktuelle Build tatsächlich angewiesen ist, etwa bestScore als endliche, nicht negative Zahl und die Sound-Einstellung als booleschen Wert.

Für jedes unterstützte alte Format eine Migration schreiben

Eine Migration von Version 1 kann die alte Zahl in das neue Datenobjekt umwandeln, eine Standardeinstellung ergänzen und das Format von Version 2 speichern. Unterstützen Sie mehrere historische Versionen, führen Sie die Migrationen nacheinander aus: von Version 1 auf 2 und anschließend von 2 auf 3. Testen Sie jeden Testfall einzeln, darunter einen fehlenden Schlüssel, fehlerhaftes JSON, eine unbekannte zukünftige Version und einen teilweise geschriebenen Wert. Entscheiden Sie, ob unbekannte Daten erhalten, ignoriert oder zurückgesetzt werden, und zeigen Sie bei Bedarf eine Wiederherstellungsmeldung an.

Grenzen des Browser-Speichers berücksichtigen

MDN beschreibt localStorage als ursprungsgebundene Daten, die über Browser-Sitzungen hinweg bestehen bleiben können. Verfügbarkeit und Inhalt sind jedoch keine garantierte Kontosicherung. Speichern Sie dort weder Geheimnisse noch Entscheidungen, auf die man sich verlassen muss. Kann ein Spiel einen Spielstand nicht lesen, ermöglichen Sie einen definierten Neustart und vermeiden Sie, dieselbe fehlgeschlagene Migration bei jedem Start erneut zu versuchen.

Fragen zu ⁨Versionierung der Spieldaten von localStorage⁩

Sollte ich alle Speicherungen löschen, wenn sich das Format ändert?

Nur wenn das eine explizite Produktentscheidung ist. Wenn wichtige Werte sicher zugeordnet werden können, können sie durch eine kleine getestete Migration erhalten bleiben. Andernfalls definieren Sie einen eindeutigen Fallback und erläutern Sie den Reset.

Macht ein Versionsfeld localStorage-Daten zuverlässig?

Nein. Es identifiziert die erwartete Form, sodass das Spiel sie migrieren oder ablehnen kann. Daten können immer noch fehlen, fehlerhaft, veraltet oder nicht verfügbar sein. Überprüfen Sie sie daher vor der Verwendung.

Weiterlesen

Etwas nicht mehr aktuell? Korrektur melden

Spiel weiter.

Kostenlose Browserspiele, jederzeit bereit. Entdecke etwas, das dir Spaß macht, und finde dein nächstes Lieblingsspiel.

Folge deiner Neugier