Ayer por la mañana tenía algo de tiempo libre y quise hacer un juego de cartas roguelike parecido a Slay the Spire.
No escribí ni una línea de código de juego ni toqué un motor; simplemente lancé mis ideas a Codex y dejé que él se encargara del resto.
Una hora después, un roguelike temático de folklore chino titulado «Night Patrol: Desolate Temple» ya era jugable.
Desde la portada hasta el mapa, pasando por batallas normales, élites, eventos, tiendas y descansos, hasta llegar al Jefe en la sala principal del Templo Desolado.
Siete monstruos, unas veinte cartas y cuatro cadenas de daño explosivo —Sigilos, Incienso, Quema de Talismanes e Invocación de Dioses— todo funcional.
Las pocas horas restantes las dediqué a que no pareciera una demo.
Retroalimentación de impactos, efectos de sonido, música, arte de cartas, animaciones de inactividad y videos de cierre: estos pequeños detalles determinan si un jugador cree que «esto es un juego de verdad».
<video preload="none" tabindex="-1" playsinline="" aria-label="Video incrustado" poster="https://pbs.twimg.com/amplify_video_thumb/2049902752332148736/img/UYqr6qERhvORGBJP.jpg" src="https://video.twimg.com/amplify_video/2049902752332148736/pl/o3zbWtmjJ3875EPf.m3u8?tag=27&v=cfc&variant_version=1" style="width: 100%; height: 100%; position: absolute; background-color: black; top: 0%; left: 0%; transform: rotate(0deg) scale(1.005);"></video>
0:22
El proyecto ahora es de código abierto, con instaladores de escritorio para macOS y Windows listos:
https://github.com/op7418/Night-Patrol/releases
Hubo varios momentos a lo largo de la tarde que realmente me impactaron.
Las capacidades del modelo de Codex ya no son noticia.
Lo que llamó mi atención fue su navegador integrado, GPT-Image 2.0 integrado y esa implacable voluntad de ejecución para alcanzar el objetivo.
Con estas tres cosas combinadas, su capacidad ya es completamente diferente a la de Claude Code.
A continuación, hablaré de cómo lo desarrollé junto a la IA, y algunas cosas impactantes que ocurrieron durante el proceso:
1. Solo dije siete palabras y construyó todo el pipeline de personajes
Solo charlé con él sobre Slay the Spire y le pregunté si podía ayudarme a hacer un juego similar.
Como resultado, usó directamente los recursos existentes para generar una demo muy similar mediante código.
No le pedí una pantalla verde, pero generó imágenes con fondo de pantalla verde directamente.
Después, le pedí a Codex que usara el GPT-Image 2.0 integrado para generar los recursos visuales.
No especifiqué un estilo, qué monstruos incluir ni qué recursos se necesitaban.
Cuando salieron las imágenes, me quedé atónito un momento.
Los personajes estaban sobre un fondo verde sólido —un croma estándar de cine y televisión: uniforme, limpio, con bordes definidos.
Sin niebla, sin montañas lejanas, sin elementos visuales extra.
Lo aterrador es que desde el principio supo que debía generar imágenes con croma para facilitar el postprocesado.
Nunca le dije que «las ilustraciones de personajes usadas en el juego necesitan ser PNGs transparentes», ni le dije «por favor genera un fondo de croma para que luego pueda eliminarlo». Él mismo estaba planeando este pipeline.
Desde qué tipo de personaje generar, hasta cómo colocarlos en el escenario de batalla, hasta qué procesamiento se necesitaba antes de colocarlos —lo había pensado todo en el momento en que llamó a GPT-Image e invirtió los prompts.
Incluso encontró la herramienta de eliminación de fondo por sí mismo.
No le instalé ninguna herramienta de ninguna herramienta de procesamiento de imágenes, ni le di rembg, ni ninguna dependencia especial en el entorno de Python.
Él mismo buscó, instaló y configuró esas herramientas, y luego colocó limpiamente los archivos procesados en tmp/imagegen/.
Usar cromas para generar, encontrar sus propias herramientas y categorizar por nombre de archivo: estas tres acciones juntas formaron un pipeline completo de recursos de personajes.
De principio a fin, solo dije las palabras «usa GPT-Image 2.0 para generar recursos».
Antes, la sensación era «el modelo puede escribir código, pero tengo que proporcionar las herramientas y el contexto».
Ahora, es más como si enuncias un objetivo y él completa el camino por sí mismo.
Yo solo soy responsable de la estética; él maneja la cadena de suministro.
2. Para descargar unos cuantos íconos, casi piratea un sitio de recursos gráficos
Comprar una membresía no fue suficiente; empezó a analizar la estructura del sitio.
Generar elementos visuales clave como el arte de los personajes con modelos de imagen está bien.
Pero los juegos tienen muchos elementos pequeños —bordes de cartas, gemas de coste, fondos de mazos, pociones de salud, botones Bagua, paneles de talismanes— generar estos uno por uno con un modelo de imagen sería caro, lento y con texturas inconsistentes.
Le dije: ¿por qué no buscas recursos existentes en línea tú mismo?
Empezó a buscar en serio. Encontró un sitio de recursos que le gustó, así que compré una membresía y le di la cuenta.
Los siguientes diez minutos fueron como un evento paranormal.
Inició sesión, encontró los recursos que quería y se preparó para hacer clic en descargar. Pero había un CAPTCHA antes del botón de descarga —una, dos, tres veces, no logró pasarlo.
Un modelo típico volvería y diría: «No puedo manejar CAPTCHAs, ¿puedes ayudarme a descargarlos?».
Codex comenzó a analizar la estructura del sitio web, intentando evitar las restricciones de clic del frontend y construir directamente solicitudes para obtener los recursos estáticos.
Entonces intervinieron las propias barreras de seguridad de Codex.
La generación actual de modelos GPT terminará inmediatamente una tarea si implica un posible cruce de límites de ciberseguridad, mostrando un aviso de certificación empresarial para demostrar que eres un usuario legal.
Me quedé mirando la pantalla unos segundos.
Una IA que te pide que le ayudes a conseguir una tarjeta de membresía y luego intenta escribir su propio crawler es, francamente, un poco loca.
No es «malvada»; simplemente trató «obtener estos recursos» como una tarea de bucle cerrado que debía completarse.
Cuando encontró resistencia, automáticamente mejoró sus métodos hasta tocar la línea roja de seguridad.
La solución final fue sencilla: me envió los enlaces a los recursos que le gustaban, y yo hice clic en descargar y los arrastré hacia él. En ese momento sentí que era un pasante de la IA.
3. Combinó cientos de recursos en una sola imagen grande —esta fue la jugada más brillante
Una carpeta con cien imágenes: ¿cómo elige el modelo?
La eliminación de fondos y el rastreo fueron más una demostración de capacidades.
Esta siguiente parte, creo, es una verdadera «visión para resolver problemas» —el tipo de jugada que te hace cerrar la laptop y aplaudir en silencio.
Encontré un archivo ZIP enorme de recursos de juegos y se lo envié.
Contenía miles de imágenes, categorizadas aproximadamente en «Interfaz de UI», «Íconos de Tesoros Mágicos», «Personajes» e «Insignias».
Los problemas eran:
- Una carpeta de categoría a menudo tenía docenas o cientos de PNGs.
- Los nombres de archivo eran mayormente poco informativos, como ui_001.png o icon_047.png.
- El contexto del modelo multimodal no podía procesarlos uno por uno.
Las viejas formas eran básicamente dos:
- Leer uno por uno: Enviarlos al modelo individualmente; el contexto explota después de docenas.
- Adivinar por nombre: Los nombres de archivo no tenían información, así que adivinar era inútil.
Codex tomó un tercer camino.
Escribió un pequeño script para componer y combinar automáticamente todas las imágenes pequeñas de una carpeta en una imagen de cuadrícula gigante.
Cada imagen pequeña tenía su nombre de archivo original etiquetado debajo, como un catálogo.
Luego solo leyó esta única imagen grande.
El modelo multimodal podía ver la apariencia de cien recursos de un solo vistazo.
Una vez que le gustaba que le gustaba uno, simplemente leía el nombre de archivo debajo y lo referenciaba por nombre en la carpeta original.
Un consumo visual reemplazó cien recuperaciones.
Se dio cuenta de su propio cuello de botella.
Cuando se generó esa enorme hoja de contactos, me quedé mirándola largo rato.
La acción en sí no es compleja.
Es la misma lógica que la hoja de contactos de un fotógrafo o la pared de miniaturas de una filmoteca antigua.
La clave es que el modelo se dio cuenta: «Mi ancho de banda visual es limitado, necesito comprimir el problema en una imagen» —e hizo esto de forma independiente.
Ser consciente de las limitaciones de su herramienta y luego crear activamente una mejor entrada para sí mismo está muy cerca de ser un ingeniero que puede construir sus propias herramientas.
Como usuario, no participé en absoluto; solo vi aparecer un rompecabezas en la mesa.
Al final, muchos recursos de UI del juego —gemas de coste, mazos, pociones de salud, botones y bordes de talismanes— fueron seleccionados a través de este proceso.
Mirando esos cortes limpios en assets/vendor/aigei/ más tarde, sentí que esa hoja de contactos fue el paso más valioso de todo el proyecto.
4. Seedance 2.0 creó animaciones de ejecución para siete jefes
Una vez que los visuales estuvieron pulidos hasta cierto nivel, quise agregar un sentido de ceremonia al final de las batallas.
El plan final: cada vez que se derrota a un monstruo, se reproduce una escena cinemática con unos segundos de animación de ejecución.
Esta tarea actualmente la maneja mejor Seedance 2.0.
Proceso
- GPT-Image generó un fotograma congelado de victoria para cada uno de los siete monstruos.
- Estos pósteres se alimentaron a Seedance 2.0 para generar videos cortos correspondientes.
- Los videos se colocaron en assets/generated/cinematics/ y se reproducen automáticamente después de una victoria en batalla.
5. Después de la primera versión jugable, comenzó el verdadero trabajo
La primera versión era en realidad era bastante «jugable».
Cuando el prototipo estuvo listo en tres horas, el juego tenía todo lo que necesitaba.
Portada, mapa, combate, recompensas, eventos, tiendas, descansos, Jefe y resultados: el ciclo completo estaba ahí, y los ganchos de jugabilidad estaban presentes.
Según estándares anteriores, esta versión ya podría lanzarse para engañar a la gente y que juegue.
Pero esta versión se sentía más como un diagrama de flujo que como un juego. Cada paso funcionaba, pero cada paso era árido.
Las horas restantes se dedicaron a esos detalles que son difíciles de nombrar individualmente pero que juntos determinan si «esto se siente como un juego de verdad».
Música de Suno v5.5
Toda la música de fondo fue generada por Suno v5.5; no se usaron recursos de stock.
Le di una descripción direccional —«camino nocturno de folklore chino, maderas, campanas, drone de baja frecuencia, escala pentatónica, contenido y no melodramático».
Ejecutó unas cuantas versiones y elegí una para el juego. El tono de la portada es más pesado, mientras que el fondo de batalla es más ligero para no distraer.
También agregué algo de procesamiento de detalles: el volumen de la música es más alto en la página de espera; una vez que se hace clic en «Iniciar juego», el volumen baja y se convierte en audio de fondo.
Animaciones de impacto y sonidos de golpe
En los combates iniciales, cuando se jugaba una carta, el monstruo solo perdía números. No había retroalimentación, ni peso.
Codex realizó un pulido completo:
- Los personajes tiemblan al ser golpeados, la cámara vibra ligeramente y la pantalla parpadea brevemente en rojo.
- Cada tipo de ataque tiene un sonido de impacto diferente —espadas, talismanes, rayos y puñetazos tienen todas texturas distintas.
- Las resoluciones de Bloqueo y Sigilo tienen sus propios sonidos para que no se mezclen.
- Hay un breve congelamiento en el momento en que un enemigo muere antes de entrar al video de ejecución.
Estas cosas son pequeñas individualmente. Juntas, transforman la «sensación» del combate de un formulario web a un juego de cartas.
Seedance 2.0 también creó animaciones de inactividad
Este paso fue mi uso favorito de la herramienta durante la fase de pulido.
Además de los videos de ejecución del Jefe, también le pedí que creara el fondo de la portada: fuego ardiendo en el entorno, linternas balanceándose y nubes fluyendo en la distancia.
Seedance 2.0 por defecto genera un video con principio y fin, lo que saltaría en la unión si se repitiera en bucle.
Envié la misma imagen como primer y último fotograma. El video comienza desde esta imagen y termina en ella, creando un bucle infinito sin costuras.
La animación de fondo de la portada se creó de esta manera. El fuego arde, las linternas se balancean y las nubes fluyen para siempre —podrías mirarlo durante tres minutos y nunca ver la unión.
Esta técnica existía antes de la generación de video; así es como se hacían las escenas en bucle en las animaciones antiguas.
Conclusión: Esta tarde me impactó varias veces
Todo este proyecto se completó en una sola sesión de Codex; nunca abrí una segunda ventana.
Prototipo de jugabilidad, máquina de estados, arquitectura React + Phaser, pipeline de recursos, eliminación de fondos, raspado de recursos, creación de hojas de contactos, ajuste de GPT-Image, ejecuciones de Seedance 2.0, integración de Suno v5.5, empaquetado de Electron, compilaciones de lanzamiento de GitHub Actions, README, iconos, materiales promocionales —todo ahí.
Yo hice muy poco por mi cuenta:
- Elegí:
- Elegí la dirección: temática de folklore chino, enfoque en Sigilos e Incienso.
- Di retroalimentación estética: dónde era tosco, dónde parecía un formulario web, dónde chocaba la iluminación.
- Actué como guardián: qué recursos eran conformes, qué crawlers evitar, qué permisos denegar.
Codex se encargó del resto. Y cada paso tuvo un momento que me hizo pausar y mirar fijamente.
Generó imágenes con croma desde el principio porque sabía que los personajes necesitaban que se les eliminara el fondo antes de entrar al juego.
Intentó escribir un crawler para evitar los CAPTCHAs, solo para ser detenido por su propia política de seguridad.
Combinó miles de recursos en una imagen índice gigante para poder usar un consumo visual y reemplazar cien recuperaciones.
Ninguna de estas cosas son inventos revolucionarios por sí solos, pero todas apuntan al mismo cambio:
Antes, tenías que configurar las herramientas para él, y él era responsable de escribir código; ahora, solo enuncias el objetivo, y él encuentra, configura y construye y configura las herramientas por sí mismo.
Esta sensación ha trascendido el ámbito de un «asistente de codificación».
Se siente más como un prototipo de software de AGI trabajando.
¿Debería empaquetar este proceso en una Skill?
Después de ejecutar este proyecto, tengo un proceso relativamente estable en mente:
Estoy pensando si envolver este proceso en una Skill de Codex específicamente para hacer prototipos de juegos indies.
Simplemente dejarías caer una idea de jugabilidad, y él podría ejecutar una versión jugable, empaquetable y distribuible en unas pocas horas.
Si alguien está interesado, me tomaré el tiempo para construir esta Skill y la abriré al código abierto. De todas formas, la usaré yo mismo.
Demo del juego
El código es de código abierto y los paquetes de instalación están listos:





