The useful question was what to make real first
A game like Bolt March can stay fake for a long time if the only thing that exists is a good pitch and a nice logo. I wanted the opposite. The first job was to make the game answer practical questions: how the robots move, how levels are represented, what counts as success, and whether the whole thing can live comfortably inside wezen.tech instead of beside it.
That pushed the first alpha toward runtime truth instead of presentation polish. A playable route with deterministic movement and a clear failure state matters more than a prettier mockup of a game that still does not know what its own rules are.
Why the simulation stays custom
Phaser is doing the display, input normalization, and canvas lifecycle work. The robot behavior is not delegated to Phaser physics. The simulation is a small TypeScript system with fixed-timestep updates, explicit terrain cells, and predictable placement rules.
That split matters because this game is about trust. If a robot turns, falls, survives, or dies, I want the answer to come from readable logic rather than a stack of physics side effects that happen to look right until one level breaks the illusion.
The save system had to match the site
Bolt March is not a separate product with its own account story. It lives on wezen.tech, and the right account behavior is the same shared account already used by notes.wezen.tech. The alpha now uses that bridge for cloud progress while keeping local fallback for signed-out play.
That was worth doing early. A small personal site can still feel coherent when the account model is not fragmented. If someone signs in once, their notes and their game progress should feel like parts of the same place.
The campaign needed enough shape to be worth testing
A handful of tutorial levels is enough to prove the loop, but not enough to understand pacing. The current build now carries forty authored levels across Assembly Line, Foundry, Transit Grid, and Skyworks, so there is a real campaign to inspect rather than a single solved toy problem.
That also made the gaps easier to see. It became obvious where the game still needs stronger hardware validation, a clean TLS path on the public host, and more time on real phones. Those problems are easier to judge once the campaign has enough breadth to expose them.
What changed in this pass
This round tightened the game in the boring but necessary ways. Invalid placements now explain themselves. Pause behaves like an actual overlay instead of a state flip. Zoom is explicit and restrained. The debug switches expose collision, path direction, spawn cadence, and placed job state without turning the whole page into a developer tool.
That is the kind of work I like on side projects: the pieces that make the thing easier to understand, easier to trust, and easier to keep building without rewriting it every other day.