
Codex, con GPT-6 Astra, creó un clon jugable de Dune 2000 en HTML, CSS y JavaScript en 46 turnos, es decir, 11 h 16 min de trabajo del agente. El juego tiene sprites generados, 34 avisos de voz en francés y 122 tests, a cambio de 54 mensajes y 12 capturas de pantalla para corregir sus errores. La sesión sale por unos 196 $ a precio de API, cubiertos aquí por una suscripción a ChatGPT.
En Google, la respuesta generada para «crear un juego con IA» propone pedirle un minijuego en HTML a ChatGPT o a Claude. Quise ver qué da un proyecto más pesado, un clon de Dune 2000 confiado durante tres días a un agente de código.
Dune 2000 es el juego de estrategia en tiempo real desarrollado por Westwood Studios y lanzado en 1998, remake de Dune II. El agente es la aplicación de escritorio de Codex, con el modelo GPT-6 Astra configurado con el esfuerzo de razonamiento xhigh. Las cifras que siguen salen de su registro de sesión, un archivo JSONL de 1,3 GB, y de los tests del proyecto, ejecutados de nuevo el 14 de septiembre de 2026.
El prototipo final se ejecuta aquí debajo, en tu navegador. Sus 51,6 MB solo se cargan al hacer clic en «Probar».
Clone de Dune 2000 : le prototype de Codex et GPT-6 Astra
Le prototype tel que Codex l'a laissé le 9 septembre 2026 : une escarmouche Atréides contre Harkonnen, à la souris et au clavier. Rien ne se charge avant votre clic.
Protocolo
Construit avec l'application Codex et le modèle gpt-6-astra en effort xhigh, du 6 au 9 septembre 2026 : 46 tours, 54 messages, 11 h 16 min de travail de l'agent. Compilé par Vite sans modifier le code du jeu, chemins des ressources rendus relatifs pour l'hébergement.

El proyecto se ejecuta en un sandbox aislado (iframe sandbox y CSP): sin acceso al sitio, a las cookies ni a tu sesión. Nada se carga antes de tu clic.
El prompt inicial
El primer mensaje tenía 66 palabras. Aquí está, traducido del francés, sin más retoque que la corrección de las erratas.
Quiero que crees un clon de Dune 2000 en HTML CSS y JavaScript basándote en el proyecto OpenRA como ayuda, eres libre de generar los sprites que quieras y que necesites, incluidas las animaciones de estos. Quiero un prototipo jugable de una partida 1v1 Atreides contra Harkonnen. El proyecto OpenRA está en la carpeta /Projets/OpenRA-bleed.
OpenRA es un motor libre de juegos de estrategia en tiempo real, escrito en C#, que hace funcionar Dune 2000 y los primeros Command & Conquer. Astra no portó su código. Sacó de él las reglas del mod d2k, costes, economía y cadenas de requisitos, y luego escribió una simulación en JavaScript independiente del renderizado, que se puede probar en Node y se muestra con Phaser 3.90.
No le di ninguna indicación sobre cómo organizar el trabajo. Astra leyó por su cuenta los skills del plugin Game Studio publicado por OpenAI (web-game-foundations, phaser-2d-game, sprite-pipeline, game-ui-frontend, game-playtest) y el skill imagegen, que genera las imágenes en Codex. Son archivos SKILL.md que el agente carga antes de actuar, según el principio que detalla nuestra guía de Agent Skills.
La sesión se ejecutó sin sandbox y sin peticiones de aprobación (danger-full-access, aprobaciones en never). Astra podía abrir Chrome, instalar paquetes npm y escribir en cualquier parte del disco, sin ninguna de las protecciones descritas en nuestro artículo sobre lo que bloquea el sandbox de Codex.
Treinta y un minutos para una primera partida
El primer turno duró 31 min 30 s, con 25 llamadas a herramientas. Astra generó los sprites de los edificios, la cosechadora, los tanques y la infantería, y luego programó la recolección de especia, la energía, las colas de producción, el combate y una IA harkonnen que ataca por oleadas. La niebla de guerra, el minimapa, la selección con recuadro y el movimiento de ataque con la tecla A ya estaban en ese turno.
Terminó con once tests de simulación, pruebas en Chrome controladas por Playwright y una partida automatizada que gana en la dificultad «Découverte» (Descubrimiento). El turno costó el equivalente a 5,96 $ a precio de API.
La partida funcionaba, pero todavía no se parecía a Dune 2000. Mi segundo mensaje enumeraba lo que faltaba: animaciones, cañones de tanque que giran, más texturas de suelo, unidades propias de los Harkonnen y una construcción más rápida. En 32 minutos, Astra separó chasis y torretas para apuntar en 360°, dibujó un ejército harkonnen negro y rojo con quad y Devastator de dos cañones, e hizo que cada edificio tardara de 4 a 6 segundos en levantarse, con cimientos, andamio y grúa. El proyecto tenía entonces 17 tests.
Cuarenta y seis turnos en tres días
Un turno empieza con mi mensaje y termina con la respuesta de Astra. Entre ambos, el agente encadena por su cuenta comandos, generaciones de imágenes, capturas del navegador y tests. Envié 54 mensajes, adjunté 12 capturas de pantalla, a menudo anotadas directamente sobre la página del juego en el navegador de Codex, e interrumpí 4 turnos.
| Día | Turnos | Trabajo del agente | Principales peticiones | Tests al final del día | Coste a precio de API |
|---|---|---|---|---|---|
| 6 de septiembre | 20 | 5 h 01 min | animaciones, 157 tiles de terreno, ocho direcciones para la infantería, gusanos de arena, cursores, primeros sonidos de ElevenLabs | 56 | 83,86 $ |
| 8 de septiembre | 23 | 5 h 51 min | interfaz del juego original, voces en francés, Carryall, seis edificios y sus unidades, texturas, decorados, losas de hormigón | 119 | 100,53 $ |
| 9 de septiembre | 3 | 24 min | losas de una casilla colocadas arrastrando | 122 | 11,62 $ |
Astra añadió tests a cada funcionalidad sin que yo pidiera ni uno. El contador pasó de 11 a 17, 24, 29, 33, 41, 44, 51, 56, 67, 69, 75, 85, 90, 106, 111 y 119, y luego a 122 el 9 de septiembre. Ejecutados de nuevo el 14, los 122 tests de Node pasan en 2,1 segundos. El proyecto contiene también 24 escenarios de navegador, uno por cada funcionalidad importante, y 16 scripts que preparan las imágenes y los sonidos.
Dónde se equivocó Astra
Una corrección que rompe los desplazamientos
En el turno 12, avisé de que los sprites de algunos tanques se solapaban. Astra midió vehículos que llegaban a 30 píxeles unos de otros cuando su chasis mide más de 60, y dio a cada uno un espacio de colisión a su tamaño. Un asalto de doce vehículos harkonnen, con zoom al 165 %, validó la corrección, y los 51 tests pasaban.
Cinco turnos después, las unidades se separaban demasiado y algunas se negaban a pasar entre dos edificios con hueco más que suficiente. Astra encontró dos causas, una de ellas su propia corrección. Las colisiones cubrían toda la diagonal de los sprites, y la cuadrícula de navegación tapaba pasos. La reparación llevó 24 min 54 s y 32 llamadas a herramientas, con una cuadrícula de 16 píxeles, una huella en el suelo por vehículo y unidades que se apartan para dejar pasar. El test del turno 12 medía el solapamiento de los chasis y nada más, así que no podía ver esta regresión.
Lo que se pierde al interrumpir
El 8 de septiembre, un mismo mensaje pedía cosechadoras distintas para cada casa, un Carryall que las llevara de vuelta a la refinería, refinerías que descargaran una sola cosechadora a la vez, y seis edificios del juego original con sus unidades. A los seis minutos, interrumpí ese turno para enviar una captura de la cosechadora original. Astra volvió a dibujar la cosechadora en ocho orientaciones, y nada más.
En el mensaje siguiente tuve que escribir «No has hecho», seguido del Carryall y de los muelles de descarga olvidados. La respuesta de Astra cabe en una frase: «Tienes razón, terminé los sprites sin añadir la logística pedida». El mismo día, una anotación sobre unas montañas pequeñas reutilizadas como piedras en la arena se perdió del mismo modo con un turno interrumpido, y la copié de nuevo tres turnos más tarde. La logística, por su parte, llevó 35 minutos y 40 llamadas a herramientas, y el proyecto pasó a 85 tests.
Imágenes que rehacer
Hubo que rehacer varios lotes de imágenes. En el turno 36, los iconos de los seis edificios nuevos se parecían todos y no tenían el acabado de la trampa de viento dibujada dos días antes. Rehacerlos uno a uno, a la vez que se integraban las unidades nuevas, llevó 47 min 54 s y 67 llamadas a herramientas, por 16,16 $ a precio de API, el turno más caro de la sesión.
Astra también detectaba defectos antes que yo. Sus primeras hojas de sprites de infantería en ocho direcciones mostraban vistas demasiado parecidas entre sí, y las rehízo antes de integrarlas. En el turno 41, dos generaciones de texturas, la roca y el pedregal, volvieron sin imagen, y las lanzó de nuevo.
Cuando Astra comprobó el juego original
Varias veces, Astra fue a leer el manual de Dune 2000 antes de aplicar una petición. Yo quería saber si el juego original asociaba un Carryall a cada refinería. Astra respondió que no, citando las páginas 16, 17 y 45 del manual de 1998. Cada refinería entrega una cosechadora, traída por un Carryall, y los Carryall de transporte se construyen aparte, en la fábrica de alta tecnología. Releí esas páginas y dicen exactamente eso.
La noche del 8 de septiembre, pedí poder construir sobre la arena colocando losas de hormigón. Astra recordó primero que el juego original reserva las construcciones a la roca, donde las losas protegen los edificios del desgaste, y luego aplicó mi variante. Un edificio colocado sobre roca desnuda empieza dañado, un emplazamiento cubierto por completo de hormigón le da todos sus puntos de vida, y el centro de construcción inicial se asienta sobre nueve losas. Los gusanos de arena rodean ese hormigón, aunque esté sobre la arena, y al día siguiente reduje la losa a una casilla, colocada con un clic o arrastrando, a 5 créditos la casilla.
Efectos de sonido y voces generados con ElevenLabs
Los primeros sonidos los sintetizaba el código. En el turno 13, pedí pasar por ElevenLabs con un skill. Astra instaló el skill oficial sound-effects de ElevenLabs y preparó un archivo .env.local excluido de Git para la clave. La primera clave fue rechazada (401 invalid_api_key). La segunda, válida durante 24 horas, produjo 20 efectos con el modelo eleven_text_to_sound_v2, convertidos a WAV mono con FFmpeg.
El 8 de septiembre llegaron 34 avisos de voz en francés, desde «Alerte! Notre base est attaquée» (¡Alerta! Nuestra base está siendo atacada) hasta «Commandant, votre base est opérationnelle» (Comandante, su base está operativa). Como la voz francesa de la biblioteca de ElevenLabs estaba reservada a los planes de pago, Astra usó una voz multilingüe estándar con eleven_multilingual_v2, y luego hizo transcribir los 34 archivos con Scribe v2 para comprobar cada frase. Los avisos pasan por una cola de prioridad, bajan la música y se muestran como subtítulos. Doce efectos de sonido de vehículos llegaron en el turno 39.
La música no se generó. Command of the Scorched Plain es un archivo MP3 que aporté yo, reproducido en bucle con su propio volumen. Todos los sonidos se sirven desde el proyecto, sin ninguna llamada a la API durante la partida, y la caducidad de la clave no afecta a su reproducción.
Tiempo, tokens y coste
Cada respuesta del modelo deja una línea token_usage_record en el registro de sesión, guardado en ~/.codex/sessions/. Este comando suma el total sin cargar todo el registro en memoria:
jq -c 'select(.type == "token_usage_record") | .payload.usage' \
~/.codex/sessions/2026/09/06/rollout-2026-09-06T13-20-25-01a07672-bb68-7500-b23a-db1fc7ccbe3e.jsonl \
| jq -s '{reponses: length, entree: (map(.input_tokens) | add), cache: (map(.cached_input_tokens) | add), sortie: (map(.output_tokens) | add)}'{
"reponses": 856,
"entree": 120107006,
"cache": 116244736,
"sortie": 822700
}| Medida | Clon de Dune 2000 |
|---|---|
| Periodo | del 6 de septiembre a las 13:23 al 9 de septiembre a las 11:26 (hora de París) |
| Trabajo del agente | 11 h 16 min en 46 turnos |
| Respuestas del modelo | 856 |
| Llamadas a herramientas | 800 |
| Compactaciones del contexto | 15 |
| Tokens de entrada | 120.107.006, de los cuales 116.244.736 leídos en caché (96,8 %) |
| Tokens de salida | 822.700, de los cuales 264.688 de razonamiento |
| Coste a precio de API | 196,00 $ |
El cálculo sigue la tarifa de GPT-6 Astra publicada en OpenRouter y consultada el 14 de septiembre de 2026, es decir, 10 $ por millón de tokens de entrada, 1 $ en lectura de caché y 50 $ de salida por debajo de 272.000 tokens de contexto. La ventana de Codex tenía un tope de 258.400 tokens, así que todas las peticiones quedan en ese tramo. Eso da 38,62 $ de entrada sin caché, 116,24 $ de caché y 41,14 $ de salida.
No pagué nada por consumo. Codex funcionaba con mi suscripción a ChatGPT, que descuenta el uso de una cuota, y este importe sirve de referencia. Sin caché, solo los tokens de entrada habrían costado 1.201 $, casi ocho veces los 154,87 $ contabilizados. Una corrección del cursor, en el turno 4, llevó 1 min 24 s y 0,86 $. Para situar GPT-6 Astra frente a Claude Fable 5.1 en un ejercicio más corto, consulta nuestro comparativo en three.js.
Qué contiene la carpeta
El proyecto final tiene 41 archivos de código fuente (3.261 líneas, 332 KB), 956 líneas de tests y 2.172 líneas de scripts. La carpeta public/ sirve 227 imágenes PNG, 57 WebP, 32 archivos WAV y 35 MP3, y once archivos JSON guardan los prompts de las imágenes generadas. El prototipo no usa ningún archivo de Dune 2000: sus sprites, ilustraciones y sonidos se produjeron para él.
Es una escaramuza en solitario contra la IA, sin campaña, sin multijugador y sin partidas guardadas. Las reglas de OpenRA se adaptaron cuando yo lo pedía, como el hormigón sobre la arena o la producción en paralelo, donde dos fábricas dividen por dos el tiempo de fabricación de un tanque y tres lo dividen por tres. El mismo agente construyó después un RPG en una tarde con un método muy distinto, descrito en crear un juego con ChatGPT, un RPG al estilo EarthBound.
Lo que hay que recordar
- Codex y GPT-6 Astra produjeron un juego de estrategia en tiempo real jugable en 46 turnos y 11 h 16 min de trabajo del agente, con 54 mensajes míos para corregir el rumbo.
- OpenRA aportó las reglas de base, y el manual de 1998 zanjó la cuestión del Carryall y la de las losas de hormigón.
- Una interrupción borra las peticiones del turno en curso. Dos veces hubo que reenviarlas.
- Los tests pasaron de 11 a 122 sin que yo los pidiera, y ninguno vio venir la regresión de los desplazamientos del turno 17.
- La caché decide la factura. El 96,8 % de los tokens de entrada se releyó a 1 $ el millón en lugar de 10 $, para un total de 196 $ a precio de API.
Errores frecuentes
npm run test:pathfinding aquí, antes de validar.~/.codex/sessions/…/rollout-….jsonl. Guárdala en .env.local, excluido de Git, y dale al agente solo el nombre de la variable.danger-full-access, sin aprobaciones. Reserva ese ajuste para una carpeta desechable, sin ninguna clave de producción a mano.

