← All posts
5 min read

MechAssault v2: rebuilding Lone Wolf from the disc up

The second attempt, in active development: a browser remake of MechAssault 2: Lone Wolf, built by agents that work from a durable ledger and the original game's own data instead of guesses.

Project: MechAssault v2TypeScriptThree.jsWebGPUAI AgentsReverse Engineering

MechAssault v1 taught me that an orchestrator agent left to hold the vision on its own will slowly lose it, and that an agent with nothing to reference will invent things. v2 is the attempt to fix both.

The target this time isn't a game inspired by MechAssault. It's a single-player browser remake of MechAssault 2: Lone Wolf, built from the original game's disc. It's still in active development, so this post covers where it stands today.

The MechAssault 2: Lone Wolf title screen running in the browser, with key art behind the logo and a Press Start button
The title screen, running in a browser tab.

What changed from v1

v1 failed in three ways: the vision decayed, there was nothing to reference, and the code was vibe-coded. Each one got a direct answer.

A durable ledger instead of a memory

In v1 the vision lived only in the orchestrator's context, and context compaction wore it down. In v2 the vision and every decision behind it live in a durable ledger outside any single agent's memory. When an orchestrator session ends, crashes, or gets compacted, the next one picks up from the ledger rather than from whatever the last session happened to remember.

That one change made the rest possible. Several orchestrator sessions have already handed the project from one to the next over the course of the build.

Roles instead of one agent doing everything

The orchestrator in v2 doesn't write code. It hands out work and decides what lands. Building, reviewing, and fixing are separate jobs done by separate agents, and the reviewer's job is to break the work rather than approve it.

The models have changed over the course of the build:

  • Orchestrator: Claude Fable 5.1, later Claude Opus 5.5.
  • Implementers and fixers: Claude Sonnet 5 at first, then Opus 5.5, and now Claude Sonnet 5.5 to keep costs manageable.
  • Reviewer: Claude Opus throughout. Catching problems is where the strongest model pays for itself.

Reference material instead of guesses

The single biggest difference: the original game is the source of truth. Models, maps, textures, HUD layouts, particle effects, sounds, and gameplay numbers all come off the original disc, decoded by tools written for this project. Nothing hand-authored stands in for data the disc already has.

When the disc doesn't say how something behaves, the original game as played is the reference. Each system gets a short written rule describing how the real game does it before any code is written.

That's why v2 looks like MechAssault 2. v1's effects were invented because the orchestrator had nothing to compare against. v2's effects are built from the game's own particle definitions.

The mission select screen listing GoCommando, Signs of Life and Deliverance, with a Deliverance map preview, Red and Blue team buttons, and a Start Mission button
Mission select. Compare it with v1's menu: this one had a vision to follow.
The Deliverance loading screen: a Base War briefing reading 'Destroy the enemy's generator while defending your own', with the map and both team bases marked
The Deliverance loading screen, built from the game's own HUD forms and text.

Clean code, enforced

v1's largest file was over 8,700 lines. In v2, strict quality gates run on every change, and the build fails if they don't pass. Size, complexity, duplication, and dead code are all held to hard limits that can only ever get tighter.

The numbers show the difference:

v1v2
Hand-written game code~95,000 lines~30,000 lines
Source files86241
Largest file8,780 lines499 lines
Test code—~86,000 lines

v2 has a third as much game code, spread across nearly three times as many files, and more test code than game code.

Where it stands

The current focus is making one map, Deliverance, fully playable: a Base War where red and blue AI teams fight to destroy each other's generator, with the player able to fight on foot, in a mech, or in a tank. Destruction, effects, and sound are coming together on that map. The campaign is on hold until Deliverance plays the way it should.

The Blood Asp on Deliverance

The best way to show where it's at is to take one mech out and mess around. These clips are all the Blood Asp, played on Deliverance, with the effects built from the game's own particle definitions.

The antimatter PPC: charge builds on the shoulders, then the shot lands in a magenta burst.
Low on hull: flames, glowing cracks, coolant spray and smoke, and it keeps smoking as it walks off.
Walking out of the red base onto Deliverance's flats.
Trading fire with the blue team's AI: lasers and missile blasts incoming, the PPC answering back.
Trees break and topple when a mech walks through them.

The roster

All 30 mechs in the garage are in and pilotable, pulled straight from the disc. Each one was piloted out to the same spot on Deliverance for this lineup:

  • Atlas

    Atlas

  • Belial

    Belial

  • Blood Asp

    Blood Asp

  • Bowman

    Bowman

  • Catapult

    Catapult

  • Corvus

    Corvus

  • Cougar

    Cougar

  • Hackman

    Hackman

  • Hellbringer

    Hellbringer

  • Kit Fox

    Kit Fox

  • Loki

    Loki

  • Mad Dog

    Mad Dog

  • MadCat

    MadCat

  • NovaCat

    NovaCat

  • Owens

    Owens

  • Prometheus

    Prometheus

  • Puma

    Puma

  • Ragnarok

    Ragnarok

  • Raptor

    Raptor

  • Raven

    Raven

  • Star Adder

    Star Adder

  • Stiletto

    Stiletto

  • Summoner

    Summoner

  • Thor

    Thor

  • Timber Wolf

    Timber Wolf

  • Uller

    Uller

  • Uziel

    Uziel

  • Vulture

    Vulture

  • Wendigo

    Wendigo

  • Ymir

    Ymir

All 30 mechs, seen from the pilot's chase camera.

The other maps already load from the disc too. These shots are from GoCommando, the first mission:

The pilot on foot on a grassy rise at night, looking out over the GoCommando city: lit office blocks, billboards, and mountains under a cloudy sky with a large moon
The pilot on a grassy slope above the GoCommando waterfront, with water, stepped concrete embankments, and tower blocks with lit windows behind
On foot in GoCommando at night. The terrain, buildings, sky, and water all come from the original level.

In about four weeks the project has gone through more than 3,000 commits, nearly all of it written by agents. There's no public build: the game's assets come off the disc and stay on my machine, so this is a write-up rather than something you can play.

So far it's going very well. v1 ended up as its own game, built on guesses. v2 is on track to replicate the original.

More to come as it develops.