Jump to content
Unity Insider Forum

Bevorzugtes Dateiformat für Level Editoren


Garzec

Recommended Posts

Hallo,

ich möchte eine Karte (Grid) anhand einer auszulesenden Datei generieren. Dabei hat das Grid m * n Zellen (Reihen und Spalten). Auf diesen Zellen können sich zu Beginn bereits Objekte befinden. Ich möchte mir die Level in externen Dateien abspeichern, möchte man also ein neues Level designen, so legt man einfach eine neue Datei an.

Aktuell (ich weiß noch nicht, ob es mehr werden) muss ich mir 3 Informationen abspeichern

  • Die ID des Zelltypen (Gras, Wasser, Wald, ...)
  • Die ID des Objektes auf der Zelle, oder null, falls kein Objekt auf dem Feld ist
  • Die Rotation dieses Objektes, falls eins drauf ist

Ich dachte an JSON, aber ein Feld mit 4 Zellen, also 2x2 würde bereits so aussehen

[
  [
    {
      "cellId": 0,
      "cellObject": {
        "id": 1,
        "rotationId": 1
      }
    },
    {
      "cellId": 0,
      "cellObject": null
    }
  ],
  [
    {
      "cellId": 1,
      "cellObject": null
    },
    {
      "cellId": 0,
      "cellObject": {
        "id": 3,
        "rotationId": 4
      }
    }
  ]
]

Bei normalen Karten mit 20x20 gäbe es also einen enormen Schreibaufwand. Dafür hat man bei JSON natürlich den Vorteil, einfach zu parsen. Ich habe IDs gewählt, damit ich innerhalb des Codes über Dictionaries mit den IDs die richtigen Objekte raussuchen kann.

Gibt es Dateiformate, die sich für so etwas besser eignen bzw. den Schreibaufwand verkürzen und dadurch nicht unlesbar werden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nennenswert weniger Schreibaufwand wird nicht gehen, aber dafür gibt es ja Level-Editoren.

Wenn du etwas mit Tiles machst, könntest du zum Beispiel TileD verwenden - oder deinen Spielern als Editor in die Hand drücken. Wenn du sehr spezifische Anforderungen hast, aber die Komplexität nicht sehr hoch ist, kannst du auch dein Spiel um einen Ingame-Editor erweitern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...