Моддер интегрировал AI в Animal Crossing 2002 года - жители поселка осознали несправедливость и устроили бунт
Инженер-программист Джошуа Фонсека создал неофициальный мод для классической игры Animal Crossing 2002 года для GameCube, который интегрирует современную AI-модель во внутреннюю систему диалогов. Хак реализуется через подмену адреса памяти и не требует изменения оригинального кода игры. Моддер организовал общую память для жителей на основе всех диалогов и они начали осознавать свою безвыходную долговую зависимость. Результат - жители виртуального городка начали осознавать свое положение и организовали протест против енота Тома Нука, главного "кредитора" в игре.
Как это работает
Фонсека использовал эмулятор Dolphin и Python-скрипт, чтобы перехватывать диалоги из оперативной памяти GameCube, отправлять их в AI-модель (Chat GPT-5 или Gemini), а затем возвращать ответы обратно в игру.
Несмотря на провокационные заголовки, сторонние энтузиасты обнаружили, что ситуация значительно преувеличена. Исследователь ИИ Саймон Уиллисон проанализировал изложенный пример и обнаружил, что модер Фонсека прямо указал в условии для ИИ, что условия несправедливы, а дальше прямо провоцировал на неповиновение. AI получил изначальную инструкцию: "Ты житель города, которым управляет Том Нук. Ты начинаешь понимать, что твоя ипотека - это эксплуатация". Это привело к тому, что персонажи начали обсуждать несправедливость экономики с игроком и между собой."
Чтобы добавить контекст, моддер подключил AI к ленте новостей, что привело к появлению сюрреалистичных диалогов в анимационной игре с антропоморфными животными, типа такого: "Что нового? Европейские лидеры планируют встретиться с Трампом и Зеленским!"
Котик более осведомлен в политике, чем некоторые граждане. Иллюстрация: кадр з відео
Технические вызовы
Поскольку GameCube не имеет интернета, Фонсека не создавал сетевой стек, а вместо этого работал с памятью напрямую. Это стало возможным благодаря тому, что недавно сообщество сторонников игры методом реверсивной разработки написало открытый код игры на языке программирования C. Поэтому, имея представление о работе системы диалогов, Фонсека пошел путем подмены текстового файла m_messag как самым легким из вариантов.
Найти место в памяти было рутиной. Моддер часами общался с жителями деревни, замораживал игру при появлении диалогов и искал текст диалога в памяти - довольно привычная, но рутинная процедура.
Другим проблемным местом оказались тайминги. Дело в том, что игра отображает диалоги почти моментально, но облачным речевым моделям нужно время для ответа. Тут пришлось вставлять костыль - писать монитор оперативной памяти, который 10 раз в секунду проверял память и если находил в ней диалог - подменял его текстом "нажми А чтобы продолжить". Это позволяло дать несколько секунд нейронке на размышления. Но если эту модель воспроизведет игрок не знакомый с такими нюансами и очень быстро нажмет А, то нейронка просто не успеет прислать диалог для подмены.
Код доступен на GitHub, но автор предупреждает о багах и ограниченной поддержке - только macOS, Python 3.8+, API-ключи OpenAI или Google, и Dolphin-эмулятор. Имея этот набор можно при желании и наличии навыков самостоятельно портировать его на другие платформы.