- Projeto que troca as falas repetitivas do clássico Animal Crossing (GameCube, 2001) por diálogos em nuvem com LLM em tempo real
- Sem modificar o código do jogo, ele conecta scripts externos em Python e IA por meio de hack de memória e memória compartilhada no estilo mailbox
- O texto do jogo não é uma string simples, mas processado como uma linguagem de códigos de controle, então foi preciso implementar um codificador e decodificador próprios
- A geração de falas foi separada entre Writer (escrita criativa das falas) e Director (adição de códigos de controle e expressões) para garantir qualidade
- Como resultado, os moradores da vila passam a ter conversas imprevisíveis geradas por IA, refletindo notícias, rumores e até sátiras, dando nova vida ao jogo clássico
- O código do projeto está disponível no GitHub
Definição do problema
- Animal Crossing é encantador, mas famoso por suas falas repetitivas; mesmo após 23 anos, os diálogos não mudaram, então surgiu a ideia de transformá-los de forma radical
- O problema é que o GameCube é um ambiente fechado, com CPU de 485 MHz, 24 MB de RAM e sem suporte a rede
- O jogo original precisava ser mantido intacto, sem alterações no código
- O objetivo era criar uma ponte para substituir os diálogos repetitivos por um LLM moderno
Primeiro passo: hackeando o sistema de diálogo
- Graças ao decompilado de Animal Crossing feito pela comunidade, foi possível acessar o código em C
- Ao fazer hook de chamadas de função no arquivo
m_message.c, foi possível substituir o texto dos diálogos
- Mas ainda restava o desafio de trocar dados com uma IA externa em tempo real
Abordagem de mailbox na memória
- Uma área específica da RAM do GameCube foi usada como mailbox IPC
- Um script em Python escreve/lê diretamente endereços de memória → comunicação entre jogo e IA
- Foi criado um scanner de memória para localizar os endereços do nome do falante (0x8129A3EA) e do buffer de diálogo (0x81298360)
Linguagem de códigos de controle
- Ao enviar strings simples, o jogo congelava
- Motivo: Animal Crossing usa uma linguagem baseada em códigos de controle como
<End Conversation>, <Pause>, <Color Line> etc.
- Foi criado em Python um codificador/decodificador para converter entre texto legível por humanos e a sequência de bytes entendida pelo jogo
Avaliação de alternativas de rede
- O GameCube tem o Broadband Adapter, mas Animal Crossing não possui stack de rede
- Usar o BBA exigiria adicionar uma stack de rede e I/O assíncrono, o que seria ineficiente
- Em vez disso, concluiu-se que o hack de memória via emulador era mais simples e confiável
Pipeline de IA
- No início, tentou-se usar um único LLM para criar as falas e também lidar com os códigos de controle, mas os problemas de qualidade foram grandes, então foi adotada a estratégia de separar Writer e Director
- Writer: gera falas criativas com base na personalidade dos personagens (usando dados de wiki de fãs)
- Director: lê as falas e insere os códigos de controle, expressões faciais, cores e sons adequados
- Esse pipeline de LLM em duas etapas separa a criatividade da IA das exigências técnicas, aproveitando os pontos fortes de cada parte
- A divisão de papéis garantiu qualidade estável
Resultados e expansão
Significado
- Um projeto experimental que combina hacking de consoles retrô, integração de IA e preservação de jogos
- Ao conectar a IA de 2025 a um jogo de 2001, ele cria uma interação entre gerações
- O jogo deixa de ser um conjunto de diálogos repetitivos e evolui para um mundo virtual vivo
- Processo completo de desenvolvimento/vídeo de demonstração: Modern AI in a 24-Year-Old Game
Ainda não há comentários.