Skip to content

First-person horror game inspired by Backrooms, built with Diligent Engine using C++, Python, and ray tracing for immersive lighting and maze-based gameplay.

Notifications You must be signed in to change notification settings

lauths12/Backroom-DiligentEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🎮 Backroom


🧩 Overview

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.


📦 Milestone 1 – Maze Generation and Collision System

image

🧱 Maze Generation

  • Implemented an automatic maze generator based on Prim’s algorithm, ensuring unique, cycle-free paths.
  • Adapted the CreateSceneObjects function to properly instantiate walls and corridors according to the generated layout.

image

🚧 Collision System

  • Developed the CheckCameraCollision function 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.

📚 References


💡 Milestone 2 – Custom Map and Flashlight System

🗺️ Custom Map Creation

image

  • 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.

🔦 Flashlight with Ray Tracing

flashlight on

  • 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.

👾 Final Delivery

Backroom.Diligent.Engine.mp4

📚 References


📼 Progress Videos


🛠️ Technologies Used

  • 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)

About

First-person horror game inspired by Backrooms, built with Diligent Engine using C++, Python, and ray tracing for immersive lighting and maze-based gameplay.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published