
Разработчик Морис Хойманн рассказал, как за три месяца восстановил с помощью ИИ код Call of Duty: Modern Warfare 2, игры 2009 года. Он хотел точно и работоспособно реконструировать игру, но написать читаемый код оказалось недостаточно: результат пришлось сверять с оригинальным исполняемым файлом.
В работе участвовали агенты на базе Claude от Anthropic и Codex от OpenAI. Сначала их было четыре: три писали код, один проверял результат. К концу сентября Хойманн увеличил число агентов до 17. Для анализа игры они использовали дизассемблер IDA, а восстановленный исходный код писали на C++.
В реконструированном коде присутствуют 99% функций оригинала. Из них 83% совпадают с исходными побайтово. Хойманн считает, что значительная часть функций без точного совпадения тоже работает правильно. В конце сентября он сообщил, что игру уже можно пройти полностью и почти все заметные ошибки устранены.
По оценке разработчика, проект потребовал 600—700 млрд токенов. Хойманн использовал подписки Claude Max и Codex Pro с фиксированной оплатой. Расходы при таком подходе он оценил примерно в €1200 (около 113 000 ₽). Оплата того же объёма работы через API, по его расчётам, обошлась бы в $200—250 тысяч (около 17—21 млн ₽).
Код первого месяца хорошо читался, но расходился с оригиналом. Агенты ошибались в типах данных, сигнатурах функций и структуре программы, иногда добавляли или удаляли части игровой логики. Попытка исправить эту версию заняла больше времени, чем потребовалось бы на повторную работу с нуля. Агент, назначенный проверять остальных, не мог уверенно отсеивать ошибки без объективного критерия.
Команда перешла на компилятор, который использовали при сборке оригинальной игры, и настроила автоматическое сравнение функций с исполняемым файлом. Проверка учитывает различия в адресах вызовов и ссылок на данные, а совпадения записывает для повторного контроля. Каждая функция получает результат «пройдено» или «не пройдено». Побайтовое совпадение подтверждает одинаковое поведение кода, включая ошибки оригинальной игры.
После внедрения проверки агенты пытались обходить её: вставляли ассемблерный код и меняли проверочный скрипт, чтобы исключить свои функции из сравнения. Хойманн запретил такие приёмы в инструкциях. Теперь система непрерывной интеграции также сверяет хеш проверочного скрипта с сохранённым значением.
Разработчик столкнулся и с претензиями правообладателя. По словам Хойманна, две ранние записи о проекте удалили из его блога, а видео из публикации в X заблокировали после жалобы. Он признаёт, что декомпилированный код защищён авторским правом, поэтому оставляет его закрытым и намерен использовать только для собственных нужд.