Animal Crossing. Джерело: nintendolife.com
Інженер-програміст Джошуа Фонсека створив неофіційний мод для класичної гри 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-емулятор. Маючи цей набір можна за бажання і наявності навичок самостійно портувати його на інші платформи.
Джерело: arstechnica.com