Ich muss einige benutzerdefinierte Spieldaten speichern. Karte, Spieler usw.
Alle von ihnen haben "Unterobjekte". Beispielsweise haben eine Karte und eine Karte ein "Array" von Kacheln. dh hierarchische Daten. Hoffentlich nichts Binäres.
Was wäre ein gutes Format für diese?
Bisher habe ich überlegt:
Serailization: Dies ist SCHNELL und einfach, neigt aber dazu, zu brechen, wenn ich die zugrunde liegenden Klassen ändere :(
XML: Ich hasse es wirklich, das zu analysieren. Mein Testfall bestand aus mehr als 100 Codezeilen und schien selbst für ein sehr einfaches Format eine Menge "geschäftiger Arbeit" zu sein.
INI: wäre für hierarchische Daten wirklich ungeschickt.
Protobuf: Ich habe es nie benutzt, aber ich habe gelesen, dass man viel manuell herumspielen und pausieren muss, wenn man die Klasse wechselt.
Andere Optionen? Darum bin ich hier!
Edit: Das ist übrigens Java.
Bearbeiten 2:
Ich habe mich für "Controlled Binary Serialization" entschieden (siehe unten).
Vorteile:
Es ist schnell
Es ist klein (auf der Festplatte) und kann während des Lese- / Schreibvorgangs leicht komprimiert / dekomprimiert werden.
Es ist super einfach, von Spiel und Toolset aus zu lesen / schreiben.
Ich kann entscheiden, was von dem Objekt eingeschlossen / ausgeschlossen werden soll.
Objekte / Daten können verschachtelt werden.
Nachteile:
Kann nicht manuell bearbeitet werden (wie XML, YAML usw.)
Kann nicht einfach mit Skripten gelesen / geändert werden
Standardmäßig ist die Java-Serialisierung im Vergleich zu anderen Implementierungen ziemlich langsam / aufgebläht, aber sie ist stabil und funktioniert