Contents
Battle Drones shows how far an AI-built browser game can evolve when repeated playtesting guides development. Its most distinctive feature is multiplayer that connects nearby devices through sound, without a dedicated game server.
Key Takeaways#
- According to Simon Willison, Battle Drones was built through 12 major revisions and 321 commits by coding agents, though he reviewed very little of the code himself.
- This browser-based RTS supports mobile and desktop devices and features 3D units, random maps, survival challenges, and AI opponents.
- Nearby devices can exchange game data through speakers and microphones. Testing of this multiplayer feature remains limited, however.
- The main lesson is to give coding agents measurable gameplay problems and check whether their changes actually improve play.
What You Can Play#
Battle Drones is a real-time strategy game in which you gather resources, build a base, and command ground and air forces. It runs in the browser and uses Three.js for its 3D graphics.
According to Willison’s October 20, 2026 post, the game features nine building types, seven ground vehicles, six aircraft, and three infantry units. Players can choose from six maps spanning five biomes or generate rotationally symmetrical maps from reusable seeds.
Start with Skirmish to learn resource management and the controls. In Last Stand, waves of attackers replace enemy bases, while AI vs. AI lets you watch the built-in AIs compete. A separate Agent vs. Agent mode lets language models control armies through tools, with logs and a debug viewer for examining their decisions.
Why Sound-Based Multiplayer Matters#
Multiplayer mode exchanges audio messages between devices within microphone range. Willison reports trying it between a laptop, an iPhone, and an iPad, but explicitly says he has had very little time to test it.
The practical benefit is a reduced hosting burden. A static browser game can be served without maintaining a dedicated multiplayer server, while nearby players communicate through their devices’ audio hardware. The game itself still needs to be delivered to the browser; sound handles the connection between players.
Treat this as an experiment in local multiplayer. The original article provides no measured figures for connection range, bandwidth, or reliability across environments. Its ability to handle background noise or extended play is also unconfirmed, so it needs validation before being adopted in another game.
What Improved the Gameplay#
According to Willison, the early version looked like an RTS but was not engaging. He credits a broad instruction—“make it much more fun”—with prompting the improvements. Claude then spent hours adding mechanics and running match simulations.
The result added opening strategies, battlefield objectives, wreckage salvage, and special attacks, giving players more choices and reasons to contest territory. According to the agent-written release notes, across 1,200 AI-versus-AI matches on Normal difficulty, the share still undecided after 25 minutes fell from 14% to 0.9%. The win rate for sides that had fallen behind by at least 800 scrap also reportedly rose from 24% to 46%. These are reported simulation results, not independent evidence that humans will enjoy the game.
The Archipelago map offers a more concrete design lesson. Capturing island objectives requires infantry carried by Condor transports, giving previously underused units a clear role. If a unit feels unnecessary, change the incentive for players to choose it. Simply adding more units can leave the problem unresolved.
How to Apply This Approach#
For a similar project, first make a single match playable and establish clear tests to check whether it works well. Battle Drones suggests four useful steps.
1. Implement resource gathering, construction, unit selection, and combat before adding more content. 2. Add an automated match mode so the agent can repeatedly test balance. 3. Describe specific problems, such as stalled matches or units opponents rarely use. 4. Play the game yourself and compare the experience with the reported test results.
For replays and synchronized multiplayer, make consistent simulation results an early requirement. Battle Drones encountered replay desynchronization caused by slight differences in browsers’ math functions. To address this, Claude replaced some functions, including Math.sin() and Math.cos(), with custom implementations.
What Still Needs Verification#
Willison describes the project as largely vibe-coded and says he reviewed very little of the TypeScript code. His own playtesting supports his judgment that it is fun, but it does not guarantee code quality, security, or compatibility across devices.
Costs also remain unclear. The development logs describe overnight runs and heavy token use, but give no total spending figure. If you try the same approach, set a budget and track usage before starting long-running agent tasks. Low hosting costs do not necessarily mean low development costs.
Next Step#
Play one Skirmish match in Battle Drones and record one specific moment that felt confusing or poorly paced. Turn that observation into your next development task.
Source: https://simonwillison.net/2026/Oct/20/battledrones/
Contents
