Skip to content

An RTS Built Without Writing a Single Line of Code—and Barely Reading Any: How Simon Willison Handed 321 Commits to Claude Code and Answered 'Make It More Fun' With 1,200 Self-Play Matches

Renowned developer Simon Willison has released "Battle Drones," a browser-based RTS, without writing almost any of the code himself. He handed roughly 321 commits to Claude Code—and when he asked it to "make it more fun," the agent answered with 1,200 self-play matches. A look at the development met

An RTS Built Without Writing a Single Line of Code—and Barely Reading Any: How Simon Willison Handed 321 Commits to Claude Code and Answered 'Make It More Fun' With 1,200 Self-Play Matches

Well-known developer Simon Willison has released "Battle Drones," a real-time strategy game that runs in the browser. It has the polished feel of something like Command & Conquer, yet he says he barely wrote a single line of the code himself. He handed the bulk of the roughly 321 commits to the coding agent Claude Code to get it finished.

Much of the development was driven by Claude Opus 5.5 and "Ultracode" mode, which orchestrates multiple subagents. Willison candidly writes that "I barely reviewed the code, and it's written in TypeScript, a language I've hardly ever used." As a concrete example of how to use a coding agent, it's a case study with plenty worth examining.

"Make It More Fun"—and the Agent Answered With 1,200 Self-Play Matches

The turning point came with the fourth version. The instruction Willison gave was a single abstract line: "This game isn't fun yet. Make it much, much more fun."

In response, the agent automatically ran more than 1,200 simulated matches overnight, tuning the strength and cost of units. The probability that a team at a heavy resource disadvantage could come back and win reportedly rose from 24% to 46%.

The human hands over only the goal—"fun"—and the agent playtests on its own, running a loop of verification and adjustment. This has a different feel from the conventional approach of spelling out detailed specs and having them implemented.

3D Overnight, Map Generation in 45 Minutes

There are more moments that show the sheer speed. The main milestones are as follows.

  • Going 3D (version 5): The entire game was ported to Three.js, with 3D models generated procedurally. Done overnight.
  • Random maps (version 11): Using up the remaining tokens, point-symmetric map generation with five biomes was implemented in about 45 minutes.
  • Overall scale: 9 building types, 7 ground vehicles, 6 aircraft, 3 infantry types, and 6 maps. Some of the sprites were generated with OpenAI's image API.

The game modes are extensive too: skirmish, a survival-wave mode called "Last Stand," AI-vs-AI spectating, an 8-mission campaign, and even a versus mode where separate LLMs battle each other. In that versus mode, the design has each model fight through a tool that passes it "only the non-visual state within its field of view."

Serverless Multiplayer That Syncs Over "Sound"

One eye-catching feature is a multiplayer mode that syncs two devices using sound over the microphone. With no server in between, the devices exchange state through chirp sounds.

Before building it, he first made a bandwidth-measuring tool called "Radio Probe" to check whether enough data could be sent over an audio channel. When he actually tried it with his family, though, "the high-pitched modem sounds gave the other person a terrible headache," so he separately built a conventional multiplayer mode using WebSocket. That relay server runs on Fly.io's cheapest tier and scales down to zero when there's no traffic, so the cost is expected to stay under $2.19 a month.

There's one more quiet but important touch. Chrome and Safari produce very slightly different results for standard math functions, which caused replays to drift out of sync partway through, so he replaced them with a custom, deterministic implementation.

Where It Pays Off for Business

What this case shows is a shift in which the range of "people who can build things" widens. Even in a language and genre he had almost no experience with, handing over a goal and a verification mechanism was enough to produce something that works.

Prototyping internal tools, testing hypotheses, building throwaway prototypes—this seems well suited to a way of working where "one person supervises the creation of a lot of software." The approach of grinding things down through overnight automated runs can also be seen as the idea of swapping human wait time for machine compute time.

The Line the Author Drew Himself

At the same time, it's worth noting that Willison himself draws a careful line.

He writes that "I still can't shake the guilt about building software this way" and that "in a field where I have so little experience, I don't feel I've earned the right to make something this good." He also states outright that he barely reviewed the code.

Furthermore, he says he won't submit the game to Steam events. The reason: he doesn't want to line it up in a venue flooded with "low-effort" generated output. And he frames why he can tolerate this style of building: "because all that's at stake is winning or losing a game, not the safety of data."

Turned around, this means that the method of leaving things to an agent without review still carries concerns—quality assurance, maintenance, and a hollowing-out of the builder's own understanding. Behind the dazzling results lies the question of how to draw these lines. The stance of deciding for yourself how far it's okay to "leave it all to the agent" offers a useful reference point when bringing this into real-world work.

References: Simon Willison, "Battle Drones - a vibe coded RTS with audio-based multiplayer" / AI News for October 21, 2026 (aiweekly.co) / Battle Drones: What 12 Iterations of 'Make It More Fun' Reveals (DEV Community) / Battle Drones: Claude Code RTS With Audio Multiplayer (explainx.ai)