Shadows of the Depths
A seeded-maze dungeon crawler for the Windows console, rebuilt over seven versions.
A turn-based dungeon crawler that runs in the Windows console. You steer an @ through a coloured ASCII maze built from a seed you type in, pick up potions, armour and coins, and fight monsters in short animated text battles. It began in July 2025 as a single 15×15 room in about 1,300 lines, and over seven saved versions grew to about 4,000, with elemental weapons, spells and an animated credits roll.
- Status
- Archived. The last version, the Element update, was last changed on 24 August 2026.

Worth knowing§
- Across seven saved versions the game grew from 1,322 lines to 4,025 lines of C++.
- The maze is a 29 × 29 grid of cells carved into a 175 × 175 tile map, the same every time for the same seed.
How it works§
- 01
Mazes are carved by a recursive depth-first backtracker after a set of square rooms is cut out first. The seed text is hashed into a Mersenne Twister, so the same seed always gives the same maze, and the screen shows only a small window around the player.
- 02
Everything is console text with ANSI colours. Early versions cleared the whole screen on every move; the last moves the cursor and redraws over the old frame, which stopped the flicker. Fights play on a one-line stage where the @ and the monster trade ASCII strikes frame by frame.
- 03
Combat grew a version at a time: misses, double hits and armour first; then critical hits and running away; then coins and a shop of six weapons with trade-offs, like a mace that hits harder but can't crit; then a five-element wheel shared by weapons and spells.
- 04
In the last version each of the 8 enemy kinds has its own combos, a wind-up warns of a heavy blow next round, and guarding through it parries. You start as a Warrior, Mage or Battlemage.
- 05
Sound moved from WAV files to MP3 through the Windows media interface, and the closing credits read the music's position to pace their scroll, so the show ends with the track.
Built with§
- C++
- Dev-C++
- Windows console API
- winmm
- std::mt19937
