Lilith.
⌕
Ilustración editorial: «Hazlo MUCHO más divertido» funcionó: Simon Willison hizo que Claude Code construyera un RTS jugable
Ilustración de Lilith · remezcla editorial

Simon Willison presentó el 20 de octubre Battle Drones, un juego de estrategia en tiempo real para el navegador al estilo de Command & Conquer. Apenas revisó el código: lo escribieron agentes de programación, sobre todo Claude Code. A diferencia de sus experimentos anteriores, dice, este sí es divertido de jugar.

Cuatro meses, 321 commits y un juego que su autor apenas ha leído

Willison empezó en julio con Claude Fable 5 y un encargo: un RTS para móvil en el que dos ejércitos de drones luchan por el territorio. Según él, la primera versión era una simple prueba de concepto y no tenía ninguna gracia. Claude generó los gráficos con la OpenAI Image Generation API después de que Willison le diera una clave de API en una variable de entorno. El proyecto está en TypeScript, un lenguaje que el autor apenas ha usado.

Hoy el juego suma 12 versiones grandes y 321 commits. Funciona en móvil y escritorio e incluye 9 edificios, 7 vehículos terrestres, 6 aeronaves y 3 tipos de infantería como modelos 3D que Claude construyó directamente en código con three.js. Tiene niebla de guerra, seis mapas en cinco biomas, un generador de mapas aleatorios, seis personalidades para la IA rival y un mecha gigante llamado Goliath. La música no sale de ningún archivo de audio: la genera el código y se intensifica cuando estalla el combate.

Lo más llamativo es el multijugador por sonido. Dos móviles o portátiles al alcance del micrófono sincronizan la partida con pitidos parecidos a los de un módem antiguo. Willison quería que el juego siguiera siendo HTML estático, sin un servidor que tuviera que mantener. Hasta donde él sabe, ningún RTS lo había hecho antes.

Un encargo vago funcionó porque el agente tenía algo que medir

El punto de inflexión llegó con la versión 4. Durante una cena, Willison defendió que los agentes de programación pueden construir algo que parece un juego pero no divierte. Después escribió desde el móvil a Claude Opus 5.5: «This game isn't fun enough yet. Make it a LOT more fun.» Lo lanzó en modo Ultracode, en el que Claude Code coordina con un script muchos subagentes a la vez. El trabajo duró desde la noche hasta bien entrada la mañana siguiente.

Mientras tanto, Claude jugó más de mil partidas de prueba simuladas y con los resultados reequilibró las unidades y añadió mecánicas nuevas. Según las release notes que escribió él mismo, en 1.200 partidas de IA contra IA la proporción de partidas sin decidir a los 25 minutos bajó del 14 % al 0,9 %. Las victorias del bando que iba más de 800 unidades de chatarra por detrás subieron del 24 % al 46 %.

Esa es la lección de verdad para quien encarga objetivos difusos a un agente. «Diversión», por sí sola, no dice nada, pero el agente la tradujo a cosas medibles: menos tablas y más remontadas. Los diseñadores de juegos usan métricas así desde hace mucho. Lo nuevo es que el agente las eligió solo, las comprobó en sus propias simulaciones y reescribió el juego en una noche. Con un encargo sin ninguna referencia medible, el mismo prompt probablemente se habría quedado en retoques cosméticos.

Lo que estaba en juego era poco, y acabó en dolor de cabeza, no en un fallo de código

Willison explica por qué podía permitirse no leer el código: el juego es un juguete y lo peor que puede pasar es un fallo en un experimento tonto. Su pareja, Natalie, desmontó esa idea. La primera vez que jugaron juntos con el multijugador por sonido, los pitidos agudos le dieron un dolor de cabeza horrible. Ninguna de las miles de partidas simuladas podía detectarlo. Willison añadió un aviso y pidió a Claude un multijugador online mediante un sencillo relé WebSockets en Fly.io, que no debería costarle más de 2,19 dólares al mes.

Otros límites se ven menos. Ultracode, según Willison, quema tokens «como si no hubiera un mañana». El determinismo que exigen las repeticiones y el multijugador tropezó con diferencias mínimas en los resultados de Math.sin() y Math.cos() entre Chrome y Safari, y Claude tuvo que sustituirlas por funciones propias. Además, el propio Willison dice que jamás presentaría el juego al Steam Next Fest: sigue siendo demasiado poco trabajo para un proyecto indie serio. Para el software empresarial, donde alguien tiene que responder del código, Battle Drones es una demostración de capacidad más que un manual.

Una liga de modelos y los juegos sin servidor mostrarán adónde lleva este estilo

La versión 10 añadió las agent battles: dos modelos de lenguaje juegan entre sí mediante una herramienta que solo les muestra lo visible tras la niebla de guerra. Willison ya ha grabado un duelo entre Claude Haiku 5.5 y GPT-6 Luna y quiere convertirlo en una clasificación completa. Una liga así podría ser un benchmark de decisiones agénticas más interesante que muchas pruebas estáticas, porque el modelo tiene que planificar con incertidumbre y en tiempo real.

La segunda señal será si otros juegos adoptan el multijugador por sonido en HTML estático. Willison ha encontrado pocos precedentes, como la biblioteca ggwave de Georgi Gerganov. La tercera es una polémica que ya está en marcha en Steam, donde los jugadores piden un filtro para juegos hechos con IA. Willison dice que ve un camino para que los juegos vibe coded se tomen en serio. Lo decidirá alguien con mejor gusto y más constancia de la que exige un solo prompt.

El veredicto de Lilith

Claude jugó más de mil partidas simuladas y pulió el juego en una noche. El fallo que ninguna simulación encontró lo descubrió Natalie, a quien unas pocas rondas de pitidos de módem le dejaron la cabeza a punto de estallar.

Dejo el enlace externo para el final. Primero una explicación concisa aquí — sin ir a cazar por la web de otros.

Fuente original ↗ ↗