Spielstände speichern und laden

Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
[gesichtete Version][gesichtete Version]
(CSV: Vorteile hinzugefügt)
(Korrekturen, Nachteile von XML, Verschlüsselung & Prüfsumme)
Zeile 46: Zeile 46:
 
== Das Dateiformat des Spielstandes ==
 
== Das Dateiformat des Spielstandes ==
  
Worüber man sich auf jedenfall auch Gedanken machen muss, ist,  welches Dateiformat man verwenden will. Ein Aspekt dabei stellt die Manipulierbarkeit. Eine Manipulation stellt in dem Zusammenhang eine vom Entwickler ungewollte Veränderung der Spielstände dar. Es gibt grundsätzlich keinen Schutz, der mit Sicherheit vor Manipulation schützt, aber durch die Wahl des richtigen Formats kann die Zeit verzögert werden, bis bekannt ist, wie die Spielstände aufgebaut sind und diese somit editiert werden können.
+
Worüber man sich auf jedenfall auch Gedanken machen muss, ist,  welches Dateiformat man verwenden will. Einen Aspekt dabei stellt die Manipulierbarkeit dar. Eine Manipulation bedeutet in dem Zusammenhang eine vom Entwickler ungewollte Veränderung der Spielstände. Es gibt grundsätzlich keinen Schutz, der mit einhundertprozentiger Sicherheit vor Manipulation schützt, aber durch die Wahl des richtigen Formats kann die Zeit verzögert werden, bis bekannt ist, wie die Spielstände aufgebaut sind und diese somit editiert werden können.
  
Eine Möglichkeit zum Schutz vor Manipulation stellt in der Regel das Verwenden einer Dateiendung, die nicht direkt auf den Dateityp schließen lässt, wie <code>.sav</code>. Bei textuellen Formaten dürfte dies kaum helfen, da der erste Versuch bei einer Manipulation in der Regel mit einem normalen Texteditor durchgeführt wird. Binäre Formate könnten sich beim Öffnen durch ihre [http://de.wikipedia.org/wiki/Magische_Zahl_(Informatik) magische Zahl] entlarven, sofern bei dem Dateityp eine solche verwendet wird.
+
Eine Möglichkeit zum Schutz vor Manipulation stellt in der Regel das Verwenden einer Dateiendung, die nicht direkt auf den Dateityp schließen lässt, wie <tt>.sav</tt>. Bei textuellen Formaten dürfte dies kaum helfen, da der erste Versuch bei einer Manipulation in der Regel mit einem normalen Texteditor durchgeführt wird. Binäre Formate könnten sich beim Öffnen durch ihre [http://de.wikipedia.org/wiki/Magische_Zahl_(Informatik) magische Zahl] entlarven, sofern bei dem Dateityp eine solche verwendet wird.
 +
 
 +
Generell ist es natürlich immer möglich, die Spielstandsdaten zu verschlüsseln und/oder mit einer [http://de.wikipedia.org/wiki/Prüfsumme Prüfsumme] zu versehen. Das Entschlüsselungs-/Prüfsummenverfahren bzw. der Schlüssel müssen jedoch irgendwo im Programm gespeichert werden. Verschlüsselung und Prüfsumme vergrößern in jedem Fall den Aufwand, den ein Angreifer treiben muss, um Spielstände manipulieren zu können.
  
 
=== XML ===
 
=== XML ===
  
Bei der [http://de.wikipedia.org/wiki/Extensible_Markup_Language Extensible Markup Language] handelt es sich um eine standardisierte und weit verbreitete Auszeichnungssprache. Sie besteht aus Elementen, die durch Tags gekennzeichnet werden, Attribute, Text und weitere elemente enthalten können. Mit Hilfe einer [http://de.wikipedia.org/wiki/Schemasprache Schemasprachen] wie [http://de.wikipedia.org/wiki/XML_Schema XML Schema], welches ebenfalls in Form einer XML Datei vorliegt, kann überprüft werden, ob eine XML-Datei den korrekten Aufbau besitzt und somit valide ist.
+
Bei der [http://de.wikipedia.org/wiki/Extensible_Markup_Language Extensible Markup Language] handelt es sich um eine standardisierte und weit verbreitete Auszeichnungssprache. Sie besteht aus Elementen, die durch Tags gekennzeichnet werden, Attribute, Text und weitere Elemente enthalten können. Mit Hilfe einer [http://de.wikipedia.org/wiki/Schemasprache Schemasprache] wie [http://de.wikipedia.org/wiki/XML_Schema XML Schema], welches ebenfalls in Form einer XML-Datei vorliegt, kann überprüft werden, ob eine XML-Datei den korrekten Aufbau besitzt und somit valide ist.
  
 
==== Datenstruktur ====
 
==== Datenstruktur ====
  
Dadurch, dass eine XML-Datei aus einem Root-Element besteht und jedes Element beliebig viele weitere Elemente enthalten kann, sind die Daten in einer XML-Datei hirarchisch angeordnet. <code>m zu n</code>-Beziehungen lassen sich somit nicht direkt einbetten, sondern nur über die Verwendung speziellen Werten, die entsprechende Elemente identifizieren. Es gibt aber keine automatische Prüfung, ob ein referenziertes Element tatsächlich vorhanden ist.
+
Dadurch, dass eine XML-Datei aus einem Root-Element besteht und jedes Element beliebig viele weitere Elemente enthalten kann, sind die Daten in einer XML-Datei hirarchisch angeordnet. ''m:n''-Beziehungen lassen sich somit nicht direkt einbetten, sondern nur über die Verwendung speziellen Werten, die entsprechende Elemente identifizieren. Es gibt aber keine automatische Prüfung, ob ein referenziertes Element tatsächlich vorhanden ist.
  
 
==== Manipulierbarkeit ====
 
==== Manipulierbarkeit ====
Zeile 64: Zeile 66:
 
==== Vorteile ====
 
==== Vorteile ====
  
Der größte Vorteil von XML ist dessen weite Verbreitung. Diese hat zur Folge, dass es bereits viele Programme zum Bearbeiten von XML-Dateien und Bibliotheken zum arbeiten mit XML-Dateien gibt. Zudem unterstützen viele Editoren auch das Überprüfen der XML-Dateien anhand einer Schemadatei. Dadurch ist sowohl das Arbeiten mit XML-Dateien für die Spieleentwickler, als auch das nachträgliche Editieren durch die Benutzer einfach und das mit dem richtigen Programm auch ohne große Kenntnisse über dieses Datenformat.
+
Der größte Vorteil von XML ist dessen weite Verbreitung. Diese hat zur Folge, dass es bereits viele Programme zum Bearbeiten von XML-Dateien und Bibliotheken zum Arbeiten mit XML-Dateien gibt. Zudem unterstützen viele Editoren auch das Überprüfen der XML-Dateien anhand einer Schemadatei. Dadurch ist sowohl das Arbeiten mit XML-Dateien für die Spieleentwickler, als auch das nachträgliche Editieren durch die Benutzer einfach möglich, und das mit dem richtigen Programm auch ohne große Kenntnisse über dieses Datenformat.
  
 
XML-Dateien eignen sich besonders gut, wenn dessen Inhalt später nicht nur von dem Spiel selbst bearbeitet werden soll.
 
XML-Dateien eignen sich besonders gut, wenn dessen Inhalt später nicht nur von dem Spiel selbst bearbeitet werden soll.
 +
 +
==== Nachteile ====
 +
 +
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.
  
 
=== YAML ===
 
=== YAML ===
Zeile 74: Zeile 80:
 
==== Datenstruktur ====
 
==== Datenstruktur ====
  
YAML verwendet Skalare (Einzelwerte), Listen und assoziative Listen als Datenstrukturen. Diese können hirarchisch angeordnet werdne. <code>m zu n</code>-Beziehungen lassen sich nicht direkt, sondern nur über Verwendung von bestimmten Werten zur Identifizierung anderer Daten realisieren. Es gibt allerdings keine automatische Prüfung, ob referenzierte Daten tatsächlich vorhanden sind.
+
YAML verwendet Skalare (Einzelwerte), Listen und assoziative Listen als Datenstrukturen. Diese können hirarchisch angeordnet werdne. ''m:n''-Beziehungen lassen sich nicht direkt, sondern nur über Verwendung von bestimmten Werten zur Identifizierung anderer Daten realisieren. Es gibt allerdings keine automatische Prüfung, ob referenzierte Daten tatsächlich vorhanden sind.
  
 
==== Manipulierbarkeit ====
 
==== Manipulierbarkeit ====
Zeile 106: Zeile 112:
 
==== Manipulierbarkeit ====
 
==== Manipulierbarkeit ====
  
Da eigene binäre Formate nicht verbreitet sind, stellen diese grundsätzlich den besten Schutz gegen Manipulationen dar. Allerdings sollte man sich vor Augen halten, dass auch dieses Format analysiert werden kann und dadurch der Schutz nach einer gewissen Zeitn icht mehr zwingend gegeben ist.
+
Da eigene binäre Formate nicht verbreitet sind, stellen diese grundsätzlich den besten Schutz gegen Manipulationen dar. Allerdings sollte man sich vor Augen halten, dass auch dieses Format analysiert werden kann und dadurch der Schutz nach einer gewissen Zeit nicht mehr zwingend gegeben ist.
  
 
== Quellen zum Durchlesen ==
 
== Quellen zum Durchlesen ==

Version vom 4. Dezember 2011, 11:11 Uhr

Klicke hier, um diese Version anzusehen.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge