Dungeons und Interfaces
Überblick
- Im vorherigen Teil wurden das in der Spieleentwicklung häufig verwendete Architekturpattern Entity-Component-System (ECS) und das Paradigma der Metasprachenprogrammierung untersucht.
- Dieses Mal wird mit diesen Techniken ein kleines Spiel aus dem Genre Dungeon Crawler erstellt, um daran das Systemdesign einer realen Spieleanwendung zu betrachten.
Vorbereitung
- Die Common-Lisp-Umgebung wird eingerichtet und die benötigten Pakete werden aktualisiert.
- Das Projekt wird mit einem
cookiecutter-Template gestartet und die Fenstergröße des Spiels auf 1280x800 gesetzt.
Dungeon
- Damit der Spieler den Dungeon erkunden kann, wird eine Dungeon-Karte benötigt.
- Mit Tiled, einem Open-Source-Map-Editor, wird eine Dungeon-Karte erstellt; zum Laden als Lisp-Objekt wird die Bibliothek
cl-tiled verwendet.
- Nachdem die Map-Datei vorbereitet ist, werden einige Vorarbeiten durchgeführt, damit sie im Spiel geladen und genutzt werden kann.
Anwendung des ECS-Patterns
- Die Map-Kacheldaten werden zur Verbesserung der Performance in den ECS-Store verschoben.
- Das Framework
cl-fast-ecs wird dem Projekt hinzugefügt und das ECS-System initialisiert.
- Die Map-Kacheln werden als einzelne Entitäten gespeichert und die Systeme zu ihrer Verarbeitung definiert.
Animation
- Tiled unterstützt animierte Kacheln, mit denen dem Spiel mehr Lebendigkeit verliehen werden kann.
- Zur Implementierung der Animation wird die Codestruktur erweitert und refaktoriert.
- Die Komponenten
animation-frame und animation-state werden definiert, um den Animationszustand zu verwalten.
- Das System
update-animations wird definiert, um die Animationsframes zum passenden Zeitpunkt umzuschalten.
Zusammenfassung von GN⁺
- Der Artikel erklärt, wie sich Spieleentwicklung mit dem ECS-Pattern effizient umsetzen lässt.
- Er zeigt, wie sich mit Werkzeugen wie Tiled Maps einfach erstellen und verwalten lassen.
- Er erläutert, wie Animationen dem Spiel mehr Lebendigkeit verleihen können.
- Mit dem ECS-Pattern lassen sich Performance optimieren und eine kompakte Codestruktur beibehalten.
- Ähnliche Projekte mit vergleichbarer Funktionalität sind unter anderem das ECS-System von Unity oder das Blueprint-System der Unreal Engine.
Noch keine Kommentare.