Project Rooms

School Project | Unreal Engine | Level Design

← Back to Projects

Project Overview

Project Rooms is a small puzzle game inspired by The Room that I created for my Intro to Level Design class at DePaul through Unreal Engine.

Concept & Goals

Project Rooms is a first person single player puzzle game set in a dark, abandoned medieval house. Inspired by the mobile game series The Room, the player starts the level inside the house, with no memory of how they arrived and must solve a series of interconnected puzzles across four rooms in order to locate keys, unlock doors, and ultimately escape through the front door and complete the game.

The core design goal was to create a puzzle experience where each room builds on the last, with items and clues carrying over between spaces to reward exploration and careful observation. Environmental storytelling was also done through a series of in-world notes written by a seemingly former resident of the house, guiding the player without directly explaining puzzles. The intended mood was tense and atmospheric; a cold, dark space that feels lived in but long abandoned.

Key Challenges

The project presented several design and technical challenges throughout development.

The most significant early challenge was scope management. Coming into this project with limited Unreal Engine Blueprint experience, the original vision was closer to the complexity of the original game, with object focus mechanics and more in-depth puzzle interactions. After exploring Unreal and figuring out what I was comfortable doing, the design was scaled to what was achievable for me, a decision that led to a more focused and polished final product.

On the technical side, one recurring challenge was Unreal's separation of an object's visual and physical state. Hiding an actor using Set Actor Hidden in Game does not disable its collision, which caused issues where invisible objects still blocked the player's line trace and prevented key pickups. This required specifically pairing every visibility toggle with a Set Actor Enable Collision block as well. Another problem I encountered was that plugging array search results directly into Branch conditions produced incorrect/unexpected results due to Unreal's integer-to-boolean conversion, where -1 was being read as True. The fix required simply comparing the array search results to -1 using a Not Equal node.

Playtest feedback also brought important readability issues for my level. Players could not clearly distinguish between a locked and unlocked door due to similar sound effects, and spotlights left behind after key pickups were misleading players back to empty spots. Both issues were identified and resolved before the final version of the project.

Design & Technical Solutions

The puzzle structure was designed to increase in difficulty, starting with one simple puzzle for the first two rooms, and two chained puzzles for the final two. Later a decision was made to include items in the level to make things feel more like the inspiration. This change allowed me to do more interesting things like make the player backtrack between the bedroom and the closet to find an emblem needed to open the final chest. This gave the game a sense of complexity and made earning the final key feel more earned.

A central Puzzle Manager Blueprint was built to act as the brain of the entire system, handling puzzle state, array sequence tracking, actor visibility toggling, and reset logic across all rooms. This kept individual object Blueprints simple and communication clean. Blueprint Interfaces were used to connect interactable objects to the player's existing line trace interaction system without requiring heavy modification of the player character directly.

The UI was implemented using Widget Blueprints with a dedicated title screen camera pointing at the main table with the note in the first room, and a win screen triggered by a box trigger volume at the front door, complete with a camera fade transition. Audio was added as a looping ambient Sound Cue playing through the entire level to reinforce the eerie atmospheric mood.

Level readability was improved through deliberate lighting decisions, spotlights attached directly to key objects so they disappear on pickup, warm candle lighting to eliminate sourceless ambient light, and distinct floor materials used to differentiate doorway spaces from room interiors.

Conclusion

Project Rooms was a valuable learning experience that taught me a lot about puzzle design, level design, and Blueprint scripting in Unreal Engine. I'm proud of what I was able to create, and I'm excited to continue learning and growing as a game developer, moving onwards from my Minecraft projects.