-
BFS Unlimited MaxDepth: Blue is player, red is monster, green is exit
-
RaycastingDDA
-
Multiple Mazes
-
BFS Pathfound: Blue is player, Red is monster, Green is exit
-
Raycasting
-
DFS
-
WallRendering
-
DFS: Longer time period
-
MazeGen
-
BFS: Maxdepth included
-
Flaslight Off experience
-
THE MONSTERR
-
General gameplay
-
Corridoor
Inspiration
We were inspired by The Backrooms movie and the eerie atmosphere of the Backrooms concept. With it being Halloween month, we thought it was the perfect opportunity to build a horror game that captures the tension of navigating an unfamiliar maze while being pursued by a monster. Our goal was to create an immersive first-person experience from a 2D grid-based world, combining procedural generation, raycasting, and enemy AI.
Accomplishments that we're proud of
- Built a playable escape game with procedurally generated mazes and first-person raycast rendering.
- Implemented a monster AI with distinct roaming and pursuit behaviors.
- Created a flashlight battery mechanic that changes the monster's pursuit behavior when the battery dies.
- Integrated an optional minimap that visualises the monster's BFS route.
- Implemented both CPU and GPU renderers and added a self-test to compare their outputs.
- Added procedural textures and synthesised audio to establish the game's atmosphere.
- Successfully brought all our independently developed components together into a functioning game using Kraken Engine. Seeing the maze generation, rendering, player movement, collision detection, and monster AI work together was one of our biggest accomplishments.
What we learned
Through this project, we gained practical experience with raycasting, grid traversal, maze generation, and graph-search algorithms such as DFS and BFS. We also learned how rendering techniques such as distance-based lighting and falloff affect the visual presentation of a game.
Beyond the technical aspects, we learned the importance of teamwork and collaboration. Dividing the project into smaller components allowed each team member to focus on a specific problem, while integrating those components required us to communicate clearly, define interfaces, and work through compatibility issues together.
As highlighted in our development process, understanding each system was often more challenging than coding it. Building separate prototypes gave everyone a focused problem to learn, while concrete handoffs between components helped us combine our work. We also learned to consider how different systems interact when debugging issues such as rendering artifacts and framework compatibility.
Finally, we learned how gameplay mechanics can work together to create tension. The flashlight battery, for example, is more than a lighting feature: its failure directly changes how aggressively the monster pursues the player.
Built With
- c++
- metal
Log in or sign up for Devpost to join the conversation.