Ash Makes Games
Smoke & Mirrors
Smoke & Mirrors is a third-person stealth horror game where you use a magical smoke leak detector to expose hidden pathways, reveal invisible dangers, and uncover a house built on illusions. Inject smoke into vents, follow shifting airflow trails through distorted environments, and evade relentless enemies as each leak you close brings you closer to escape. Built for the PlayStation Ratchet It Up Game Jam.


Concept Overview
Core Loop
Spend charge, expose reality, spot leaks, navigate enemies, seal the leak in time, and unlock the next encounter.
Team Size
Total team of 4, collaborated across design, engineering, and art.
Role
Systems & Encounter Designer, Blueprint Programmer, Project Manager, Cinematics Designer, and Audio Design.
Timeline
May 15–June 5, 2026.
Tools
Unreal Engine 5, Blueprints, Niagara, Sequencer, GitHub, Mixamo, and Soundtrap.
Genre
Third-Person Stealth Horror

My Work
Throughout the game jam, I helped transform our initial smoke detector pitch into a complete risk-and-reward gameplay loop with progression, resource management, enemies, cinematics, and environmental reveals.
As a designer, I developed the Smoke Leak Detector loop, battery limitations, charging stations, timed leaks, pressure progression, hidden areas, and quick-time events. Each system was designed to create tension by making players decide when it was safe to expose reality and how much time they could afford to spend there.
As a Blueprint programmer, I implemented the systems supporting that loop, including injection points, nearest-leak detection, battery usage, responsive UI, smoke guidance, enemy activation, tagged area progression, reality walls, post-processing transitions, and cinematics. I also acted as a project manager by breaking the pitch into achievable tasks, coordinating dependencies, helping teammates troubleshoot Unreal and GitHub, and adjusting our priorities and scope as the deadline approached.


The Process
Early Concept and Ideation
Our Initial Concept
Our pitch centered around a tool that reveals the truth behind an illusion. The house initially appears warm and safe, but injecting smoke into its walls exposes hidden leaks, pathways, and enemies.
My challenge was translating that concept into a system we could realistically build during a short game jam. Using the Smoke Leak Detector needed to help players progress while simultaneously placing them in danger.
Encounter Design Goals
I designed each encounter around three main goals:
Together, these goals made the detector create information, opportunity, and danger through the same player decision.
-
Commitment: Activating the detector spends a limited charge and immediately places the player in danger.
-
Pressure: Players must locate and seal a leak while avoiding enemies and working against a timer.
-
Recovery: Failure costs time and resources, but charging stations allow players to prepare and try again.




.png)

The Smoke Leak Detector is the center of the game. Players find an injection point, release smoke into it, and use the moving trail to locate the nearest hidden leak.
I built a reusable interaction system that checks the player’s battery, finds the nearest valid leak, activates reality and its enemies, and sends a smoke trail toward the target.
The first version immediately revealed a placeholder sphere. Once the logic worked, I collaborated with our artist to replace it with a Niagara smoke effect that traveled from the injection point toward the leak.
The smoke originally spawned directly on the leak, giving away the answer instead of guiding players toward it. I revised the Niagara system so particles traveled from the injection point to the nearest active leak, then adjusted their spawn rate, lifetime, and looping behavior to create a more natural flow.
I also delayed the leak’s full reveal, briefly requiring players to rely on the smoke itself for guidance. This made the detector feel like a tool players actively followed rather than a button that immediately marked their objective.
Creating the Core Mechanic
The Smoke Leak Detector
Guiding Players Through Smoke



Limited Charges
I translated the detector’s need for power into a three-charge battery. Each injection spends one charge, and recharging requires players to hold the interaction button at a station for several seconds.
I programmed the battery logic, charging stations, HUD, and a circular progress indicator that cancels if the player releases the button or walks away. This made activating the detector a deliberate commitment while creating preparation points between encounters.
Designing Tension: Resources, Risk, and Vulnerability
Revealed leaks disappear if players cannot reach them in time, forcing them to spend another charge and try again. Sealing initially required only one interaction, removing most of the tension once players passed the enemies.
I added a button-mashing quick-time event that requires players to remain beside the leak while the timer continues to fall. Players now need to create enough space from enemies before committing to the seal.
Timed Leaks and Sealing
Pressure and Area Progression
Sealing leaks raises the house’s pressure and gradually reveals the path forward. I outlined how the pressure manager should track total leaks, sealed leaks, room completion, and unlocked doors, then connected my teammate’s base implementation to the UI and progression systems.
I tagged leaks by area so the system only counts the player’s current section. When every leak is sealed:

Building the Level
I created the main blockmesh based on our concept art, then expanded the original layout to give players more room to maneuver around enemies and search for leaks.
I divided the house into three main areas with hidden rooms and false walls. Players could see their final destination early, but the obvious route returned them to the beginning. The real path had to be uncovered by sealing leaks and revealing doors hidden inside paintings and walls.
This made the house feel larger and more mysterious while giving every completed area a visible effect on the environment.
-
The pressure meter reaches 100%
-
A hidden entrance opens
-
The previous route closes
-
The meter resets
-
The next area becomes active
I programmed BP_PressureReset and BP_RealityWall to control these transitions. This allowed all three areas to exist inside one connected house while maintaining independent completion states.







Enemy Pressure and Player Response
I connected the detector to the enemy system through a shared RealityActive state. Enemies remain hidden during the illusion, then begin patrolling and attacking when the player exposes reality.
Enemy attacks originally lacked impact, so I added knockdown and recovery animations. Getting hit now costs valuable sealing time, making enemies meaningful because they directly interfere with the player’s objective instead of only acting as moving obstacles.




Project Management and Collaboration
I translated broad creative goals into broken down achievable tasks, tracked dependencies, and shifted priorities whenever an asset or feature was blocked. I also helped teammates troubleshoot Unreal and GitHub, gathered feedback before making scope decisions, and removed features like jumping that introduced major bugs without strengthening the core loop.
When a final-day merge corrupted the tool model and several audio files, I helped recover the project, replace missing content, reintegrate dialogue, coordinate the final handoff, and record our submission.
I created cinematics for the opening and each major area transition. These sequences establish the player’s objective, reveal newly opened paths, and give environmental changes enough time to register.
I synchronized the camera, pressure system, collision changes, and scripted walls so each transition happened in the correct order. This allowed the cinematics to guide players without taking control away for longer than necessary.
Cinematics and Player Guidance


Additional Contributions
Beyond the core gameplay systems, I helped bring the game into a complete, presentable state by creating:
-
Main, pause, settings, and credits menus
-
Illusion and reality music with gameplay sound effects
-
Character animation integration and leak distortion VFX
-
The game’s logo and menu presentation
-
50+ page dev log detailing my work on this Game Jam
I composed separate illusion and reality tracks so the audio reinforced the same contrast as the visuals: a calmer atmosphere before using the detector and a more unsettling version after exposing reality.
Takeaways
Smoke & Mirrors taught me that engaging encounters do not need a traditional weapon system. Combat pressure can come from limited resources, enemy disruption, positioning, timers, and knowing when it is safe to commit to an action.
My biggest takeaway was that enemies feel most meaningful when they interfere with something the player already cares about. Connecting enemy attacks to the rapidly decaying leaks made every hit affect the player’s objective, turning enemies from moving obstacles into a central part of the encounter.
Building these systems in Blueprints also strengthened my ability to carry a design from its initial intent through implementation, debugging, feedback, and final polish.
