Ich entwickle mit einigen Uni-Freunden einen 2D-Plattformer. Wir haben es auf dem XNA Platformer Starter Kit basiert, das TXT-Dateien zum Speichern der Kachelzuordnung verwendet. Dies ist zwar einfach, bietet uns jedoch nicht genügend Kontrolle und Flexibilität beim Level-Design. Einige Beispiele: Für mehrere Ebenen von Inhalten sind mehrere Dateien erforderlich, jedes Objekt ist im Raster fixiert, erlaubt keine Drehung von Objekten, eine begrenzte Anzahl von Zeichen usw. Daher mache ich einige Untersuchungen zum Speichern der Ebenendaten und Kartendatei.
Dies betrifft nur den Dateisystemspeicher der Kachelkarten, nicht die Datenstruktur, die das Spiel während der Ausführung verwenden soll. Die Kachelkarte wird in ein 2D-Array geladen. In dieser Frage geht es darum, von welcher Quelle das Array ausgefüllt werden soll.
Begründung für DB: Aus meiner Sicht sehe ich weniger Redundanz bei der Verwendung einer Datenbank zum Speichern der Kacheldaten. Fliesen in derselben x, y-Position mit denselben Eigenschaften können von Ebene zu Ebene wiederverwendet werden. Es scheint einfach genug zu sein, eine Methode zu schreiben, um alle in einer bestimmten Ebene verwendeten Kacheln aus der Datenbank abzurufen.
Begründung für JSON / XML: Visuell bearbeitbare Dateien, Änderungen können über SVN viel einfacher nachverfolgt werden. Aber es gibt wiederholte Inhalte.
Haben beide Nachteile (Ladezeiten, Zugriffszeiten, Speicher usw.) im Vergleich zu den anderen? Und was wird in der Industrie häufig verwendet?
Derzeit sieht die Datei so aus:
....................
....................
....................
....................
....................
....................
....................
.........GGG........
.........###........
....................
....GGG.......GGG...
....###.......###...
....................
.1................X.
####################
1 - Startpunkt des Spielers, X - Level Exit,. - Leerer Raum, # - Plattform, G - Edelstein