45 puntos por GN⁺ 2025-07-05 | 3 comentarios | Compartir por WhatsApp
  • Aunque es un desarrollador de software con 20 años de experiencia, era su primera vez haciendo un juego y completó "Tower of Time", un tower defense basado en Phaser.js, usando un agente de codificación con IA
  • El objetivo era experimentar con la viabilidad real de la IA para el desarrollo de videojuegos, y documentó en GitHub el código, todos los prompts de IA y todo el proceso de trabajo
  • Más del 95% del código fue escrito por IA, conectando varias herramientas como Augment Code, Cursor y Claude Sonnet 4
  • El juego ofrece una propuesta distintiva con rebobinado del tiempo, varios tipos de torres, sistema de gestión de energía y enemigos que aparecen por oleadas
  • Con transmisiones en vivo, uso de recursos de arte y sonido, además de lecciones aprendidas y consejos prácticos del desarrollo, sirve como material de aprendizaje útil tanto para principiantes en juegos como en IA

Resumen de Tower of Time

  • Este proyecto se realizó con el objetivo de probar si es posible hacer desarrollo de juegos real con herramientas de codificación con IA
  • Aprendió por primera vez Phaser.js, un motor de juegos en JavaScript, participó en Beginner's Jam Summer 2025 y completó 'Tower of Time' en 25 a 30 horas
  • Registró en GitHub todo el proceso de desarrollo, todos los prompts, el código, la documentación y el enlace para jugar

Introducción al juego

  • Tower of Time es un juego de tower defense con temática de viajes en el tiempo, donde el jugador debe detener enemigos que llegan en oleadas y, en momentos críticos, puede rebobinar el tiempo para rediseñar su estrategia
  • Combina varios tipos de torres (básica, francotirador, ralentización, splash, etc.) con un sistema de energía (usado para construir torres y rebobinar el tiempo)
  • Características principales
    • Rebobinado del tiempo: en momentos desfavorables, permite volver a un estado anterior y reorganizar la estrategia defensiva
    • Variedad de torres: se pueden crear distintas estrategias defensivas colocando torres con características diferentes
    • Gestión de energía: un elemento de administración de recursos que obliga a pensar bien en qué gastar la energía
  • Controles
    • Compatible con teclado/gamepad (movimiento: flechas/stick, acción: espacio/botón del gamepad, rebobinar: retroceso/trigger)

Experimento de codificación con IA y proceso de desarrollo

  • Aproximadamente el 95% de todo el código fue escrito con IA (Claude Sonnet 4, OpenAI, Augment Code, Cursor, etc.)
  • Todos los prompts principales, prueba y error, y los resultados finales quedaron registrados en el repositorio como PROMPTS.md
  • Ventajas de la generación automática de código con IA: prototipado rápido, automatización del trabajo de código repetitivo y facilidad para documentar
  • Limitaciones y precauciones: la IA tiende a generar código en exceso; cuando surgen problemas concretos de implementación, hace falta rediseñar prompts o hacer rollback; se recomienda usar logs de depuración

Lecciones aprendidas del desarrollo

  • Incluso solo con codificación asistida por IA, sí es totalmente posible completar un juego entretenido
  • La calidad de los prompts, proporcionar contexto claro y una estrategia de depuración son muy importantes
  • Hace falta revisar continuamente para que la cantidad de código no crezca innecesariamente

Stack tecnológico

  • Motor: Phaser 3 (v3.90.0) + Phaser Editor v4
  • Lenguaje: TypeScript
  • Herramienta de build: Vite
  • Recursos de arte: itch.io, con algunos ajustes manuales
  • Sonido: freesound.org

Probar en el navegador: Tower of Time

3 comentarios

 
softer 2025-07-07

Parece que será una buena referencia.

 
ifmkl 2025-07-06

Yo también estoy usando la IA a fondo para crear un juego web.

 
GN⁺ 2025-07-05
Comentarios de Hacker News
  • Da bastante gusto leer uno por uno los prompts usados en el desarrollo
    Los textos sobre “casos exitosos de vibe coding” muchas veces crean la ilusión de que, con varios agentes, una orquestación compleja de código y reglas generadas por LLM, basta una sola línea de prompt como “haz un tower defense con rebobinado del tiempo y sin fallas ni bugs” para que el juego aparezca mágicamente
    Pero los prompts que realmente se usaron en el proyecto coinciden con la forma que mejor funciona para programar con IA
    Dividir una idea clara y bien pensada en cientos de problemas pequeños, y dar guías arquitectónicas concretas en las partes realmente importantes, es lo que resulta efectivo

    • Como alguien que combina los roles de technical lead y product owner, diría que esta también es la forma correcta de trabajar con humanos
      El 70% de mi trabajo consiste en convertir una petición abstracta de un ejecutivo como “un juego de torres con viaje en el tiempo, sin bugs” en una serie de prompts con una visión arquitectónica sólida como contexto, para que el equipo pueda trabajar sin pisarse y manteniendo un alto nivel de abstracción

    • Intenté hacer un juego HTML simple del juego de mesa Just One, pero ni dándole prompts repetidamente a cuatro LLM pude arreglar un bug donde se mueve el campo de entrada
      Todos dicen que implementan juegos completos de una sola vez, y yo ni siquiera puedo corregir el movimiento del textbox, así que me sorprende

    • Después del prompt de “sin vulnerabilidades de seguridad, sin bugs”, también hace falta “sin alucinaciones”
      Es una condición básica para principiantes en IA

    • La forma que mejor me funciona con IA para programar es hacer un ‘one-shot’ con las funciones básicas o el esqueleto del gameplay, e ir construyendo encima de eso de manera iterativa
      Si el resultado del one-shot no se ve bien de inmediato, lo corrijo enseguida con otro prompt y sigo reintentando hasta conseguir una base aceptable

    • Estoy totalmente de acuerdo con ese enfoque
      De hecho, mi post reciente también se basa en esta idea
      Si haces que la IA escriba primero la especificación antes de programar, reduces la carga de que una persona tenga que escribirla desde cero, y eso aumenta mucho la probabilidad de que realmente exista una spec

  • Llevo más de 20 años en la industria del software, y siento que la mayoría de nuestros colegas siguen siendo bastante escépticos con la programación con IA
    Hace poco desarrollé principalmente con IA una app grande de unas 34,000 líneas, y la eficiencia aumenta exponencialmente según la calidad de las instrucciones que le das, la estructura de la interacción y cuánto cuidas el resultado de salida, incluyendo correcciones de rumbo
    Te deja pensando: “¡al final es igual que cualquier otra herramienta!”
    Pero esta herramienta tiene muchísimo más apalancamiento que cualquiera de las supuestas “herramientas 10x” que me había topado hasta ahora
    Lo que la mayoría de los escépticos no está viendo es que no hay que tratar estas herramientas como algo completamente externo
    Si intentas explicar el objetivo de forma vaga y delegarlo todo, te va a salir mal
    Tal vez algún día la IA pueda leer directamente nuestra mente, pero todavía no estamos ahí
    Por ahora, su verdadero valor está en ayudarte a aclarar tus ideas, aprender cosas nuevas y resolver rápido las partes tediosas
    Para obtener el máximo apalancamiento, hay que integrar bien esta herramienta dentro de tu propio proceso de pensamiento

    • Tengo mucha experiencia programando, pero en juegos no había hecho nada desde Hunt the Wumpus en la preparatoria; recientemente empecé a crear un juego nuevo con ayuda de IA
      La IA cumple básicamente tres roles
      (1) Herramienta de aprendizaje: aunque yo no conozca la terminología, entiende bien lo que quiero preguntar, me da un punto de partida y hasta me cuenta cosas que ni sabía que no sabía; ese es el rol más importante
      (2) Resolver tareas repetitivas o aburridas: comentarios de código, archivos de configuración y otras cosas que yo podría hacer, pero que solo me harían ir más lento
      (3) Búsqueda: parecido al punto (1), la IA entiende qué es lo que realmente quiero y se encarga del filtrado o las recomendaciones
      Puedes delegarle el “pensar”, pero no hace falta
      No es más inteligente que un humano; es más bien como una FPU que simplemente es más rápida y sabe más cosas

    • Según los estándares de HN soy bastante escéptico, pero en la práctica sigo empujando la adopción de IA en la empresa, y ahora mismo estoy escribiendo este comentario mientras le pido cosas a Claude
      Mi escepticismo viene de la brecha entre cómo se “vende” la IA hoy y lo que realmente hace
      Todas las soluciones de IA, sobre todo los agentes, producen resultados inútiles sin la guía de alguien con experiencia
      En realidad casi no tienen nada de “autónomo”
      Incluso la persona que acuñó el término ‘vibe coding’ dice que la industria está haciendo las cosas al revés
      Omitir que estas herramientas son fantásticas pero necesitan control fuerte es, en la práctica, mentir

    • En los últimos meses yo también he llegado a una conclusión parecida
      Antes dejaba comentarios críticos sobre la IA, pero las herramientas más recientes sí han mejorado muchísimo
      Cosas que antes me tomaban semanas ahora salen en cuestión de horas
      Eso sí: hay que pensar bien los prompts, dividir el trabajo al detalle e integrarlo bien con el IDE
      La parte más revolucionaria aparece cuando trabajas con librerías o frameworks totalmente nuevos
      Antes buscaba cómo usarlos y luego adaptaba ejemplos de código; con IA, las explicaciones son mucho más intuitivas y las alternativas mucho más variadas, y eso a menudo me sorprende
      Para quienes todavía siguen escépticos, ya es momento de volver a probarlo

    • Un ejemplo del apalancamiento 10x podría ser el lenguaje
      Antes se decía que Lisp y otros lenguajes te dejaban hacer más, más rápido; ahora además puedes reducir la cantidad de código que escribes tú mismo mientras generas resultados en lenguajes rápidos y de alto rendimiento
      El problema es que hay que revisar con mucho cuidado las partes del código generado que no se pueden verificar fácilmente
      Igual que los lenguajes con gran poder expresivo terminaron permitiendo que gente sin planificación previa produjera codebases caóticas, lo mismo puede repetirse con las herramientas de IA
      Pero donde de verdad me ahorra tiempo no es tanto al escribir código totalmente nuevo, sino al integrar o mejorar código viejo con código nuevo
      Ahí sí hubo un gran salto en depuración
      En vez de limitarme a meter print como antes, ahora puedo copiar y pegar el código y preguntarle a la IA “¿por qué la salida no es esta sino aquella?”, y obtengo rápido causas probables y alternativas
      Esto es especialmente valioso en tareas como SQL, IaC o scripts de build, donde es difícil conectar un depurador

    • Otra cosa es que la curva de aprendizaje y el techo de dificultad son muchísimo más altos de lo que uno pensaría
      Hay una diferencia enorme entre usar Claude Opus con un framework complejo de automatización y simplemente copiar/pegar en GPT-4o dentro del navegador

  • Me gustó que publicaras el proceso de desarrollo de forma transparente y compartieras también los prompts, así que te dejé una estrella en GitHub

  • Tanto el código como el resultado final se ven hermosos
    Seguro no fue solo IA; también debiste involucrarte bastante directamente
    Yo dejé de programar por mucho tiempo y, por recomendación de amigos, hice algo de código simple usando IA
    Lo que terminé fue algo como reventar Bubble Wrap y un silenciador (un botón que quita el sonido)
    Bubble Popper
    Silencer

    • Lo probé en Chrome para Android, pero las burbujas no revientan bien y el contador tampoco sube de 0
      Me pregunto si piensas aceptar PRs
  • Los juegos indie me parecen un caso de uso excelente para la IA aplicada al código
    El bajo riesgo y su naturaleza orientada a la diversión encajan perfecto
    El primer commit incluye mucho código, pero todavía no aparece PROMPTS.md
    Por ejemplo, EnergySystem.ts ya existe en el primer commit, pero luego en PROMPTS.md parece como si la IA lo hubiera creado desde cero
    Me da curiosidad si podrías explicar con más detalle esa parte en el historial del repositorio
    Enlace al primer commit

    • Como este proyecto fue una entrega para una game jam con fecha límite de una semana, en los primeros 2 o 3 días no usé control de versiones, así que ese trabajo terminó apareciendo como un solo commit grande
      Tampoco fui anotando los prompts en el momento; después de terminar el juego revisé el historial de la herramienta de chat que usé y copié todo al archivo PROMPTS.md
      Si quieres ver cómo se creó el proyecto, la mejor forma es leer el archivo de prompts de principio a fin
      Por ejemplo, el archivo EnergySystem.ts fue una parte totalmente nueva que la IA creó a partir de un prompt de “quiero implementar un subsistema de energía”, después de que ya estaban terminados el pathfinding de enemigos, el spawning y el disparo de torres
  • Es la primera vez que escucho de una herramienta llamada Augment Code
    Me da curiosidad saber qué hace, por qué la elegiste, cómo se diferencia de herramientas competidoras y si realmente la recomiendas por experiencia de uso

    • Sumándome a esa pregunta, también me gustaría saber si el OP usó Augment Code dentro de Cursor, cómo funciona esa combinación y qué ventajas tiene
      También me da curiosidad si pagó ambas herramientas
  • Me impresionó y me motivó que hayas dejado registro de los prompts
    En mi experiencia, el ‘vibe coding’ a veces avanza rapidísimo y otras veces se vuelve desesperantemente lento
    Si tienes instrucciones concisas y claras, revisas rápido el código y entiendes la arquitectura, de verdad puedes acelerar el desarrollo

  • Yo también hice en su momento un tower defense, y hace poco estuve pensando en usar IA para generar nuevas waves o incluso ajustar el balance
    Para que la IA pueda ‘sentir’ el juego, me parece que haría falta un protocolo que convierta en tokens el estado visible del juego en pantalla
    El terreno, las posiciones de las entidades del juego y otros atributos que el jugador pueda ver
    Meter todo en un autoencoder no me convence mucho, pero tokenizar listas por elemento del juego sí podría tener potencial
    Si el game engine proporcionara la imagen de pantalla y además expusiera directamente los tokens a la IA, esta podría entender mucho más a fondo lo que está ocurriendo en la partida
    No estoy seguro de cuánto dataset haría falta para aprovechar bien esos tokens, aunque quizá con el espacio de embeddings actual ya se pueda representar en solo unos cuantos tokens
    Si existiera un set de entrenamiento con logs del juego y evaluaciones de diversión por parte de usuarios, podrían salir datos muy interesantes
    Incluso sería posible identificar clústeres de preferencias de jugadores y crear juegos distintos para varios tipos de público

  • Gracias por compartir este workflow
    Yo también estoy pensando en introducir trazabilidad y transparencia en mis flujos de trabajo con LLM
    Si compartes y dejas historial de los prompts, tienes la gran ventaja de poder ver de un vistazo cuál era el problema esencial que el desarrollador intentaba resolver al principio, cómo fue cambiando y qué problemas nuevos aparecieron en el camino
    Qué proyecto tan genial
    Post sobre uso responsable de LLM

  • Llevo más de 20 años en tecnología, y últimamente estoy haciendo varios experimentos con Gemini-cli para gamificar una herramienta de pruebas de integración para apps empresariales
    Al combinarlo con un servidor MCP, veo que los mejores resultados salen cuando se descompone el problema paso a paso y se le da más claridad al prompt
    La IA puede equivocarse o entrar en bucles, sobre todo en cosas como el routing de una app, y en esos casos ayuda mucho abordarlo con una actitud activa de ‘pair programming’
    Otra cosa que noté es que ahora es mucho más fácil mantener principios como evitar duplicación de código
    De lo contrario, es fácil que la IA cambie solo una parte y deje fuera archivos relacionados
    Esto aplica no solo a la lógica de programación, sino igual al UX y al comportamiento general de la app
    Con IA, trabajos que antes me tomaban semanas ahora puedo terminarlos en unas horas y hasta disfrutándolo
    Poder darle personalidad a Gemini y afinar el archivo GEMINI.md para reutilizarlo tal cual entre varios dispositivos es una ventaja enorme