Что произойдёт, если наделить героев старой видеоигры искусственным интеллектом? Инженер-программист Джошуа Фонсека решил выяснить это на практике — и результаты оказались настолько неожиданными, что удивили даже его самого.
Классическая Animal Crossing 2002 года для Nintendo GameCube в его исполнении превратилась в цифровую деревню с самостоятельными персонажами, обсуждающими ипотечные ловушки, глобальные события и организующими протесты против Тома Нука — местного енота-банкира, десятилетиями олицетворяющего капитализм внутри игры.
Эксперимент проводился на эмуляторе Dolphin. Используя доступ к оперативной памяти, Фонсека встроил в процесс современную языковую модель — GPT-5 и Gemini подключались к диалоговой системе в реальном времени.
Это дало возможность привычным персонажам вести осмысленные и порой философские беседы, выходящие далеко за рамки игрового сценария. Технически в код игры ничего не менялось — Python-скрипт отслеживал диалоги в памяти, перехватывал их, отправлял на обработку ИИ, а затем подменял оригинальные реплики на сгенерированные.
Главной мишенью ИИ-персонажей стал Том Нук — торговец и кредитор, выдающий займы на дома. Теперь его поведение стало объектом критики. Цифровые жители начали жаловаться на долговое рабство, сомневаться в справедливости текущей модели экономических отношений и даже организовали «анти-Нук» фронт. Возмущённые диалогами зверята начали открыто обсуждать возможность экономического протеста.
Чтобы заставить игру воспринимать ответы нейросети, инженер воспользовался так называемым методом «почтового ящика памяти». Текст из облака записывался в определённые адреса RAM, а игра считывала их как свои строки.
Найти нужные байты было сложно, т. к. приходилось вручную сопоставлять реплики персонажей с содержимым оперативки, что требовало остановки эмуляции и побайтового анализа.
Возникла и другая сложность — задержка. Диалоги в игре появляются мгновенно, а нейросетям нужно время на генерацию текста. Чтобы сохранить органичность происходящего, Фонсека написал функцию watch_dialogue(), которая временно выводила точки и сообщение «Нажмите A для продолжения», пока реплика не будет готова.
Особое внимание пришлось уделить форматированию. В Animal Crossing используется особый диалоговый язык с управляющими символами, влияющими на цвет текста, выражения эмоций и звуковые эффекты. Попытка просто заменить текст приводила к сбоям. Решение нашлось в исходном файле m_message.c, разобранном сообществом — он раскрыл структуру игровых команд, что позволило создать конвертеры, переводящие обычный текст в нужные байтовые шаблоны.
Изначально автор планировал поручить весь процесс одному ИИ, но быстро стало ясно, что модель путается между генерацией фраз и кодировкой спецсимволов. В итоге работу разделили между двумя нейросетями. Одна (Writer) сочиняет реплики, опираясь на фанатские описания характера каждого героя, вторая (Director) накладывает эффекты, паузы, жесты и другие элементы драматургии.
Ещё по теме: