Backrooms Simulator showing the in-game corridors
Flashlight illuminating a yellow corridor in Backrooms Simulator
Fluorescent-lit open rooms and pillars with the flashlight on
Level Fun in progress: party room with a welcome banner, streamers, balloons, and a disco ball, lit by the flashlight
Level Fun in progress: flashlight illuminating a birthday cake, balloons, and presents
Level Fun in progress: colorful corridors with confetti, balloons, and the flashlight on

Project Information

About

This project is inspired by the creepypasta "The Backrooms", which describes a world that is a seemingly endless maze of yellow rooms. To recreate this, I used Three.js to create a procedurally generated maze of eerily empty rooms using primarily Prim's algorithm.

The player can move using WASD keys. As the player moves through the maze, it will continue to generate new additions to the maze as the player moves close to the edge. Infinite procedural generation is achieved by using a system of offset corrdinates and 2D array of mazes, which themselves are 2D arrays of rooms. This can be performance intensive, so the program includes generative optimizations and several configurable settings to adjust the maze generation and rendering to improve performance.

To create a retro effect and feel of being lost in a maze, I also implemented several GLSL shaders that add a CRT effect, vignette, and RGB color shifting. These shaders were primarily created by @felixturner on GitHub.