Takafumi Horiuchi

Generación de tu propio Pokémon en el mundo

Resumen

A partir de seis palabras introducidas durante el juego, la IA genera una especie nueva de Pokémon. Después de unos minutos, esa nueva especie aparece en la hierba, y el jugador puede encontrarse con ella, capturarla y ponerle un apodo. Se creó un prototipo de investigación que ensambla en el momento no solo la apariencia y el nombre, sino también el tipo, los valores de especie, las habilidades y los datos que se manejan dentro del juego.

En el prototipo, se conectaron la conversación, la entrada de palabras, la generación en segundo plano, los encuentros en estado salvaje, la captura y el nombramiento en una sola experiencia sin detener el juego. Las nuevas especies se registran como razas que los sistemas de juego existentes pueden manejar, no solo como imágenes.

Lo que se puso en el centro de esta iniciativa no fue el propio modelo generativo. Es un 'marco de generación' en el que los humanos diseñan las condiciones para mantener el equilibrio del juego y la coherencia estética, y solo permiten que la IA explore dentro de ese rango. Además, se examinó de forma preliminar jugando uno mismo para ver si realmente surge apego hacia una creación propia.

Pregunta: Si es único, ¿nace el apego?

En los juegos, existe la diversión de elegir un personaje, desarrollarlo y ponerle un nombre para convertirlo en un "ser único para uno mismo". Sin embargo, ese punto de partida se encuentra dentro de las opciones preparadas por los desarrolladores. ¿Sería más fuerte el apego cuando, gracias a la IA generativa, se pudiera crear un ser único del propio jugador desde el mismo punto de partida?

Para verificar esta pregunta, no es suficiente generar solo una imagen. Es necesario que la entidad generada entre en el mundo del juego, se encuentre, sea atrapada y pueda seguir siendo utilizada posteriormente. Por eso, se prepararon dos entradas donde la participación del jugador es diferente. Al hablar con el abuelo, se genera sin entrada; al hablar con la abuela, el jugador elige seis palabras. El método de generación de esa partida se determina según con quién se habló primero.

El propósito de este prototipo no es llegar a una conclusión sobre el apego. Se trata de crear una base para integrar los productos en una experiencia de juego normal y encontrar condiciones que puedan compararse en el futuro.

Flujo del juego

A continuación se muestra el flujo de "generación de compromiso" en el que el jugador elige palabras. Se habla con una anciana en el Bosque Toka y se eligen seis palabras en la "conversación fácil" que originalmente existe en el juego. A medida que se continúa jugando, la generación avanza y, cuando está lista, se escuchan gritos. Al entrar en la hierba, aparece una nueva especie, que se puede capturar con la misma operación que los Pokémon salvajes normales. El nombre, tipo, valores de especie, movimientos, sprites de batalla frontales y traseros, e iconos de la mano se generan cada vez que se ejecuta. Se puede comprobar toda la secuencia de acciones también en Video de demostración.

Una pareja de ancianos de pie en el bosque Touka. En la ventana de conversación aparece:
Comienza cuando hablas con la anciana.
Pantalla de entrada de un diálogo sencillo titulada «Criatura que imaginaste:». Las palabras BEAUTIFUL, ATTACK y FIRE están ingresadas.
Con el 'diálogo fácil' que ya existe en Esmeralda, se transmiten seis palabras.
Jugador de pie junto a un matorral en el bosque. En la ventana de conversación aparece
La generación tarda unos minutos en la PC. El sonido anuncia que la preparación está completa.
Pantalla de batalla. Un lagarto rojo con llamas en la cabeza se enfrenta al jugador. Se muestra el texto: '¡Un FLAMEREL salvaje ha aparecido!'
El lagarto de tipo fuego FLAMEREL aparece desde la hierba que se mueve.
Durante la batalla, se están lanzando Poké Balls hacia FLAMEREL.
Al igual que otras especies, se puede atrapar con una Poké Ball.
Pantalla de nombrar que pregunta por el apodo de FLAMEREL. Está escrito GGG.
Al igual que otras razas, se le puede poner un apodo.
Pantalla de mano. La especie generada tiene un ícono especial y está alineada junto a tres Pokémon normales.
Al igual que otras razas, tienen un ícono exclusivo y se alinean en el inventario.
Pantalla de información del Pokémon FLAMEREL. Tipo fuego, habilidad Mar Llamas, personalidad traviesa, y se muestra que se encontró en el Bosque Touka a nivel 7.
Al igual que con otras razas, la pantalla de estado también funciona correctamente.

Problema de diseño: si se genera libremente, el juego se rompe

Que la IA pueda inventar un nuevo personaje y que ese personaje funcione dentro del juego son problemas distintos. Si sus habilidades son demasiado altas, se rompe la dificultad; si su tipo y sus técnicas no encajan, es difícil de entrenar. Si su apariencia es demasiado compleja, al convertirlo en un sprite de 64×64 píxeles se vuelve imposible reconocer su forma.

Por otro lado, si se fija todo, no tiene sentido que algo diferente surja cada vez que se ejecuta. Lo que se necesitaba no era eliminar la libertad de la IA, sino separar las partes que deben protegerse como juego de las partes que pueden permitir cambios.

Por lo tanto, se trasladó el objeto del diseño no a un solo Pokémon, sino a un espacio capaz de generar Pokémon. Los humanos definen los objetivos, restricciones, prohibiciones y métodos de verificación, y la IA concreta las opciones dentro de ese marco. Esto fue un intento de probar el diseño basado en restricciones de Mi filosofía de diseño como un prototipo funcional.

Enfoque: diseñar las condiciones de generación, no los productos generados

No se permite que el LLM escriba texto libre, solo debe completar los elementos determinados como nombre, tipo, valores de raza, movimientos, complexión y color. La salida no se adopta tal como está, se verifica mediante un validador. Si hay infracciones, se devuelve al modelo qué regla se rompió y se vuelve a generar hasta que se cumplan las condiciones.

  1. Los seres humanos establecen los límites. Hacer que el equilibrio del juego, la forma legible en la pantalla y las expresiones que se deben evitar sean reglas que se puedan inspeccionar.
  2. La IA concreta los candidatos. Sugerir valores de los ítems permitidos utilizando las palabras del jugador como pista.
  3. La máquina verifica las reglas. Determinar automáticamente valores numéricos, combinaciones de técnicas y expresiones prohibidas.
  4. Solo dar retroalimentación sobre las infracciones. Los candidatos que no cumplan con los requisitos serán devueltos con una razón y regenerados.

Restricciones para proteger el juego. El total de valores de especie se estableció en un rango de 280 a 360, y también se pusieron límites superiores e inferiores para cada capacidad. Las habilidades se extrajeron de la fuente del juego y se limitaron al tipo de esa especie o al tipo normal. Además, se excluyeron movimientos de un solo golpe mortal, autodestrucción, daño fijo y movimientos excesivamente fuertes, y se verificó el número de movimientos de ataque y la presencia de movimientos que coincidan con el tipo. La tasa de captura y la velocidad de crecimiento se fijaron para que las diferencias debidas a la generación se mantuvieran dentro de un rango que se pueda comparar.

Restricciones para proteger la apariencia. Se eligieron las formas corporales de entre las opciones que permiten mantener el contorno incluso en sprites pequeños, y también se limitaron el vocabulario de colores y características. Se excluyen rasgos humanos, sangre, armas y texto. Por último, se deben agregar siempre al comando de generación de imágenes condiciones para evitar fallas, como 'solo un cuerpo', 'cuerpo entero' y 'no crear extremidades adicionales'.

En un registro, el modelo presentó por primera vez una propuesta con un valor total de estadísticas de 380. El marco detectaba incumplimientos y promovía la regeneración, y finalmente convergió a una especificación de 320. Lo importante no es que los buenos resultados aparezcan por casualidad, sino que se diseñó un proceso que no adopta resultados fuera del marco.

Hacer que la experiencia se complete dentro del juego

Lo único con lo que el jugador interactúa son las conversaciones dentro del juego, la elección de palabras y los encuentros en la hierba. No es necesario abrir otra pantalla para la generación. Por otro lado, los procesos que requieren un gran cálculo son manejados por un proceso de Python en la PC, que se comunica con el juego a través de archivos. El script de Lua en mGBA sirve de puente entre ambos, separando la sensación de juego existente del procesamiento de la IA externa.

  1. Crear especificaciones. El modelo de lenguaje local convierte seis palabras en datos de especie verificados.
  2. Formar una figura. El modelo de imágenes dibuja una ilustración de referencia y, a partir de ella, genera de manera coherente vistas frontal, trasera y de iconos de mano.
  3. Convertir a datos para juegos. Reducir la imagen a 15 colores y convertir/comprimirla en sprites y paletas que pueda manejar la GBA.
  4. Reflejar en el juego en ejecución. Escribe datos en el área reservada y hace aparecer una nueva especie sin reiniciar el juego.

Como los mismos datos también se escriben en el disco, las razas reflejadas permanecen incluso después de recargar el juego. La generación ocurre solo una vez y no se puede deshacer. Si se huye o se pierde en un encuentro, permanecerá en el mundo, pero si se derrota, nunca volverá a aparecer. Esta irreversibilidad también está diseñada para dar a la experiencia el significado de 'solo un ejemplar en el mundo'.

Lo que se pudo confirmar con el prototipo

Esto es una verificación de viabilidad realizada por una sola persona, y no un juego completo ni un experimento con usuarios. Los puntos alcanzados y las áreas no verificadas se dividen de la siguiente manera.

Como resultado de probarlo por mí mismo, el simple hecho de ser único no generó apego

Según lo que jugué del prototipo por mí mismo, no desarrollé un fuerte apego hacia los Pokémon generados. Esta es solo la impresión personal del propio implementador y no es un resultado experimental que se pueda generalizar. Sin embargo, me dio pistas sobre qué cambiar a continuación y comparar.

Las condiciones que parecen influir en el apego son dos.

En contraste, está "Hanagitsune", que se creó mediante la interacción con múltiples IA generativas y trabajo manual, aparte de la generación automática para juegos. Comparando las opciones, corrigiéndolas y desarrollándolas hasta una forma satisfactoria, se siente un apego especial hacia este personaje. Creo que se debe a que hubo tanto una calidad suficiente como una implicación que incluyó prueba y error.

Frente de un zorro de flores. Es un zorro de un verde pálido, y su cola parece que gotea enredaderas con flores. La parte posterior del zorro florido. Se puede ver toda la longitud de su cola floreciente.
Zorro florido: guardián del bosque con una cola que florece. Donde pasa corriendo, brotan hierbas y flores, e incluso en tierras áridas atrae nueva vida. Su figura se considera un símbolo del crecimiento del bosque hacia el futuro.
Pantalla de información de Pokémon de Hanagi2ne. Se muestra que es de tipo Planta, con la habilidad Clorofila, personalidad Audaz, y que se encontró en el Bosque Touka en nivel 7. El sprite es de un zorro verde claro con una cola floreciente. Pantalla de batalla. Hanagi2ne visto desde atrás se enfrenta a un Poochyena salvaje. Se muestra '¡Hanagi2ne usó succionar!'.
Se implementó el 'Hanagitsune', diseñado mediante repetidas conversaciones y trabajos manuales, como una raza dentro del juego.

Este prototipo no responde a la pregunta de si el contenido generado crea apego. La pregunta ambiguo se dividió en dos elementos que pueden ser modificados intencionalmente: la calidad de lo generado y la profundidad de la implicación. En la siguiente verificación, será necesario incorporar elección, comparación y corrección en el proceso de producción, y establecer el nivel de calidad de lo generado, para luego realizar comparaciones entre varios participantes.

Implementación

El pipeline de generación, el marco de restricciones y validación, la conversión de datos para GBA y los cambios del lado del juego se publican en Repositorio de GitHub.

pret/pokeemerald Se produjo como investigación personal basándose en la descompilación. No se distribuyen ni ROM, ni parches de ROM, ni recursos dentro del juego. Todos los sprites publicados aquí son originales generados por IA. Pokémon es una marca registrada de Nintendo, Creatures Inc. y Game Freak Inc., y este proyecto no tiene relación con estas empresas ni cuenta con su aprobación.