← projects
Descent Into Madness
A published Unity WebGL dungeon shooter with procedural floors, sanity pressure, classes, bosses, loot, and fast-travel exploration.

What it is
Problem
This university team project explored how procedural dungeon structure, combat readability, navigation, and psychological pressure can reinforce one another inside a compact 2D action game.
Solution
The four-person team built five escalating procedural levels with class selection, ranged combat, loot, bosses, a sanity system, minimap fast travel, and A*-based enemy line-of-sight behavior, then published a WebGL v1.0.2 build on itch.io.
What it looks like
Class selectionThree starting classes change the player's combat profile before entering the dungeon. Dungeon runThe released build combines procedural rooms, ranged combat, sanity pressure, loot, and minimap navigation.
Built with
Engine
- Unity 2022.3.9f1 LTS
- C#
- URP
Systems
- Procedural generation
- A* pathfinding
- Scriptable data
Release
- WebGL
- Windows
- itch.io
Highlights
- Procedural dungeon progression across five levels
- Three playable classes, ranged weapons, loot, and bosses
- Sanity mechanic that adds pressure beyond health
- Minimap fast travel and A*-based enemy line of sight
- Playable WebGL release on itch.io
Engineering
- Process 01
Use five escalating floors as the run spine
- Context
- Procedural rooms need a readable sense of progression rather than endless random encounters.
- Approach
- Organize generation, difficulty, loot, and bosses into a fixed five-level escalation.
- Outcome
- Runs gain a clear arc, while balancing each floor across three classes becomes a larger tuning problem.
- Process 02
Add sanity as a second pressure system
- Context
- Health alone did not express the psychological-horror theme or create enough pressure between fights.
- Approach
- Track sanity alongside combat state and connect it to exploration and survival.
- Outcome
- The game gains thematic tension, but players must understand two failure pressures through a compact HUD.
Under the hood
Architecture notes
- Roughly 150 C# scripts divide movement, combat, dungeon generation, enemies, UI, audio, and interactive props.
- Procedural rooms and difficulty scaling build a repeatable five-floor run structure.
- Navigation combines a minimap travel layer for players with A* and visibility checks for enemies.
Challenges
- Integrating many shared Unity systems across a four-person student team without losing a playable build.
- Balancing procedural layouts, sanity, enemy pressure, and class differences across five floors.
- Third-party art and audio licenses make this a published educational prototype, not a commercial asset package.
Outcome
A playable v1.0.2 WebGL prototype shipped by a four-person university team, with the complete Unity source published for inspection.
Roadmap & lessons
Lessons learned
- 01Roguelike tension comes from pacing, not just enemy count.
- 02Shipping a build to itch.io forces real finish work a repo never demands.
Next steps
- 01Preserve the WebGL build
- 02Document individual system ownership
- 03Archive third-party asset attributions