Project
Fox-Fire Heist
First-person environmental puzzle game set on a steampunk airship, inspired by a Chinese folktale. Gameplay centered on reusable physics-based interactions, diegetic puzzle design, and a world built almost entirely from scratch.
About the Project
Fox-Fire Heist was built as part of a university brief while I was also juggling a dissertation and two other courses, so the entire thing had to be designed around a scope I could realistically finish without it turning into a pile of half-working ideas.
The brief was based on the Chinese folktale "Fox-Fire", which I reworked into a heist where the player sneaks through an airship to steal a magical energy source. The main design goal was to avoid the usual feeling of games suddenly switching into "puzzle mode." I wanted the whole game to feel like one continuous environmental problem, solved through a small set of reusable mechanics rather than one-off gimmicks.
Visually, the project mixes steampunk machinery with subtle Chinese motifs taken from the folktale. The environment was built almost entirely in Blender, with only a handful of third-party furniture assets used where it made sense.
Why this project stands out
- Built entirely solo over two months from a blank Unity project while also completing a dissertation and other coursework.
- Designed around a small reusable mechanic set rather than isolated puzzle set pieces or separate puzzle UI - the environment itself is the puzzle.
- Roughly 95% of the environment art was self-made, alongside the scripting, level design, lighting, animation, and overall presentation.
- Received the highest grade in the cohort and was later used by the course organiser as an example for future students.
Core Interaction Systems
Physics-Based Object Manipulation
The core mechanic set revolves around grabbing, carrying, rotating, stacking, and throwing objects while they remain physically present in the world. Nothing disappears into an inventory or gets abstracted away. The goal was to make interactions feel closer to games like Half-Life 2 or Amnesia, where solving the puzzle means actually handling the environment rather than selecting the correct option from a menu.
Steam Routing Puzzle System
The largest puzzle space in the game is built around a simple but flexible steam-routing system. Pipes, valves, forks, sockets, pressure gauges, and missing pipe sections can all be combined to create multi-step problems that still remain readable to the player. Under the hood the logic is straightforward, but it is genuinely modular rather than hardcoded to one room. The same pieces can be recombined into different piping layouts and objectives, which lets the system support rerouting flow, restoring broken connections, bringing an auxiliary generator online, and feeding multiple sources into a final objective.
Destructible Objects and Environmental Interaction
Destructible objects are treated as part of the puzzle language rather than just decoration. In the opening room, breaking crates reveals an item required to progress, which immediately teaches the player that destruction is not just visual flair but something they are expected to think about.
Design Approach
Puzzles That Belong to the World
One of the main things I wanted to avoid was the kind of puzzle design where the game suddenly breaks immersion and announces that you are now doing a puzzle. In Fox-Fire Heist the whole point was to make the environment itself into the puzzle, so progression comes from using the same core mechanics in slightly more demanding ways as the game goes on.
Teaching Without Stopping the Game
The onboarding is mostly diegetic. Opening notes set up context and controls in-world, the crosshair changes based on whether an object can be manipulated or is currently held, and early interactions are set up so the player learns by doing rather than by reading a tutorial screen.
Readability and Feedback
Interactable elements are given stronger colour contrast or placed in ways that draw the eye. Steam gauges, particles, moving machinery, and object responses exist partly to make the world feel alive, but also to make the state of the puzzle legible at a glance without explicit instructions.
Level Progression
The game is split into three main spaces that ramp up complexity using the same interaction set. A clean run takes around 10 to 15 minutes, but first-time play can stretch closer to 30 depending on how quickly the player reads the environment and solves the more integrated puzzle beats.
Cargo Bay
The opening area. Teaches the basic language of the game through object manipulation, destructible props, simple traversal, and environmental cues.
Lobby
The main puzzle room. This is where the steam system, hidden interactions, missing parts, rerouting, and multi-step problem solving all come together.
Engine Room
A shorter final area that acts as the payoff and end point of the heist.
Technical Challenges
Getting the physics to feel right took a disproportionate amount of work. A lot of the challenge was not writing complex systems so much as wrestling Unity's physics into behaving the way I wanted: tuning how held objects interact with the player controller, stopping exploit cases such as picking up the object you are standing on and effectively giving yourself flight, and preventing thrown objects from clipping through geometry at high speed.
There were also stranger issues that only showed up through iteration, such as one asset behaving erratically because it had been scaled down so aggressively that it started causing physics problems. Fixing this project involved a lot of that kind of fiddly work: adjusting rigidbodies, colliders, interaction distances, and object behaviour until everything stopped feeling janky.
I also cut ideas when they were getting in the way. One earlier concept for the Lobby involved a sentry that periodically checked whether objects had been returned to their proper place, which would have turned the room into a much harsher planning puzzle. I dropped it because even though the idea was interesting, it pushed the room towards frustration rather than the kind of problem solving I actually wanted.
Solo Production Scope
- Gameplay systems and interaction logic
- Object and environmental animation
- Puzzle design and progression
- Lighting and visual presentation
- Level layout and scene assembly
- Texture and material selection
- Environment modelling in Blender
- Art direction tying folktale to steampunk setting
Level Design
Before modelling the final version of the Lobby, I planned the layout and puzzle flow in advance so the room could support the multi-step progression I had in mind. The diagram below maps the full space and marks out the key interactables, routes, and puzzle elements that drive the main room of the game.
Gameplay Video
Full walkthrough without commentary.