Wie versprochen jetzt ein kleiner Einblick in die Entwicklung! Wenn Euch so etwas interessiert, können wir das gerne öfter bringen.

---

So gut wie jedes Spiel mit einer begehbaren Umgebung muss sich die Frage stellen, wie eigentlich die Räumlichkeiten gespeichert werden. Dungeon Sounds hat im Grunde 2 Bedingungen gehabt:

  1. Es muss schnell programmiert sein, da für das Spiel zu Beginn nur ein Monat Zeit war
  2. Es muss leicht änderbar sein, da das spiel schnell fertig sein muss


Die Möglichkeit einen Leveleditor zu programmieren fiel aufgrund der ersten Bedingung direkt flach. Alternativ hätten wir die Map natürlich direkt in den Code reinhauen können, das hätte die Karte aber schwierig zu editieren gemacht. Da unser Design teilweise täglich geändert wurde und wir nicht von Anfang an sagen konnten, wie die Spielwelt auszusehen hat, war das ebenso keine Möglichkeit für uns. Da die Welt an sich Tilebasiert ist ( nicht allerdings die Bewegung! ) haben wir daher einfach auf einen altbewährten Leveleditor zurückgegriffen, der es uns einfach gemacht hat einfach jedes Feld anders zu kodieren: Paint!

Die Spielwelt ist auf einer kleinen, gepixelten Textur beschrieben. Hier ein kleines Beispiel wie diese aussehen kann:


(Beispielhaft: Um das Spiel nicht zu verraten ist diese Karte nur zu Anschauungszwecken entstanden!)

Jede Farbe ist hierzu im Spiel anders kodiert: Die unterschiedlichen Grautöne stellen verschiedene Bodentypen da, die bunten Umrandungen beschreiben die Wände. Da die Karte bei jedem Spielstart geladen wird, sind schnelle Änderungen im Handumdrehen getan!


(Ansicht der Spielwelt aus der ferne im Spiel selbst: Die Tilestruktur ist klar zu erkennen! Es handelt sich nicht um die Welt die oben in der Textur zu sehen ist!)

Das reicht, um die Spielwelt halbwegs grob zu beschreiben. Allerdings wollten wir noch zusätzliche Objekte, wie zum Beispiel Vasen und Säulen, hinzufügen. Da auf der Karte jedes Feld durch eine Pixelfarbe definiert wird, können nur schwer weitere Elemente hinzugefügt werden. Es bleib uns also nichts anderes übrig, als weitere Objekte bei Spielstart mittels eines Skriptes zu erzeugen:


Code:
addObject( "TOPF", ( 231, 243), 3, 1, -1 );
addObject( "TOPF", ( 234, 243), 1, 1, -1 );

addObject( "SAULE", ( 231, 244), 1, 1, -1 );
addObject( "SAULE", ( 234, 244), 1, 1, -1 );
Die Skriptsprache, die zum einsatz kommt, schimpft sich übrigens KyaraScript und findet auch bei Zirkonia und Buntoki verwendung. Objekte werden hier einfach durch ihren Namen, die Position und ein paar weitere Parameter erzeugt.

Für die erste Version des Spieles reichte das. Nun ist uns aber aufgefallen: Die Spielwelt ist nach wie vor etwas leer, wir würden gerne noch mehr Elemente hinzufügen! Als erstes kam uns der Gedanke, Pflanzen an die Decke zu pappen. Hier war aber das Problem: Die ganzen einzelnen Ranken und Äste per Skript hinzuzufügen ist zu viel Arbeit! Alternativ hätten diese zufällig erzeugt werden können - Uns fiel aber auf, dass wir die Kontrolle darüber, wo in der Spielwelt Objekte plaziert werden, nicht abgeben wollten. Also erweiterten wir die Pixelkarte um eine weitere Ebene!


Links ist die zusätzliche Karte für die platzierten Pflanzen: Pro Feld wird durch die Farbintensität bestimmt, wie stark der Pflanzenwuchs auf dem Feld ist! So sind saubere Übergänge zwischen den Feldern möglich und die Vegetation kann gezielt für Effekte platziert werden.
Diese zusätzliche Karte ist ebenso im Spielordner und wird bei Spielstart geladen. Das ist in der Tat keine schöne Lösung mehr, aber das war die beste Idee ohne das Mapsystem nochmal neu zu schreiben.

Im Spiel sehen die Ranken dann zum Beispiel so aus: