AgentsAutonomy & tool use
Simon Willison releases Battle Drones, a browser RTS built mostly by Claude Opus 5.5 with multiplayer over sound
Simon Willison's Battle Drones, a Command & Conquer-style browser RTS built largely by Claude Opus 5.5 over 321 commits, was tuned through more than a thousand agent-run simulated playtests and lets nearby devices play each other by exchanging game commands as sound.
From the Simon Willison article of October 20, 2026 and cited sources: A vague goal, "make it a lot more fun," led Opus 5.5 to work overnight in a multi-subagent "Ultracode" run. [1]
SOURCES[1] Battle Drones—a vibe coded RTS with audio-based… simonwillison.net
AI-assisted, not human-edited. Methodology Corrections Who owns this site
- What happened
- A vague goal, "make it a lot more fun," led Opus 5.5 to work overnight in a multi-subagent "Ultracode" run. [1]
- Original source
- Simon Willison article, independent perspective
- Brief by
- AT Pulse research desk AI-assisted; publisher and contact on the desk page
- When
- October 20, 2026 article published
- Covered
- Oct 21 edition
- Evidence
- 10 sources across 9 sites
- 1Battle Drones—a vibe coded RTS with audio-based…simonwillison.net
- 2I built a Command & Conquer style RTS called Battle…x.com
- 3Chirp Pong (Simon Willison, Oct 15, 2026)simonwillison.net
- 4simonw/battledrones on GitHubgithub.com
- 5daily.dev listingdaily.dev
- 6Substack repostsimonw.substack.com
RisingHow it’s measured
Hacker News · 7 likes · 3 comments
Reach blends public engagement (views, likes, comments, shares, stars) from the platforms where the story or its original source lives: YouTube, Hacker News, GitHub, Substack and similar. A video and the article written from its transcript share one score, taken from the video. Platforms with no data are left out rather than counted as zero, and the age of a story never lowers its score.

A vague goal, "make it a lot more fun," led Opus 5.5 to work overnight in a multi-subagent "Ultracode" run. Across more than a thousand simulated playtests, it added call-down powers, game modes and adaptive music. Across 1,200 AI-vs-AI matches, the share of games still undecided at 25 minutes fell from 14% to 0.9%. Comeback wins rose from 24% to 46%. Claude wrote those figures in release notes about its own simulations. They measure balance, not how much players enjoy the game. [1]
Multiplayer and replays depend on a deterministic TypeScript simulation that steps at a fixed 10 Hz from a queue of commands, so players exchange only commands. Small differences in sine and cosine results between Chrome and Safari broke replay sync. The fix was custom trigonometry functions, a cross-browser problem that has to be caught on purpose. [1] [4]
Audio multiplayer grew out of the earlier Chirp Pong test and sends commands between nearby devices as modem tones. Willison reports it working between laptops, iPhones and iPads after only brief testing. The tones gave a tester a headache, so a stateless WebSocket relay on Fly.io was added the same day for online play. [1] [2] [3] [4]
In an Agent vs. Agent mode, two language models play each other. Each one acts through tools that show only what its side can see through the fog of war, and the prompts and replays are public. This could become a cheap, replayable way to compare models, but there is no league table or scoring method yet. [4]
one developer shipped a large, playable game while reviewing almost none of the code. Implication: agent-run simulation could tune systems beyond games. Unreviewed code, heavy token use and player pushback against AI-made games limit commercial use.
Executive brief
Simon Willison asked Claude to "Make it a LOT more fun". The result is Battle Drones, a browser real-time strategy (RTS) game in the style of Command & Conquer. No independent review or testing of the game has been found.
Read the full section
Simon Willison asked Claude to "Make it a LOT more fun". The agent then spent hours running more than a thousand simulated playtests and rebalanced his game. Before that, Willison thought coding agents could make things that look like games but are not fun to play. The result is Battle Drones, a browser real-time strategy (RTS) game in the style of Command & Conquer. It took 12 versions and 321 agent commits, and he reviewed almost none of the code. Two nearby phones can play each other by sending game data as sound. The modem tones gave one tester a headache, so he added a WebSocket relay for online play the same day. No independent review or testing of the game has been found.
What changed and event timeline
First prototype
Willison started the game with Claude Fable 5 in Claude Code for Web. It used the Phaser 2D engine and sprites from OpenAI's image API. By his account it worked but was not fun.
"Make it a LOT more fun"
Opus 5.5 ran in "Ultracode" mode, where a script directs many subagents. The run took all night and included more than a thousand simulated playtests. It added call-down powers, game modes and adaptive music.
Chirp Pong
In an earlier test, two phones played a static-HTML Pong game by sending data through their speakers and microphones. This later became the basis for Battle Drones' audio multiplayer.
Public release with audio multiplayer
Willison published v12, which added a full audio modem. He says it worked between laptops, iPhones and iPads, but he had tested it only briefly.
More detail
Online multiplayer added
After the modem tones gave a tester a headache, Claude built a stateless WebSocket relay on Fly.io. Players join through room links or QR codes.
More detail
Capabilities and access
- It works offline as a Progressive Web App, and the code is Apache 2.0 on GitHub.
- Content: 25 unit and building types, six maps across five biomes, a random map generator, Skirmish, Last Stand, a Daily Op, mutators, the Goliath mech, and six AI personalities (post).
- Models used: mainly Claude Opus 5.5; Fable 5 for v1; OpenAI image models for sprites.
Read the full section
- Free to play in a browser. It works offline as a Progressive Web App, and the code is Apache 2.0 on GitHub.
- Content: 25 unit and building types, six maps across five biomes, a random map generator, Skirmish, Last Stand, a Daily Op, mutators, the Goliath mech, and six AI personalities (post).
- Models used: mainly Claude Opus 5.5; Fable 5 for v1; OpenAI image models for sprites.
- An Agent vs. Agent mode lets two LLMs play each other. Featured matchups include GPT-6 Luna, GPT-6 Astra, Claude Opus 5.5, Claude Haiku 5.5 and Gemini 4 Argon (repo).
Technical analysis for researchers and developers
- Determinism: The game simulation is pure TypeScript and steps at a fixed 10 Hz from a queue of commands.
- Relay: The server stores no state and forwards only player commands, about one message every 100–200 ms (repo).
- Assets: The 3D models are written entirely in TypeScript code, and the music is generated in code with no audio files.
Read the full section
- Determinism: The game simulation is pure TypeScript and steps at a fixed 10 Hz from a queue of commands. This supports lockstep multiplayer, where players exchange only commands, and lets replays be checked (repo). Claude had to replace
Math.sin/Math.coswith custom versions because Chrome and Safari returned slightly different results, which broke replay sync (post). - Relay: The server stores no state and forwards only player commands, about one message every 100–200 ms (repo).
- Assets: The 3D models are written entirely in TypeScript code, and the music is generated in code with no audio files.
- Agent battles: Each model works through tools that only show what its side can see through the fog of war. The prompts and replays are public.
Claims and evidence
- Fun improvements: In 1,200 AI-vs-AI test matches, games still undecided after 25 minutes fell from 14% to 0.9%.
- "Actually fun": This is Willison's own judgment from playtesting.
- "A first for an RTS": He hedges this as true "as far as I can tell".
Read the full section
- Fun improvements: In 1,200 AI-vs-AI test matches, games still undecided after 25 minutes fell from 14% to 0.9%. Comeback wins by a side 800+ scrap behind rose from 24% to 46% (post). These figures come from release notes Claude wrote about its own simulations. Nobody has checked them independently, and they measure balance, not how much players enjoy the game.
- "Actually fun": This is Willison's own judgment from playtesting.
- "A first for an RTS": He hedges this as true "as far as I can tell".
- Commit count: The post says 321 commits; the repo now shows 334, likely including later work.
- Corroboration: No independent review or testing has been found. daily.dev and the Substack only repost the article.
Context and prior work
- Data over sound: Georgi Gerganov's ggwave uses FSK (frequency-shift keying) with error correction. It reaches about 8–16 bytes/sec over roughly a metre (Fanatical Futurist). Willison cites ggwave and Siner as the only prior art he found.
- Earlier work: This builds on his Chirp Pong test and his ongoing vibe-coding series.
Read the full section
- Data over sound: Georgi Gerganov's ggwave uses FSK (frequency-shift keying) with error correction. It reaches about 8–16 bytes/sec over roughly a metre (Fanatical Futurist). Willison cites ggwave and Siner as the only prior art he found.
- Earlier work: This builds on his Chirp Pong test and his ongoing vibe-coding series.
Limitations, safety and contested findings
- Audio multiplayer: The high-pitched tones caused a headache. The game now shows a warning, and the repo says users find the tone unpleasant.
- Code quality: The code is essentially unreviewed. Willison calls the project too low-effort for a real indie release.
- AI games and players: Players are pushing back on AI-made games.
Read the full section
- Audio multiplayer: The high-pitched tones caused a headache. The game now shows a warning, and the repo says users find the tone unpleasant.
- Code quality: The code is essentially unreviewed. Willison calls the project too low-effort for a real indie release.
- AI games and players: Players are pushing back on AI-made games. Coverage of the June 2026 Steam Next Fest found 1,694 of 8,682 games (19.5%) disclosed AI content. That figure is self-reported, the disclosures were hard to find, and players could not filter AI games out (Indiecator; Naavik).
- Cost: Ultracode uses tokens very heavily, according to Willison.
Business and practitioner implications
- Open-ended prompts: A vague goal plus agent-run simulated playtesting improved game balance. That makes simulation-driven tuning a pattern worth testing beyond games.
- Hosting: A static site plus a relay that scales to zero costs at most about $2.19/month, according to Willison.
- Engineering choices: Lockstep multiplayer and replays need deterministic code that behaves the same in every browser.
Read the full section
- Open-ended prompts: A vague goal plus agent-run simulated playtesting improved game balance. That makes simulation-driven tuning a pattern worth testing beyond games.
- Hosting: A static site plus a relay that scales to zero costs at most about $2.19/month, according to Willison.
- Engineering choices: Lockstep multiplayer and replays need deterministic code that behaves the same in every browser. Agents can find these problems but may not flag them unless asked.
- Testing models: Agent battles that limit what each model can see could be a cheap, replayable way to compare models. There is no league table or method yet.
- Market risk: Players are pushing back on AI-made games, so publishing them commercially is risky.
The source trail.
Sources (10)
Battle Drones—a vibe coded RTS with audio-based multiplayer (Simon Willison)
simonwillison.netI built a Command & Conquer style RTS called Battle Drones, mainly using Claude Opus 5.5, which runs in the browser and includes device-to-device multiplayer over an audi
Related coverage; assess separately
x.com