Content lived in data assets
Buildings, items, recipes, companies, and research nodes were defined as ScriptableObjects.
That reduced repeated setup and supported an editor tool that generated item icons from prefabs.
Solo Unity systems case study · 2023–2024
Automation Haven was my attempt to build a deep factory-management game alone. Nine months of active development produced logistics, contracts, research, power networks, markets, and persistence. When I could no longer name the next task that would move it toward completion, I stopped and examined why.
I owned the game design, programming, technical architecture, UI, content setup, and project direction.

The playable system
The player could turn raw deposits into delivered products and use the reward to grow. Contracts were added in December 2023 because an open sandbox needed a reason to produce, not just more machines to place.
Select a station to inspect what it did and what it cost.
This diagram holds optional systems back to show the route that should have been validated first.
Architecture under load
The final repository uses data definitions, events, and logistics interfaces to make content easier to extend. It also relies on many global managers and distributed save responsibilities, which made changes across the whole simulation expensive.
Final prototype repository
Project-authored scope, excluding obvious vendor source.
Buildings, items, recipes, companies, and research nodes were defined as ScriptableObjects.
That reduced repeated setup and supported an editor tool that generated item icons from prefabs.
Grabbers work through input and output interfaces, while events update inventory, contracts, research, UI, and power.
The power manager merges pylon graphs when they meet and splits them with a breadth-first search when a pylon is removed.
Saving expanded from individual objects to networks, prices, contracts, plots, research, and multiple worlds.
The save system covered a broad simulation, but every new global dependency increased the cost of changing old assumptions.
Company orders, deadlines, and reputation turned a freeform factory into a directed economic loop.
The item and logistics layers moved away from concrete class checks, making new endpoints easier to add.
Prerequisites and sections replaced an overloaded milestone system and made progression easier to reason about.
Creating and loading separate worlds forced every dynamic subsystem to declare what state it owned.
The product decision
The power network reached a working state more than once. Then the surrounding scope changed and invalidated its assumptions, leading to another pass. The same pattern touched inventory, UI, progression, and saving.
By July 2024, the next useful task was no longer clear. The issue was not a missing feature or one bad system. “Factory automation game” described a direction, while planned ideas such as competitors, pollution, and new power types could all look essential alongside the systems already built. Nothing defined the smallest satisfying ending.
I stopped development instead of starting another rewrite without a clear route to completion. Later retrospectives turned that pause into a rule for my work: define what the player does and where the game ends before building more infrastructure.
Root causeA genre was chosen. A minimum complete game was not.
Early production test · December 2023
Connected prototype · 2024My check before expanding
Write the smallest satisfying player loop and ending.
Test that loop before adding adjacent systems.
Expand only when evidence shows which constraint matters next.
What I kept
The prototype was never released or validated in a completed external playtest. It still taught me how to break down a simulation, model content with ScriptableObjects, and recognize when shifting requirements are making an architecture unstable.
Where the work resurfaced
The free-fly camera was copied and adapted for a later prototype.
Automation Haven code was revisited while I built Wilderness Chef’s persistence flow.
Echoes of Steel began with one stable loop, expanded from it, and shipped on Steam.
The public retrospective covers the ambition, repeated rewrites, and why ending the project was the right product decision.
Watch on YouTube