Level Design

Das Level Design von Chaos Projectile orientiert sich stark an hochgelobten Klassikern der Videospielgeschichte wie etwa die Metroid-Serie von Nintendo. Anders wie bei den 2D-Abenteuern von Samus Aran scrollt der Bildschirm bei Chaos Projectile jedoch permanent mit und somit ist die Hauptfigur stehts im Mittelpunkt des Bildausschnitts.

WIP_Screenshot2

Der Python-Programmcode stellt das Level zwar dar und errechnet beispielsweise die Kollision der Spielfigur mit den Plattformen. Da die Grafik bei Chaos Projectile Tile-basiert ist, nutzen wir zum Levelbau jedoch den externen Map Editor Tiled. Der Editor stellt alle Funktionen bereit die wir brauchen, um bequem am Leveldesign arbeiten zu können. So können wir beispielsweise Vorder- und Hintergründe auf unterschiedliche Ebenen platzieren, welche dann in einer .tmx-Datei gespeichert und vom Code als solche ausgelesen und entsprechend gerendert werden können. In der .tmx-Datei, welche auf gitHub zu finden ist, gibt es folgende 5 Ebenen:

    characters
    decoration front
    decoration behind
    walls
    bg

Wie die Benennung schon andeutet, werden auf den Ebenen decoration front, decoration behind und bg Grafiken angezeigt die vor bzw. nach der Spielfigur gerendert werden. Eine Kollisionsabfrage mit der Spielfigur findet auf diesen Ebenen nicht statt. Auf die Ebene walls werden alle Plattform-Tiles abgelegt, mit der die Figur kollidieren kann, also Plattformen, Wände und Decken. Um Rechenkraft zu sparen werden beispielsweise Plattform-Tiles mit denen die Figur gar nicht kollidieren kann, auf die Ebene decoration behind gelegt. Die Ebene characters beinhaltet anderen Elemente (Gegner, Items, Portale und die Spielfigur). Sie dient lediglich dazu die Position der Elemente beim Laden des Levels festzulegen und wird im Editor auf unsichtbar geschaltet.

Die Spritesheets z.B. der Plattform-Tiles werden größer angelegt als vorerst nötig. So ist es uns möglich, im nachhinein Tiles in die Spritesheet-Datei einzufügen, ohne dass der Editor mit den einzelnen Kacheln durcheinander gerät.

Manche Spritesheets weisen zudem im Editor sog. ‚Kacheleingenschaften‘  auf. Diese Kacheleigenschaften können im Programmcode ausgelesen und interpretiert werden. So ist es möglich, den Wert der Hauptfigur-Kacheleigenschaft max_hp direkt im Editor zu ändern, um dadurch die maximalen HP zu beinflussen ohne auf den Programmcode zugreifen zu müssen. Dies erleichtert das Balancing ungemein, da so beispielweise auch Sprungkraft der Hauptfigur intuitiv angepasst werden kann.

Tiled_kacheleigenschaften

Alle Interessierten sind eingeladen, sich den Programmcode selbst herunterzuladen bzw. mit dem Leveleditor herumzuexperimentieren um ihre eigenen Level zu erstellen!

Werbeanzeigen

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s