Project

Fox-Fire Heist

Unity C# Blender

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.

Fox-Fire Heist
2 months Solo, during term
95% Self-made art
1st Highest grade in cohort
Unity / Blender Stack

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

Elevator Shelf

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.

Valve Pipe

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.

Furnace Destructible Crate

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.

Diegetic notes
Instructions are presented in a diegetic manner
Open starter crate
Object destructibility is immediately demonstrated
Item in box
Items can be found inside breakable containers
Coloured hatch
Colour used to signal an interactable hatch

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

Cargo Bay

The opening area. Teaches the basic language of the game through object manipulation, destructible props, simple traversal, and environmental cues.

Lobby

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

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.

Fox Fire Level Design

Gameplay Video

Full walkthrough without commentary.