XML vs INI für Spieldaten
-
Ich arbeite schon eine weile mit INI Dateien um einfache Daten für meien Anwendungen zu speichern. Jetzt habe ich eben einen kleinen Artikel über die Nutzung von XML für den selben Zweck gelesen. Mich würde mal interessieren ob jemand von euch schonmal damit gearbeitet hat und ob XML für Spieleübliche Daten einen Vorteil gegenüber INI Dateien bringt?
-
Die Frage beantwortet sich irgendwie von selbst, da die Vorteile und Nachteile von XML gegenüber anderen Datenformaten ja eigentlich hinlänglich bekannte sein sollten.
+ XML kann gut Baum-Strukturen abbilden
+ XML kann man schön verifizieren
- XML is schwerer zu parsen als .ini Files
...
-
xml is auch aus redundant, was gut und schlecht sein kann. gut ist es, wenn du z.b. versions unabhaengig werte findest und die nicht vorhandenen mit default initialisierst, schlecht ist es weil es unglaublich aufgebleht wird.
was du nutzt musst du fuer dich entscheiden, wenn dir INI voll ausreicht, bleb dabei. dann brauchst du vermutlich keine externe riesen lib zu nehmen um ein paar werte einzulesen.
manchen ist xml auch nicht genug, die nutzen dann z.b. lua als format fuer savedaten. darin kann man dann zur not auch gleich funktionsaufrufe, berechnungen usw. einbauen.
ist halt sehr individuel was man bevorzugt
-
XML ist doch eigentlich nur ein Datenaustauschformat. D.h. ich möchte Daten von Maschine A nach Maschine B übertragen und z.B. bei unterschiedlicher Architektur und OS ermöglichen, das Maschine B anhand der XML-Matadaten (z.B. Encoding) garantiert diese daten importieren kann. In solchen Fällen ist der Overhead von XML vertretbar. Wenn ich aber Spieldaten habe, die den PC nie verlassen und auch nicht mit anderen Spielen gelesen werden müssen, würde ich auf XML verzichten und ein natives Format wählen.
Inis sind schön schlank und schnell. Wenn ich was leistungsfähiges haben will, weil ini nicht ausreicht, würde ich eher zu AngelScript oder Lua greifen.
-
Artchi schrieb:
XML ist doch eigentlich nur ein Datenaustauschformat. D.h. ich möchte Daten von Maschine A nach Maschine B übertragen
oder von Version A zu version B. was gerade waehrend der entwicklung sehr wichtig ist.
-
Danke für die kurze Übersicht, mir war das Format nicht bekannt muß ich sagen, hab es nur durch Zufall mal mitbekomen das einige Spiele in dem Format speichern.
-
wuerde definitiv XML nehmen, sofern jedes file nicht grade groesser als etwa 1 MB wird (also z.b. mesh-formate jetzt nicht unbedingt als XML abspeichern).
was auch nicht zu vernachlaessigen ist: sollte man im laufe der enticklung merken dass man von XML auf binaer umsteigen sollte, dann gibt es einige libraries und formatspezifikationen die die verlustfreie konvertierung von XML zu binaer (und vice versa) ermoeglichen.