Ich habe gerade einen Großteil meiner Spielelogik implementiert, erstelle aber trotzdem meine Karten mit fiesen For-Loops im laufenden Betrieb, um mit etwas arbeiten zu können. Jetzt wollte ich weitermachen und nachforschen, wie diese Daten (un) serialisiert werden können. (Ich suche keinen Karteneditor - ich spreche von der Kartendatei selbst)
Im Moment suche ich nach Vorschlägen und Ressourcen, wie ich ein benutzerdefiniertes Dateiformat für meine Karten implementieren kann, das die folgenden Funktionen (basierend auf der MoSCoW-Methode) bieten soll:
- Haben müssen
- Erweiterbarkeit und Abwärtskompatibilität
- Handhabung verschiedener Schichten
- Metadaten darüber, ob eine Kachel fest ist oder durchlaufen werden kann
- Spezielle Serialisierung von Entitäten / Triggern mit zugehörigen Eigenschaften / Metadaten
- Könnte haben
- Eine Art Einbeziehung des Kachelsatzes, um zu verhindern, dass Dateien / Kachelsätze verstreut sind
Ich entwickle mit C ++ (mit SDL) und ziele nur auf Windows ab. Jede nützliche Hilfe, Tipps, Vorschläge, ... wäre dankbar!
Ergebnis der folgenden Diskussion
Ich habe in den letzten Stunden mein Kartendateiformat entworfen und mir ein Skelett ausgedacht (enthält vorerst nur Ebenen - den Rest überlasse ich jedem, der sein eigenes Format entwirft), das ich allen Interessierten mitteilen wollte - wenn Sie haben die gleichen Absichten, wie Sie sich inspirieren lassen können. Der Screenshot in voller Größe kann bei Imgur heruntergeladen werden .
quelle
Antworten:
Persönlich bin ich eher ein Fan von Binärformaten mit Abschnitten (wie Windows PE, nur viel einfacher). Sie sind auch einfacher zu analysieren (aber das ist nur meine Meinung ... Ich habe genug mit XML gearbeitet, um mir Kopfschmerzen zu bereiten und zu überprüfen, ob getElementByName einen einzelnen Wert oder eine Liste von Werten zurückgegeben hat ... ugh). Wenn ich du wäre, würde ich es so machen:
,
Vorteile:
Nachteile:
Aber das Beste an diesem Ansatz ist meiner Meinung nach, dass Sie alles selbst machen können. Viele Versuche und Irrtümer, aber am Ende lernen Sie viel.
quelle
Sie können das vom gekachelten Editor verwendete TMX-Kartenformat (sowie mehrere andere Karteneditoren) verwenden.
Auch wenn Sie Tiled nicht selbst verwenden, unterstützt das TMX-Format alle von Ihnen genannten Funktionen und verfügt über mehrere vorhandene Loader / Parser für eine Vielzahl von Sprachen. Es ist auch sehr einfach, das Format zu verstehen und es für Ihr eigenes Spiel zu erweitern.
quelle