Ir al contenido principal

Vive Coding: Ludus Subterra

 

 
 Este verano descubrí un solitario llamado Scoundrel. Es un juego de cartas para una persona, con aire de roguelike, creado por Zach Gage y Kurt Bieg en 2011. Se puede jugar con una baraja de póker normal.

Aquí podéis encontrar las reglas en español: Reglamento de Scoundrel.

Ayer por la tarde me animé a intentar programarlo con vibe coding. No sabía cuánto iba a tardar, pero tenía ganas de probar. Antes de empezar, tenía claras algunas cosas:

  • Usaría HTML, JavaScript y CSS.
  • ChatGPT me ayudaría con la programación.
  • Generaría las imágenes con Nano Banana.
  • Si añadía música, buscaría recursos gratuitos en internet.

El vibe coding consiste en contarle a una IA qué quieres crear, probar lo que va generando y guiar los cambios. La IA ayuda con el código, pero sigue haciendo falta tomar decisiones, revisar el resultado y corregir lo que no termina de encajar.

De la idea al juego

La idea era adaptar Scoundrel a una página web. La baraja tiene 52 cartas: picas y tréboles son monstruos, los diamantes son armas y los corazones, pociones.

La primera versión ya permitía jugar una partida: barajar y repartir cartas en habitaciones, luchar contra monstruos, equipar armas, recuperar vida y avanzar hasta ganar o perder. La página se hizo con HTML y CSS, y la lógica del juego, con JavaScript.

Fui describiendo cómo quería que funcionase y probando las distintas versiones en el navegador. Después, según lo que veía, pedía ajustes o aclaraciones. Ese ir y venir entre la idea, el código y las pruebas fue una parte importante del proceso.

Poco a poco, más completo

Cuando el juego básico ya funcionaba, empecé a pulirlo y a completar algunos detalles de las reglas. Añadí ajustes para móviles, moví el botón para escapar de una habitación y corregí cosas de la interfaz y la lógica.

También incorporé algunas funciones para darle más vida al proyecto:

  • Guardado de partidas y tabla de mejores puntuaciones en el navegador.
  • Música MIDI, reproducida desde el propio navegador.
  • Imágenes y animaciones para los cambios de habitación y los finales.
  • Un registro de los acontecimientos de cada partida.
  • Documentación de las reglas y de cómo está implementado el juego.

En el repositorio de GitHub se pueden ver la primera versión y los cambios que fui haciendo después. Primero quería conseguir que el juego funcionase; luego fui puliéndolo a medida que lo probaba.

¿Y cuánto tiempo llevó?

En total, le dediqué unas cuatro horas. No significa que la IA trabajara sola durante ese tiempo: tuve que decidir qué quería hacer, explicar las reglas, probar los resultados y orientar los cambios. 

La IA puede ayudar a escribir código más rápido y a encontrar distintas soluciones, pero las instrucciones iniciales no siempre contemplan todos los casos. En un juego de cartas, por ejemplo, hay que decidir qué pasa si dejas una carta para la siguiente habitación, cómo se desgasta un arma o cuándo termina la partida. Revisar esos detalles también forma parte del trabajo.

 
 

¿Merece la pena probarlo?

Una de las cosas que más me ha gustado del vibe coding es lo rápido que permite llegar a algo que puedes abrir y probar. Pero tener una primera versión no significa que esté todo hecho: toca jugar, encontrar cosas que no se entienden, pulir la interfaz y comprobar que las reglas coincidan con lo que hace el código.

Ludus Subterra es un proyecto pequeño y personal. No pretende demostrar que ya no hace falta saber programar, pero sí que, con una idea clara y la ayuda de una IA, se puede llegar a un prototipo jugable en unas pocas horas.

Podéis probarlo aquí.

Algunos amigos ya me han ayudado a probarlo y, por ahora, parece que funciona bien. Si lo probáis y encontráis algo que se pueda mejorar, ya sabéis dónde estoy. 

 Nos vemos pronto. 

Entradas populares de este blog

Un bot con Telegram en Termux

En las últimas semanas he retomado un par de ideas que tuve hace algunos años: por un lado la idea de hacer un Bot con el que hacer operaciones a través de comandos específicos. En concreto me gustaría hacer poder realizar comandos de inversión en bolsa (de manera ficticia) por otro lado desplegar la aplicación en un móvil con Termux (emulador de Linux para Android) Así que os cuento los pasos que he hecho para realizar estas tareas. Creación de Bot con Telegram Busca el contacto @BotFather (es el bot oficial de Telegram para crear otros Bots). Pulsa en Iniciar o escribe /start para comenzar. Escribe el comando: /newbot BotFather te pedirá que le pongas un nombre visible a tu Bot. Ejemplo: Nombre: MiBotJava Luego te pedirá un username único que termine en Bot. Ejemplo: Username: MiBotJava_bot Si el nombre de usuario está disponible, te dará un mensaje de éxito. Obtén el token Después de crear el Bot, BotFather te dará un mensaje como este: Done! Congratulations on your new bot. You wil...

Transpilando que es gerundio

Si que llevaba tiempo sin pasarme por aquí, madre mía como esta esto de descuidado... A ver si me animo y como propósito de 2025 escribo un poco más (que no es díficil). He empezado un par de cursos y el primero ha sido uno de TypeScript, ya sabéis que me gusta mucho JavaScript y he decidido echarle un ojo. Pero, ¿qué es TypeScript? TypeScript es un lenguaje de programación que se creó como una especie de "superpoder" para JavaScript. Básicamente, es JavaScript dopado con esteroides, ya que agrega características que lo hacen más robusto y fácil de usar, especialmente en proyectos grandes. Una de las grandes ventajas de TypeScript es el tipado estático, que nos permite definir qué tipo de datos estamos manejando, lo que ayuda a evitar errores que en JavaScript podrían ser difíciles de detectar hasta que es demasiado tarde. En otras palabras, te ayuda a “prevenir fuegos” en el código antes de que sucedan. Una de las cosas que hace especial a TypeScript es que sigue siendo Java...

Un sola cuenta de Gmail y muchas direcciones de correo

¿Tienes una cuenta de Gmail? Seguramente más de una... Google tiene una funcionalidad poco conocida, pero muy útil: puedes modificar tu email con puntos (`.`) y con el signo más (`+`) para adaptarlo a tus necesidades y conseguir varias direcciones de correo con solo una cuenta. Los puntos no importan (en Gmail) En Gmail, los puntos que pongas en tu dirección no cambian nada . Es decir, si tu correo es: lukeskywalker@gmail.com También recibirás los mensajes que se envíen a: - luke .skywalker@gmail.com    - l.u.k.e.s.k.y.w.a.l.k.e.r@gmail.com - luke.sky.walker@gmail.com ¡Y todos llegarán a la misma cuenta:  lukeskywalker@gmail.com ! Esto puede servir para crear una versión ligeramente distinta de tu dirección, por ejemplo, si ya usaste tu correo real y necesitas registrarte con una "nueva". El signo + Ahora viene lo realmente interesante: el signo `+`. Con él puedes añadir “alias” a tu correo sin dejar de recibir los mensajes. Por ejemplo, si tu correo es: leiaorgana@gmail....