Spielstände speichern und laden

Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
[unmarkierte Version][gesichtete Version]
(Das Dateiformat des Spielstandes)
 
(Eine dazwischenliegende Version von einem Benutzer wird nicht angezeigt)
Zeile 79: Zeile 79:
  
 
XML-Dateien enthalten im Allgemeinen viel Redundanz und Overhead und benötigen daher viel Speicherplatz. Daher ist es üblich, XML-Dateien zu komprimieren oder auf eine binäre Variante auszuweichen [http://de.wikipedia.org/wiki/Binary_XML]. Dadurch gehen die Vorteile von XML jedoch zu einem gewissen Grad wieder verloren.
 
XML-Dateien enthalten im Allgemeinen viel Redundanz und Overhead und benötigen daher viel Speicherplatz. Daher ist es üblich, XML-Dateien zu komprimieren oder auf eine binäre Variante auszuweichen [http://de.wikipedia.org/wiki/Binary_XML]. Dadurch gehen die Vorteile von XML jedoch zu einem gewissen Grad wieder verloren.
 +
 +
===XDS===
 +
XDS basiert auf XML, ist im Unterschied dazu allerdings binär und eignet sich so in für eine sicherere Speicherung von Spieldaten. Es ist für kleine Dateigrößen und schnelle Auslesezeiten optimiert und verbindet somit die Vorteile von XML mit denen von Binären Formaten. Genaueres dazu in Game Programming Gems 4.
  
 
=== YAML ===
 
=== YAML ===
Zeile 123: Zeile 126:
  
 
== Version des Spielstandes ==
 
== Version des Spielstandes ==
Im laufe der Zeit kommt es vor, dass ein Spiel abgeändert wird. Ein Update um die Grafik zu verbessern oder um einen Bug zu fixen oder aber eine Änderung der Lade- und Speicherfunktion für die Spielstandes. Dies kann bedeuten das mehr oder weniger Informationen in dem Spielstand gespeichert werden müssen. Für solche Fälle ist es angebracht in dem Spielstand eine Versionnummer zu speichern. Eine Versionsnummer kann verhindern das ältere Spielstände geladen werden und möglicherweise Probleme verusachen.
+
Im laufe der Zeit kommt es vor, dass ein Spiel abgeändert wird. Ein Update um die Grafik zu verbessern oder um einen Bug zu fixen oder aber eine Änderung der Lade- und Speicherfunktion für die Spielstände. Dies kann bedeuten das mehr oder weniger Informationen in dem Spielstand gespeichert werden müssen. Für solche Fälle ist es angebracht in dem Spielstand eine Versionnummer zu speichern. Eine Versionsnummer kann verhindern das ältere Spielstände geladen werden und möglicherweise Probleme verusachen.
  
 
Aus der Sicht des Spieler ist es natürlich frustrierend ein Spiel wieder neu anfangen zu müssen, weil der Spielstand nicht mehr geladen wird. Diesem Problem kann der Programmierer leicht entgegenwirken. Eine Möglichkeit ist es, die Versionsnummer des Spielstandes zu ermitteln und für jede Version eine Angepasste Laderoutine zu implementieren. Eine andere herangehensweis an das Problem kann sein, einen Spielstandkonverter zu schreiben und so den alten Spielstand der neuen Ladefunktion anzupassen.
 
Aus der Sicht des Spieler ist es natürlich frustrierend ein Spiel wieder neu anfangen zu müssen, weil der Spielstand nicht mehr geladen wird. Diesem Problem kann der Programmierer leicht entgegenwirken. Eine Möglichkeit ist es, die Versionsnummer des Spielstandes zu ermitteln und für jede Version eine Angepasste Laderoutine zu implementieren. Eine andere herangehensweis an das Problem kann sein, einen Spielstandkonverter zu schreiben und so den alten Spielstand der neuen Ladefunktion anzupassen.
 +
 
== Quellen zum Durchlesen ==
 
== Quellen zum Durchlesen ==
 
* http://www.spieleprogrammierer.de/18-c-cplusplus-csharp-delphi-java-python-und-lua/10381-laufzeitdaten-speichern-spielstände/
 
* http://www.spieleprogrammierer.de/18-c-cplusplus-csharp-delphi-java-python-und-lua/10381-laufzeitdaten-speichern-spielstände/
 
* http://www.ludism.org/gamedesign/SaveGamePatterns
 
* http://www.ludism.org/gamedesign/SaveGamePatterns
 
* http://csweb.ucc.ie/~dongen/cs2500/10-11/41/Notes.pdf
 
* http://csweb.ucc.ie/~dongen/cs2500/10-11/41/Notes.pdf

Aktuelle Version vom 11. September 2012, 18:19 Uhr

Klicke hier, um diese Version anzusehen.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge