«Сделай мне Call of Duty в браузере»: промпт-инжиниринг против реальности
Недавно в сети всплыл любопытный эксперимент: разработчик дал нейросетям (в основном сетке моделей Claude) промпт в стиле «Сделай мне браузерный шутер уровня последних Call of Duty на Three.js. Запусти сетку жестких AI-критиков, пусть оценивают скриншоты и гоняют код по кругу (/loop), пока не станет идеально».
На выходе получился репозиторий на 55 000 строк кода.
🛠 В чем технический жир?
Если оценивать проект именно как гиковскую авантюру, то это монументальный хардкор: 🟢 Zero Assets. В проекте нет вообще ни одного внешнего файла ресурсов. Ни PNG-текстур, ни 3D-моделей (.gltf), ни WAV-аудио. Вообще. 🟢 Всё генерируется процедурно при загрузке: текстуры песка, кирпича и метала через шум Перлина и GLSL-шейдеры, генерация геометрии оружия и зданий, синтез звуков выстрелов через Web Audio API, процедурные облака и физика атмосферного рассеивания. 🟢 Физика написана с нуля на JS: BVH-деревья, честный просчет пробития пулями разных материалов, PBD-рагдоллы (трупы врагов), физика движения игрока с подкатами и паркуром.
🤡 Вырос ли «убийца CoD»? Нет, близко не стоял. Авторы выложили оценки тех самых AI-критиков, которые гоняли проект по кругу: — Стартовая оценка визуала: 3.59 / 10 — Финальная оценка после сотен итераций: 5.05 / 10
В слепом А/Б тесте 100% людей выбрали реальный кадр из Call of Duty. Картинка в «проектe» выглядит в лучшем случае как инди-игра из 2010 год. AI-агенты уперлись в потолок.
💡 Главные выводы из этого эксперимента
Этот репозиторий стоит почитать каждому, кто верит, что «завтра агенты заменят senior-разработчиков и архитекторов». В README авторы сделали подробный разбор, почему параллельные AI-агенты чуть не утопили проект.
1️⃣ Параллелизация агентов («Fan-out») ломает сложные системы Разработчики сначала натравили 6 независимых AI-агентов на разные папки: один пилил рендер, второй —sky-box, третий — материалы. Итог: катастрофа. Графика, тонмаппинг и освещение — это одна связанная система. Агенты постоянно ломали контекст и предпосылки друг друга. Качество выросло только тогда, когда распараллеливание выкинули и заставили работать один последовательный контекст с единым архитектурным видением.
2️⃣ AI-критики дают галлюцинаторный фидбек Критики три раунда подряд орали: «Оружие выглядит нетекстурированным пластиком!». AI-кодеры пытались это починить и тупо скручивали альбедо (яркость текстуры). В итоге стало только хуже. Когда человек наконец-то залез с профайлером в кадр, выяснилось: дело вообще не в текстуре! Дело было в том, что светильник в модели сцены выдавал в 20 раз больше света, чем нужно, и блик тупо заливал всю модель, сжигая диффузный слой. Реальная проблема была прямо противоположна тому, на что жаловался AI-критик.
3️⃣ Медианный FPS — это метрика для бедных Статический бенчмарк гордо рапортовал о 94 FPS, пока игра была неиграбельна. Когда вникли в распределение (p95, p99), увидели фризы на 1.2 секунды прямо во время стрельбы — из-за того, что WebGL-шейдеры компилировались «на лету» прямо во время игры. Пришлось писать честный pre-warm процесс.
Проект — очень хорош для изучения того, как работают (и где сбоят) автономные AI-агенты на больших кодовых базах.
Нейросети отлично генерируют шаблонный низкоуровневый код, математику и GLSL-сплаттинг. Но без человека, который понимает физику процесса, умеет пользоваться профилировщиком и видит систему целиком, AI просто бесконечно гоняет ошибки по кругу, решая следствия, а не причины. А промптом «сделай мне хорошо AAA-продукты всё еще не строятся.