Spieleentwicklung | C-Projekt

Dungeon Crawler

Ein Dungeon-Spiel, das mit Raylib komplett in C geschrieben wurde. Der Spieler navigiert durch eine Karte, flieht vor Gegnern und sammelt Items.

🎮 Spieleentwicklung v1.5 25. August. 2026

Dungeon Crawler v1.5

Was ist der Dungeon Crawler?

Der Dungeon Crawler war mein erstes größeres C-Projekt. Ziel war es, ein vollständig spielbares Spiel mit Standard-C zu bauen.

Die Karte wird aus einem zweidimensionalen Array aufgebaut. Wände, freie Felder, Gegner und Items haben jeweils eigene Zeichen. Der Spieler bewegt sich mit den Pfeiltasten und muss Gegnern ausweichen, während er Schätze einsammelt.

Sprache: C | Kompiliert mit GCC | Läuft als Anwendung im eigenen Fenster

Was kann das Spiel?

Was wird noch kommen?


Einblicke ins Spiel

Karten-Ansicht

Die Karte mit Spieler, Gegnern und Items

Startbildschirm Game Over Bildschirm

Links: Startmenü | Rechts: Game Over


Wie wurde es gebaut?

Das gesamte Projekt besteht weiterhin aus einer einzigen .c-Datei, mittlerweile auf ~5.350 Zeilen Code angewachsen. Gebaut ist es mit raylib, einer C-Bibliothek für 2D/3D-Grafik. Die Karte ist ein statisches 2D-Array aus char-Zeichen (char map[MAP_ROWS][MAP_COLS]), wird zur Laufzeit prozedural erzeugt und ist nicht fest im Quelltext hinterlegt.

/* Karte wird zur Runtime generiert */
for (int y = 0; y < mh; y++)
for (int x = 0; x < mw; x++) {
    int r = GetRandomValue(0,99);
    map[y][x] = (r < tp) ? '#' : (r < xp) ? '+' : '.';
}

/* Tile-Map-Konstanten */
'#' = Wand,  '.' = Boden,  '+' = Falle
'T' = Schatz,  'O' = Portal,  '$' = Münze
'I' = Item,  'X' = Gegner

Rendering mit raylib: Jedes Tile wird als 32×32 Pixel gerendert. Wände bekommen 3D-Bevel-Effekte, Items und Gegner sind animierte Formen/Kreise. Die Kamera folgt dem Spieler weich; Partikeleffekte werden pro Frame aktualisiert.

Eingabe mit raylib: Tasteneingaben erfolgen über IsKeyPressed() und IsKeyDown(). Die Eingabe funktioniert plattformübergreifend ohne spezielle Anpassungen.

Spiellogik: Eine State Machine (`GState`: MENU → PLAY → DEAD/NEXT) steuert den Flow. Die Hauptschleife nutzt Delta-Time (`GetFrameTime()`) für konstante Physik bei 60 FPS. Gegner-KI, Partikel, Timer und Kamerabewegung werden alle frame-unabhängig mit `dt` aktualisiert.

Persistenz: Highscores (beste Runde, Schätze, Münzen) werden in eine Datei geschrieben und geladen (`STATS_FILE`).

Shop & Fortschritt: Jedes der 5 Items hat ein eigenes Upgrade-Level, das per Array (Dauer/Reichweite pro Stufe) ausgelesen wird; Skin-Besitz, Levels und Coins werden separat gespeichert (`SHOP_FILE`). Die 30 Skins sind nach Seltenheit gestaffelt und werden je nach Stufe mit eigenen Zeichenfunktionen gerendert: von einfarbigen Common-Skins bis zu animierten Epic-Skins. Achievements laufen über dieselben Stats-Werte und werden live mit Zielwerten je Stufe abgeglichen.


Was ich gelernt habe

Mit C, Zeigern und Arrays habe ich die Spiellogik umgesetzt. Mit Raylib habe ich eine grafische Oberfläche aufgebaut.

Später habe ich mit Emscripten eine Web-Integration umgesetzt. Das Spiel läuft dadurch auch im Browser. Für WebAssembly und unterschiedliche Build-Ziele waren zusätzliche Anpassungen nötig.

Mit dem Projekt habe ich meine C-Kenntnisse vertieft und gelernt, den Code zu strukturieren, wenn neue Mechaniken dazukommen. Außerdem kann ich besser nachvollziehen, wie Spiellogik, Rendering und Benutzereingaben zusammenspielen.


Wie das Projekt gewachsen ist

v1.5
25. August. 2026
Dungeon Crawler für das Web Version 1.5 wurde mit Emscripten für das Web kompiliert. Die Web-Version ist nun spielbar und enthält alle Features der Desktop-Version.
v1.5
05. August. 2026
Legacy of Stars Mehr Achievements, Musik hinzugefügt, neue Skins, Bugfixes, Einstellungen erweitert.
Snapshot
01. Juli. 2026
Skin Preview Zukünftige Skins-Designs für die Version 1.5 wurden hinzugefügt, darunter Blade Legend, Ascendant und Constellation.
v1.4
01. Juli. 2026
Version 1.4 Achievements hinzugefügt, Settings-Menü hinzugefügt, Future-Updates-Info nach oben verschoben, Mehr Item-Upgrades, 10+ neue Skins hinzugefügt, animierte Skins möglich, Nerfes für Skin-Prices
v1.3
14. Juni. 2026
Version 1.3 Menü-Redesign, Pause-Funktion hinzugefügt, HUD-Anzeigen überarbeitet, In-Game-Shop für Skins und Upgrades eingebaut, Counter komplett neu aufgebaut.
v1.2
07. Juni. 2026
Dungeon Crawler für das Web Version 1.2 wurde mit Emscripten für das Web kompiliert. Das Spiel läuft seit dem auch im Browser.
v1.2
31. Mai. 2026
Version 1.2 Vollbildfunktion und Gegner-Killcount hinzugefügt; das Spiel im Web spielbar gemacht.
v1.1
21. Mai. 2026
Version 1.1 Schilde schützen gegen Gegner, Item um Gegner zu besiegen hinzugefügt, Item um durch Wände zu gehen hinzugefügt, Bugfixes.
v1.0
25. April. 2026
Finales Release Raylib-Integration, Partikeleffekte, Gegner hinzugefügt,Highscore-System, 3 Item-Typen, verbessertes UI und viele Bugfixes.
v0.9.3
27. Jan. 2026
Alpha: Finale Version Bugfixes, Animationen hinzugefügt.
v0.9
20. Jan. 2026
Alpha Farben hinzugefügt.
v0.8
20. Jan. 2026
Version 0.8 Neue Runden vergrößern die Map.
v0.7
19. Jan. 2026
Version 0.7 Schatz hinzugefügt, danach wird die nächste Runde generiert.
v0.6
19. Jan. 2026
Version 0.6 getch_ hinzugefügt, um Eingaben zu lesen, ohne enter zu drücken.
v0.5
18. Jan. 2026
Version 0.5 Fallen und Mauern hinzugefügt.
v0.4
18. Jan. 2026
Version 0.4 Wände hinzugefügt.
v0.3
18. Jan. 2026
Version 0.3 Performance-Optimierungen.
v0.2
13. Jan. 2026
Version 0.2 Map hinzugefügt, Spieler kann sich bewegen.
v0.1
12. Jan. 2026
Erster Commit Koordinatensystem zum Bewegen erstellt.