Entrenando a la IA - creación de escenarios de Mansions of Madness 001
Idea y contexto.
Para aprender bien las capacidades de la IA necesito probar muchas cosas, y no todas van a ser serias. Una de las ideas más locas que estoy probando es enseñar a Claude Code a crear escenarios para Mansions of Madness.
Mansions of Madness 2nd Edition 1 es un juego de mesa publicado por Fantasy Flight Games 2 que utiliza una app para guiar al jugador a través de un escenario narrativo. Como es habitual, la comunidad creó una aplicación llamada Valkyrie 3 que permite crear y jugar escenarios hechos por los usuarios.
Si te gusta el hobby, deberías probarlo, es maravillosa.
Mi objetivo aquí es abrir una instancia de Claude e introducir un prompt como:
“Crea un escenario basado en ‘El cuervo’ de Edgar Allan Poe, donde los jugadores necesitan evitar que un monstruo alado entre en la casa, el monstruo no ataca, solo persigue a los jugadores gritando ‘Nunca más’.”
El prompt será más grande, esto es solo un ejemplo, y luego, sentarme y esperar. En esta serie de posts hablaré tanto del proceso que intenté seguir como de los aprendizajes obtenidos.
Sesión 001
Primero quiero pedir disculpas, decidí empezar esta serie demasiado tarde y no guardé las capturas de pantalla para mostrar bien el proceso. Lo haré a partir de ahora.
Mi primer paso fue claro, abrí la app de Claude Desktop en mi máquina Windows y le pedí a Claude que leyera online las reglas del juego, solo del juego base, y la documentación de la app Valkyrie.
Una vez hecho esto, mi plan era crear un ciclo de iteración rápido (hacer un pequeño cambio y probar) para obtener feedback temprano, e intentar entender cómo yo estaba probando los resultados, para enseñar a Claude a autoverificar su trabajo.
Así que le pedí a Claude que creara un escenario de muestra con solo 2 losetas de terreno y 2 monstruos.
El resultado fue horrible, las losetas se colocaron al azar y los monstruos aparecieron en espacios vacíos. El proceso iba a ser largo…
Claude me explicó que no conoce los tamaños de las losetas, así que no puede colocarlas correctamente juntas. Tuve que entrar en la herramienta de edición de escenarios de Valkyrie para arreglar la colocación de las losetas y me di cuenta de algo:
La documentación de la app no contiene los tamaños porque la herramienta es visual, simplemente puedo arrastrar y soltar las losetas juntas. La documentación fue creada para humanos.
Una vez corregida la posición de las losetas manualmente, le pedí a Claude que revisara el cambio y aprendiera, para aplicarlo en el siguiente escenario de prueba. Gracias a nuestro cambio manual, Claude pudo crear el mismo escenario, pero con las losetas correctamente colocadas.
El siguiente paso fue pedirle a Claude que creara un escenario corto con entre 5 y 7 losetas enlazadas y una de ellas rotada. Así que Claude investigó el tamaño de las losetas tomando el control de mi ordenador, abriendo los archivos y usando el ratón para contar los píxeles de las imágenes de las losetas 🤦
La primera sesión terminó aquí con un aprendizaje claro, necesito cambiar a Claude Code, en la terminal, y dejar la app Desktop
Sesión 002
El segundo escenario de prueba mostró las losetas como se esperaba, pero las losetas no enlazaban correctamente la posición de las puertas entre losetas, así que nuestra nueva tarea era enseñar a Claude Code a detectar puertas y usar esa información para hacer escenarios más complejos e interesantes.
En el primer intento, Claude Code (CC a partir de ahora) colocó el token de exploración entre losetas, pero con un enfoque Norte, Sur, Este y Oeste. CC sabía dónde se conectaban dos losetas pero no sabía dónde estaban las puertas.
Le pedí a CC que analizara el arte de 1 loseta del escenario para intentar encontrar las puertas. El resultado fue… cercano a la realidad, la verdad, pero no lo suficientemente bueno. Discutiendo con CC, él estaba seguro de que el arte de las losetas (y las puertas) se colocaba en base a una cuadrícula de 7x3.5 casillas, CC incluso me insistió (y añadió en las notas del proyecto) que esta información había sido verificada dos veces. Pero mi ojo humano me decía que la cuadrícula para colocar bien las puertas era de 6x3.
Esta sesión fue más larga pero terminaré aquí porque sin capturas de pantalla este blog es muy aburrido, pero mis aprendizajes fueron realmente valiosos.
Aprendizajes
La documentación está hecha para humanos, y esto tiene que cambiar. El mundo avanza a toda velocidad para cambiar el rol del desarrollador, y la mayor parte del código va a ser generado por IA, así que la documentación necesita crearse teniendo en cuenta que un ser humano probablemente nunca la va a leer.
CC creía que la cuadrícula era 7x3.5 porque “estaba confirmado en un comentario en el código, leído en el código de Valkyrie en GitHub”. Como desarrollador, considero firmemente que los comentarios en el código son una señal de mal código, y este es un ejemplo perfecto. El comentario en el código era información desactualizada, pero CC lo consideró una fuente de verdad. Y ahora me estoy debatiendo entre mantener mi opinión y odiar los comentarios, o (como con la documentación) entender que el código va a ser generado por IA, así que los comentarios pueden ser una gran herramienta para ayudar a equipos trabajando en paralelo con varios proveedores de IA actualizando el mismo código.
Durante el proceso, CC creó varias herramientas en forma de scripts de Python para gestionar y verificar los archivos .ini usados por Valkyrie, y las imágenes. Las herramientas de análisis de imágenes también crearon muchas imágenes secundarias (las imágenes originales pero divididas en otras más pequeñas), también creó los archivos .md para las nuevas skills y muchas notas en distintos archivos .md. Cuando estaba a punto de hacer commit de mi trabajo a git, la estructuro de mi proyecto me resultaba completamente extraño. El aprendizaje aquí es hablar con CC al principio de cada proyecto para establecer dónde debe guardar CC sus herramientas y archivos temporales. Así como una política adecuada de limpieza de basura.
Cuando le pedí a CC que revisara el arte de las losetas, CC revisó el arte de las losetas, y todos mis tokens se consumieron en menos de 10 minutos. Las revisiones visuales son realmente caras y no necesito que CC las haga para enseñarle a crear escenarios. Mientras CC tenga la información disponible, cómo se consiguió no importa. Puede que esto rompa la regla de “enseñar a CC a crear escenarios”, o “dejar que CC aprenda solo”, ya que mi solución fue rellenar la información manualmente, pero el consumo de tokens es uno de los mayores problemas en las empresas de software hoy en día, así que es importante darse cuenta del impacto de un mal prompt.
Conclusión
Este primer intento de enseñar a Claude Code a construir escenarios de Mansions of Madness empezó como una de mis “ideas locas para aprender las capacidades de la IA”, y dos sesiones después, ya me ha enseñado mucho sobre cómo razona CC.
El patrón recurrente es claro: CC tiene confianza, y esa confianza no siempre está bien fundada. Confió en un comentario de código desactualizado como si fuera la verdad absoluta, “verificó dos veces” un tamaño de cuadrícula que estaba mal, y quemó alegremente mi presupuesto de tokens analizando el arte de las losetas píxel a píxel cuando un proceso manual de quince minutos habría bastado. Nada de esto hace que CC sea inútil, todo lo contrario, pero sí significa que mi rol no es solo “escribir el prompt y esperar”. Se parece más a trabajar con un desarrollador junior muy rápido, muy literal, que necesita un conocimiento que ninguna documentación refleja, la experiencia.
La lección real hasta ahora no es sobre escenarios, es sobre interfaces: los humanos escriben documentación para humanos, comentarios para humanos, herramientas para humanos, y nada de eso se traduce bien cuando el lector es una IA. Cerrar esa brecha, una loseta a la vez, está resultando ser el verdadero proyecto.
Lo siguiente: enseñar a CC a autoverificar los archivos .ini que genera, y construir una base de datos adecuada de posiciones de losetas/puertas para que deje de adivinar. Capturas de pantalla incluidas esta vez, lo prometo.
Gracias por leer