Monster Escape Maze (CMU 15-112 Final Project)
Tags: Game Development · Python · CMU 15-112 · Procedural Generation · Raycasting · Adversarial Search
A generative 3D escape game built as the final project for CMU 15-112 (Fundamentals of Programming). Each run places the player into a procedurally generated 3D maze rendered using raycasting, with monsters, loot, and multiple game modes.
Gameplay Overview
- One-player and two-player modes
- Procedurally generated 3D maze terrain
- Multiple levels with increasing maze complexity and monster count
- Goal: escape the maze (first to escape wins in two-player mode)
World & Mechanics
- Raycasting renderer: 3D view implemented by casting rays and projecting wall slices onto the screen
- Monsters: adversarial agents that chase players through the maze
- Combat: players can fight monsters (and each other in 2-player mode)
- Loot system: chests contain swords, health boosters, and shields
Items
- Swords: wooden, stone, iron, gold, and diamond tiers with increasing damage (rarer swords appear less frequently)
- Health boosters: restore player health
- Shields: reduce damage from monsters and other players
Build-Your-Own-Maze Mode
A custom editor mode allows players to design their own maze by specifying:
- Maze size and wall placement
- Player spawn locations
- Monster spawn locations
- Chest and exit placement
The custom maze can then be played immediately in one-player or two-player mode.
Technical Highlights
- Procedural maze generation
- Raycasting-based pseudo-3D rendering
- Adversarial search / pursuit logic for monsters
- Modular game loop handling input, movement, combat, and rendering