50 puntos por GN⁺ 2025-09-11 | Aún no hay comentarios. | Compartir por WhatsApp
  • Un proyecto que reemplaza los diálogos repetitivos del clásico Animal Crossing (GameCube, 2001) por conversaciones en la nube impulsadas por LLM en tiempo real
  • Sin modificar el código del juego, conecta scripts externos en Python y la IA mediante hackeo de memoria y un sistema de memoria compartida (mailbox)
  • El texto del juego no se maneja como cadenas simples, sino como un lenguaje de códigos de control especiales, por lo que se resolvió implementando un codificador y decodificador aparte
  • La generación de diálogos se separó entre Writer (redacción creativa de diálogos) y Director (agrega códigos de control y expresiones) para asegurar la calidad
  • Como resultado, los habitantes del pueblo despliegan diálogos de IA impredecibles que incluso reflejan noticias, rumores y sátira, dándole nueva vida a un juego clásico
  • El código del proyecto está publicado en GitHub

Definición del problema

  • Animal Crossing es encantador, pero también es famoso por sus diálogos repetitivos; después de 23 años, los textos seguían igual, así que se ideó una forma innovadora de cambiarlos
  • El problema era que GameCube es un entorno cerrado con CPU de 485 MHz, 24 MB de RAM y sin soporte de red
  • El juego original debía mantenerse intacto, sin modificar su código
  • El objetivo era construir un puente para sustituir los diálogos repetitivos por un LLM moderno

Primer paso: hackear el sistema de diálogo

  • Gracias a la decompilación de Animal Crossing hecha por la comunidad, fue posible acceder al código en C
  • Se logró reemplazar el texto de los diálogos enganchando llamadas de función en el archivo m_message.c
  • Pero seguía pendiente el problema de cómo intercambiar datos con una IA externa en tiempo real

Método del mailbox en memoria

  • Se usó una zona específica de la RAM de GameCube como mailbox de IPC
  • Un script en Python escribe/lee directamente en direcciones de memoria → comunicación entre el juego y la IA
  • Se escribió un escáner de memoria para obtener las direcciones del nombre del hablante (0x8129A3EA) y del búfer de diálogo (0x81298360)

Lenguaje de códigos de control

  • Al enviar cadenas simples, el juego se congelaba
  • La razón: Animal Crossing usa un lenguaje basado en códigos de control como <End Conversation>, <Pause>, <Color Line> y otros
  • Se creó un codificador/decodificador en Python → conversión entre texto amigable para humanos y secuencias de bytes que el juego entiende

Evaluación de alternativas de red

  • Existe el Broadband Adapter de GameCube, pero Animal Crossing no tiene stack de red
  • Usar el BBA implicaría añadir un stack de red y E/S asíncrona, así que resultaba poco eficiente
  • En cambio, se consideró que el hackeo de memoria en emulador era más simple y estable

Pipeline de IA

  • Al principio se intentó que un solo LLM se encargara tanto de la creatividad como de los códigos de control, pero los problemas de calidad eran grandes, así que se eligió la estrategia de separar Writer y Director
    • Writer: genera diálogos creativos con base en la personalidad de cada personaje (usando datos de wikis de fans)
    • Director: lee el diálogo e inserta códigos de control, expresiones faciales, color y sonido adecuados
  • Este pipeline de LLM en dos etapas separa la creatividad de la IA de los requisitos técnicos, aprovechando las fortalezas de cada parte
  • La división de roles permitió asegurar una calidad estable

Resultados y expansión

Importancia

  • Un proyecto experimental que combina hackeo de consolas retro, integración de IA y preservación de videojuegos
  • Conecta la IA de 2025 con un juego de 2001 para crear una interacción entre generaciones
  • El juego deja de ser una serie de diálogos repetitivos para evolucionar hacia un mundo virtual vivo
  • Proceso completo de desarrollo/video de demostración: Modern AI in a 24-Year-Old Game

Aún no hay comentarios.

Aún no hay comentarios.