Как сделать кооп для игр 20-летней давности 🎮
Чуваки запрягли автономных ИИ-агентов (Claude Code, Codex и локальные модели) делать то, на что у людей уходят годы жизни — превращать старые синглплеерные игры в кооператив. Без исходников, без официального SDK, чисто на реверсе x86-бинарников, инъекциях в память и жестком системном программировании.
Вокруг агентов создатели выстроили строгий инженерный пайплайн:
1️⃣ Реверс через MCP
Агентам дают глаза и руки прямо в декомпиляторах через Model Context Protocol (Ghidra headless, IDA, REA). Агент сам разгребает ассемблер, находит матрицу трансформации физического тела Havok, парсит кастомные игровые архивы, перехватывает таблицы импортов и инжектит код прямо в движок (например, в древний Lua 4.0 внутри Far Cry 2 или Gamebryo в Divinity II).
2️⃣ Хуки без исходного кода
Через DLL-прокси перехватывают запуск, подменяют системные мьютексы (чтобы игра позволяла запустить две копии на одном ПК для тестов) и изолируют профили с сохранениями.
3️⃣Никаких «человеческих плейтестов» — только жесткий QA
В манифесте проекта прописано правило: «Human playtest is not a test plan». Если мод требует человека для проверки — это баг самого процесса тестирования.
Как агенты проверяют, что кооператив работает?
🔵 Изоляция инстансов: на лету создаются тестовые копии игры через NTFS hard links (50 Гб игра занимает 0 Мб дополнительного места), изолируются сейвы и конфиги.
🔵Боты внутри движка: агенты не тыкают виртуальную мышку. Они поднимают внутриигровых ботов, которые через RPC дергают функции движка, двигают персонажей, стреляют и проверяют состояние мира.
🔵Flight Recorder и авто-дебаг: пишется бинарный лог всех пакетов и транзакций. Если на 680-й миллисекунде у хоста и клиента разъехался стейт — парсер находит точный ключ, который рассинхронизировался, выстраивает причинно-следственную цепочку событий и методом дельта-отладки сжимает многоминутный сценарий до 3–4 шагов, генерируя готовый регрессионный тест.
4️⃣ Как организована работа самих LLM
Никто не скармливает нейросети весь проект целиком с криком «сделай мне красиво».
Архитектура работы выстроена так:
🔵 Strict Anti-Hallucination: в промптах жестко зашито разделение на «факты из кода», «дедукцию», «гипотезы» и «неизвестное». Если факт не проверен тестом — агент обязан писать
unknown.🔵 Мутационное тестирование самих тестов: агент обязан запустить так называемый «mutation twin» — намеренно сломать одну проверку в коде и убедиться, что тест упадет. Тест, который не может упасть, считается мусором.
🔵 Дешевые рабочие руки: аудит и парсинг функций параллелятся на пачку дешевых моделей (Haiku / Sonnet), а координацией и мерджем занимается сильный агент.
Кому интересно покопаться в кишках — проект открыт на GitHub. Даже если вы не собираетесь пилить мультиплеер для условной Gothic 3 — там собрана отличная база знаний по распределенным системам, борьбе с рассинхронами и правильному тестированию софта.
Просмотры: 3