Spectator view
A 3D scene with an automatic camera director and a match HUD. Any seed can be replayed, paused or fast-forwarded.
Simulation · Game AI
Three-a-side AI fighters play a bomb-plant mode in a 3D spectator view, while the same simulation runs headless to measure balance across hundreds of matches.

A duel as the camera director frames it: six AI fighters, an automatic camera, and a panel for every fighter. The game itself, final build.
The context
A match between AI fighters has no correct output to test against. The useful question is whether the game is balanced, and that cannot be answered by watching one match.
My contribution
Built a deterministic fixed-step simulation, with seeded randomness, a 60 Hz step and physics stepped in a fixed order, that the browser renders and a headless runner batches. Built the fighters' perception, cover, routes, morale and weapon timing.
The product
Four parts follow: a match as a spectator sees it, the map, replays, and the balance laboratory.
A 3D scene with an automatic camera director and a match HUD. Any seed can be replayed, paused or fast-forwarded.
Perception, cover, routes, morale and weapon timing produce the contest: simulation logic, not chat agents.
Headless batches report team wins, the attack and defense split, round outcomes and each fighter’s impact; every shot is logged with its probability factors.
470 logged matches across three batches. In the final 100 matches, attackers won 44.9% of rounds, inside the balance gate, while one team still took 63% of matches, an edge recorded rather than hidden.
At a glance / simplified product view
The spectator view
Complete local build · not released
Two teams of three fighters play a bomb-plant mode while a camera director decides what to show: an establishing shot as a round opens, a side-on frame when two fighters duel, slow motion on a kill, an orbit when the match ends. These pictures are the game itself, run on 1 October 2026 from a copy of the final build. The fighters are simulation logic; no language model is involved.








Crossfire District
The fighters all carry a bolt-action rifle and a knife, so the map decides the contest: open ground to cross, high positions to hold and two bomb sites to fight over.


Seeds
A match is fully decided by its seed, so the same seed always plays the same match. A moment can be reopened from the page address: which seed, how many seconds in, paused or live, and which fighter the camera follows.

Headless runs
The same simulation runs without graphics, a hundred matches at a time. Every shot is logged with the factors behind its hit chance, and a batch reports who wins, how rounds end and what each fighter contributed. These are real outputs of the runner, produced on 1 October 2026.




Where it stands
Complete as a local build. Two runs of the same seed already produce byte-identical results (checked 1 October 2026); making that a committed test is next.