This project is a first-person horror and exploration game, inspired by the Backrooms concept — but with custom mechanics such as puzzles and Escape Room–style gameplay.
The player explores a dark maze with only a flashlight, solving puzzles and avoiding mysterious entities that lurk in the shadows.
The project was developed as a way to integrate and apply key concepts from the course, including texturing, dynamic lighting, and hybrid rendering with ray tracing.
- Implemented an automatic maze generator based on Prim’s algorithm, ensuring unique, cycle-free paths.
- Adapted the
CreateSceneObjectsfunction to properly instantiate walls and corridors according to the generated layout.
- Developed the
CheckCameraCollisionfunction to prevent the player from walking through walls. - The system checks if the camera is within a 0.2-unit collision radius relative to any wall.
- Applies a normal correction vector to push the player out of the wall upon collision.
-
Replaced procedural maze generation with a custom image-based map.
-
Built a Python script that converts a PNG image into a matrix of game elements:
- Green → Regular walls (1)
- Red → Alternate textured walls (2)
- Blue → Doors (3)
- Other colors → Corridors (0)
-
This approach gives full control over the level design and allows for fast iteration.
- Implemented a dynamic flashlight using ray tracing within shaders.
- Uses the player’s position, direction, and cone angle to project light.
- Calculates soft shadows and distance-based attenuation for realistic lighting.
- Applies warm diffuse lighting and soft reflections on surfaces.
Backroom.Diligent.Engine.mp4
- C++ (core gameplay logic)
- Diligent Engine (graphics and hybrid rendering)
- HLSL / GLSL (shader programming for ray tracing)
- Python (image parser for map generation)
- ImGui / SDL (optional for debugging or UI)



