Level-Design Konzepte¶
Diese Seite beschreibt die Konzepte hinter den Leveln und ihren interaktiven Objekten.
Grundidee¶
Ein Level besteht aus:
- Tile-Layern
- interaktiven Entities
- Level-Triggern
- optionalen visuellen Effekten
Die Bearbeitung erfolgt über den Level Editor.
Tile-Layer¶
Ein Level nutzt mehrere Layer, die in einer festen Reihenfolge gerendert werden. Typisch sind:
- Ground
- Walls
- Walkable / Furniture
- Decoration
Die genaue Anzahl ist offen; entscheidend ist, wie der jeweilige Layer konfiguriert ist und ob Tiles blockieren.
Rendermodi für Tile-Layer¶
Neben Sichtbarkeit und Blockierung besitzt ein Tile- oder Animated-Layer jetzt einen eigenen Rendermodus. Dadurch kann man gezielt steuern, ob ein Layer streng statisch bleibt oder sich zusammen mit Entities in die Tiefensortierung einfügt.
Es gibt drei Modi:
- Statisch: klassische Layerdarstellung ohne dynamische Tiefensortierung
- Dynamisch gruppiert: zusammenhängende belegte Tile-Bereiche werden als ein gemeinsames Vordergrundobjekt behandelt
- Dynamisch pro Kachel: jede belegte Kachel wird einzeln nach ihrer Unterkante sortiert
Die dynamischen Modi werden gemeinsam mit Spieler, NPCs, Begleitern und anderen Entities sortiert. Statische Layer bleiben davon getrennt und behalten ihre feste Position vor oder hinter diesem gemeinsamen Tiefenpass.
Bedingungen pro Layer¶
Layer können zusätzlich eine eigene Bedingung tragen. Dadurch lässt sich ihre Sichtbarkeit zur Laufzeit an Switches und Variablen koppeln.
Typische Einsatzfälle:
- Tag- und Nachtversionen desselben Raums
- sichtbar werdende Geheimgänge
- alternative Dekoration nach Questfortschritt
- Vordergrundteile, die erst später eingeblendet werden
Wichtig dabei:
- ist die Bedingung nicht erfüllt, wird der Layer nicht gerendert
- blockierende Layer ohne erfüllte Bedingung blockieren ebenfalls nicht
- im Editor bleibt der Layer trotzdem bearbeitbar
Gruppiert bedeutet nicht „ganze Layerfläche“¶
Beim gruppierten Modus wird nicht die komplette rechteckige Ausdehnung des Layers betrachtet, sondern nur die tatsächlichen belegten Bereiche.
Das bedeutet:
- leere Tiles haben keine Z-Wirkung
- zwei weit auseinanderliegende Baumkronen auf derselben Ebene bleiben zwei getrennte Gruppen
- ein Layer kann also gezielt nur die relevanten Vordergrund-Tiles enthalten, ohne dass der leere Raum dazwischen als unsichtbarer Block behandelt wird
Gerade für Bäume, Schränke, Torbögen oder Dachkanten ist das wichtig, weil so die Tiefensortierung sauber bleibt, obwohl das Motiv auf einem gemeinsamen Layer liegt.
Entities¶
Entities sind NPCs, Objekte, Trigger, Teleporter, Template-Instanzen oder Schatzobjekte.
Wichtige Felder:
idtypex,ystates- optional
templateId indicatorAlignment,indicatorOffset
States und Priorität¶
Entities besitzen eine geordnete Liste von States. Der erste State, dessen Bedingung zutrifft, wird aktiv.
Typische State-Unterschiede:
- Sprite
- Kollision
- Interaktionen
- Animationen
- Displaygröße
- Pfad
drawOnTop
drawOnTop¶
Mit drawOnTop kann ein State über allen Weltlayern und auch vor dem Spieler gerendert werden. Das ist besonders nützlich für:
- fliegende Vögel
- obere Überflüge
- dekorative Wesen oberhalb des Spielfelds
Wichtig: drawOnTop ist pro State, nicht global pro Entity. Dadurch kann ein NPC nur in bestimmten Zuständen über allen Layern liegen.
Displaygröße und logische Fläche¶
Anzeige und logische Präsenz einer Entity sind nicht identisch. Größere oder kleinere Sprites arbeiten über:
displayWidthdisplayHeight
Die Runtime leitet daraus passende logische Hitboxen und Interaktionsbereiche ab.
Indicators¶
Interaktionsindikatoren (E, !) können pro Entity angepasst werden:
- Ausrichtung über
indicatorAlignment - Feinkorrektur über
indicatorOffset
Das ist vor allem für große oder asymmetrische Sprites wichtig.
Templates¶
Templates machen Entity-Design wiederverwendbar. Eine Template-Instanz kann:
- zentrale States aus dem Template übernehmen
- Instanzwerte für
this.-Variablen und -Switches setzen - State-Eigenschaften überschreiben
- eigene Pfade pro State definieren
Die zugehörige Verwaltungsseite liegt in den World- und Global-Settings, während die eigentliche Platzierung im Level Editor erfolgt.
Zusammenspiel von Layern, Entities und Templates¶
Die eigentliche Qualität eines Levels entsteht selten durch nur einen dieser Bereiche, sondern durch ihr Zusammenspiel:
- Layer regeln Raum, Tiefe, Sichtbarkeit und statische Kollision.
- Tile-Rendermodi regeln zusätzlich, ob Vordergrund-Tiles starr bleiben oder sich mit Entities in die Tiefensortierung mischen.
- Entities erzeugen Reaktion, Fortschritt, Dialog und Dynamik.
- Templates sorgen dafür, dass wiederkehrende Figuren und Objekte konsistent bleiben.
Ein gutes Leveldesign nutzt deshalb klare Rollen:
- Boden, Wände und Vordergrund gehören in Tile-Layer
- klassische Untergründe gehören meist in statische Layer
- große Vordergrundteile können sinnvoll in dynamisch gruppierte Layer ausgelagert werden
- stark verstreute Vordergrunddetails können bei Bedarf pro Kachel dynamisch sortiert werden
- lebendige oder interaktive Elemente gehören in Entities
- häufig wiederkehrende Typen gehören in Templates
Das verhindert, dass Logik im Tile-Bild verschwindet oder dass dieselbe NPC-Definition zehnmal kopiert wird.
Besonders wichtig ist das bei großen Unterrichtswelten:
- dieselbe Fackel, Wache oder Maschine kann über Templates zentral gepflegt werden
- pro Raum werden nur Instanzwerte, Positionen und Pfade geändert
drawOnTopkann in einzelnen States für Spezialfälle wie fliegende Entities genutzt werden, ohne die Grundlogik der Entity umzubauen- zusammenhängende Baumkronen oder Möbeloberteile können in dynamisch gruppierten Layern sauber vor oder hinter Entities einsortiert werden
- einzelne Überhang-Tiles können notfalls pro Kachel dynamisch sortiert werden, ohne dass der ganze Layer als ein Block gilt
Bewegungsmuster¶
States können zyklische Pfade enthalten. Ein Pfadpunkt enthält:
xy- optional
wait - optional
direction
Das ist das Standardwerkzeug für Patrouillen, Wanderbewegungen oder einfache Ambient-NPCs.
Trigger¶
Trigger können auf mehreren Ebenen auftreten:
onInteractonTouchonEnteronFirstLoad
Alle Trigger nutzen denselben Interaktionsbaukasten.
Effekte und Audio¶
Ein Level kann feste oder temporäre Effekte haben:
- Lichtmodi
- Wetter
- Atmosphären
- Musik
Dadurch wird Leveldesign nicht nur räumlich, sondern auch atmosphärisch gesteuert.