· 1 мин

Создание игр одним промптом: что вайб-кодинг реально собирает на Three.js, а что разваливается

Одним промптом ИИ вроде Opus 5 реально собирает играбельный прототип на Three.js: рендер, оружие, врагов и физику, всё процедурно и без внешних ассетов. Но полишинг под AAA, стабильный мультиплеер-нетекод и сложные коллизии одним заходом не берутся - это десятки часов и сотни промптов с ручной доводкой.

Мэтт Шумер собрал FPS на Three.js одним промптом через Opus 5, без ассетов. Разбираю, что в создании игр реально тянет вайб-кодинг, а что разваливается: нетекод, коллизии, полишинг.

Создание игр одним промптом: что вайб-кодинг реально собирает на Three.js, а что разваливается

Создание игр одним промптом звучит как магия из твиттера: написал одну фразу - получил играбельный шутер. В июле 2026 Мэтт Шумер именно так и подал свою Claude of Duty - FPS на Three.js, который Opus 5 собрал "одним промптом", без единого внешнего ассета. Я полез разбираться, где тут правда, а где маркетинг, и заодно щупал, что вайб-кодинг реально вывозит в браузерном геймдеве, а что разваливается на первом же мультиплеере.

Спойлер: играбельный прототип - да, берётся. AAA-игра одной фразой - нет. Дальше по пунктам, с цифрами.

Что реально собирает вайб-кодинг одним промптом на Three.js

Одним промптом фронтир-модель вроде Opus 5 собирает работающий прототип игры на Three.js: рендер, оружие, врагов, физику и UI - всё в одном браузере. Claude of Duty от Мэтта Шумера - это около 55 000 строк кода на Three.js r180 поверх WebGL2, 11 подсистем и ноль внешних ассетов. Всё, что видно в демке, сгенерировано процедурно из кода.

Вот это "ноль ассетов" - самая интересная часть. У обычной игры есть папка на гигабайты: модельки, текстуры, HDRI, звуки. Тут ничего этого нет. Каждая текстура, меш, анимация и звук считаются процедурно прямо при загрузке. Шумер прямым текстом писал в твиттере: "EVERYTHING you see in this demo is custom code... not a single external asset was used". Для браузерной демки это честный флекс - вся игра живёт в одном бандле JS.

Три.js вообще идеально ложится под вайб-кодинг. Это чистый JavaScript без серверов и баз данных, с мгновенным рендером прямо в браузере и прощающим API поверх GPU. Модель написала - ты сразу видишь результат, без сборки движка на полчаса. Обратная связь моментальная, а значит и цикл "промпт - посмотрел - поправил" крутится быстро.

"Одним промптом" - это правда один запрос?

Нет. "Одним промптом" у Шумера означает один стартовый seed-промпт, который дальше разворачивает целый рой сабагентов, гоняет их через /loop и слепые A/B-сравнения с настоящим Call of Duty. Это не один forward-pass модели, а целая сессия оркестрации. Маркетинговый заголовок и техническая правда тут расходятся, и это важно понимать до того, как побежишь повторять.

Сам промпт лежит в репозитории в файле prompt.md, и там прямым текстом сказано: выделять сабагентов на каждый элемент, а отдельным сабагентом визуально проверять, что картинка тянет на triple A. Цитата из промпта: "Fan out sub-agents and have sub-agents tackle each one individually... You should /loop on each item and have a separate sub-agent check it visually to ensure it looks triple A". То есть внутри "одного промпта" спрятана оркестровка с критиками, циклами и десятками проходов.

Когда скептики заявили, что это не генерация за один заход, а дни итераций, Шумер ответил в лоб: промпт и код публичные, идите смотрите. И это, кстати, правильный ход - вместо спора выложить репозиторий под MIT и дать всем ковыряться. Забавно, что по внутренним замерам из разбора демки последовательные однохозяйные агенты обыграли параллельный веер: +1.00 к оценке против +0.46. Веер сабагентов - красивая идея, но не всегда лучшая.

Почему для вайб-кодинга игр берут Three.js, а не Unity

Потому что ИИ читает и правит текст, а не бинарники. Юнити хранит сцены и объекты в бинарных .prefab, Unreal - в .uasset, и модель их банально не видит. А текстовые форматы Godot (.tscn, .gd, .tres) ИИ читает нормально. Three.js в этом смысле чемпион: там вообще нет ассет-пайплайна, только JS-файлы, которые модель генерит и переписывает без единой заминки.

Отсюда простое правило: чем больше игры лежит в текстовых файлах, тем комфортнее вайб-кодинг. На Three.js ты просишь модель "сделай врагам разброс при стрельбе" - и она лезет в понятный ей .js. На Unity та же просьба упирается в сцену, которую агент не может ни прочитать, ни отредактировать. Поэтому весь хайп вокруг игр одним промптом крутится именно вокруг браузера и Three.js, а не вокруг больших движков.

Это не значит, что большие движки "хуже". Просто они заточены под человека с редактором, а не под агента с текстовым доступом. Пока ассеты бинарные, модель работает вслепую.

Где ИИ ломается в геймдеве

ИИ ломается там, где начинается настоящая инженерия: мультиплеерный нетекод, сложные коллизии и производительность под нагрузкой. Это не вопрос "модель тупая" - это вопрос, что real-time сеть и физика требуют системного мышления через всю кодовую базу, а модель мыслит локально, кусками. Один заход тут почти гарантированно даёт красивую демку, которая падает на реальной нагрузке.

Живой пример из разборов вайб-кодинга: AI-собранный шутер оказался неиграбельным при более чем 10 клиентах. Почему? Модель синхронизировала полную позицию каждой пули вместо стартовой точки и угла, и флудила сервер примерно 3000 сообщений в секунду. На демке в один клиент всё летало, на реальном матче - захлебнулось. Чинилось руками: человек переписал протокол и рейт-лимит, и только тогда игра масштабировалась.

Плюс коллизии. Есть отдельная народная примета - "стена сорокового промпта", когда детектор столкновений внезапно ложится, и ты сжигаешь двадцатку долларов кредитов, гоняясь за одним багом. И это на фоне общей статистики: код игр, сгенерированный ИИ, в среднем содержит в 1,7 раза больше багов, чем написанный человеком. Модель отлично скаффолдит, но плохо держит длинный хвост граничных случаев - сейвы, сетевое состояние, редкие комбинации ввода.

Даже флагманская Claude of Duty честно проседает. После оптимизации демка держит 28-30 fps (p50) на Apple Silicon, а слепые критики в каждом A/B-тесте выбирали настоящий Call of Duty. Сам Шумер это признал: "The goal was to match a modern Call of Duty. It does not". Прототип - огонь. AAA - пока нет.

Сколько стоит довести вайб-кодинговую игру до играбельной

Демка-прототип укладывается в десятки долларов кредитов и один вечер, но играбельный мультиплеер - это уже десятки часов и сотни промптов. Самый честный ориентир - многопользовательский 3D-шутер Николя Зулло: 20 часов, 500 промптов, около 20 евро кредитов, ноль строк ручного кода. Игру потом протестировали 45 000 человек. То есть "одна фраза" на практике превращается в 500 маленьких умных фраз.

И эти 500 промптов - не равномерные. Первый час реально ощущается как магия: сказал - появилось. А дальше начинается то, за что платишь и временем, и кредитами: модель забывает, что уже построила, реинтродьюсит починенные баги, ломает то, что вчера работало. Каждый такой откат - это ещё пачка промптов и ещё немного кредитов в трубу.

Так что если считать честно, вайб-кодинг игры экономит не столько деньги, сколько порог входа. Ты можешь вообще не уметь писать шейдеры и нетекод - и всё равно доехать до играбельной штуки. Но доехать - это часы за рулём, а не одна кнопка. Я про близкую боль уже писал в пет-проектах, которые не умерли: довести демку до живых пользователей - отдельная работа, длиннее самой демки.

Что собирается одним промптом, а что придётся допиливать руками

Правило простое. Одним промптом (точнее, одной сессией) надёжно собираются браузерные 2D-аркады, головоломки, ретро-ремейки и небольшие 3D-сцены на Three.js. Не собираются: отполированный мультиплеерный тайтл, консольный релиз, всё, что упирается в сейвы, сетевое состояние и доступность. Тут по-прежнему нужны движок, ручная оптимизация и живой QA.

Если разложить по полочкам, картина такая:

  • Берётся одним заходом: браузерные прото, аркады, паззлы, ретро, небольшой 3D на Three.js, вся процедурная графика без ассетов.
  • Не берётся: стабильный real-time мультиплеер, честные 60 fps под нагрузкой, сложная физика и коллизии на больших сценах, длинный хвост багов и граничных случаев.
  • Отдельная засада с движками: текстовый Godot ИИ читает, бинарные Unity и Unreal - нет, так что для агента браузер и Three.js пока комфортнее всего.

Про то, что осилит соло-разработчик с ИИ в геймдеве целиком, а не только в браузере, я уже разбирал в статье как создать игру в одиночку - там больше про движки и про то, где ИИ помогает, а где мешает.

Такие дела

Claude of Duty - реально крутая демка и честный маркер того, куда всё едет: браузерная игра на 55 тысяч строк из кода, без единого ассета, это ещё год назад звучало бы как бред. Но "собери мне Battlefield 7 одним промптом" пока живёт в жанре мемов. Правда посередине: прототип за вечер - да, играбельный проект - десятки часов и сотни промптов, AAA - нет.

Мой практический вывод - вайб-кодинг в геймдеве стоит воспринимать не как "кнопку сделать игру", а как очень быстрый способ дойти до играбельного прото и проверить идею. А дальше начинается обычная разработка, просто с ИИ за штурвалом. Магии на один промпт не завезли. Но порог входа обвалился так, что грех не попробовать.

А я пойду щупать prompt.md из репозитория - вдруг что полезное для своих петпроектов утащу.

Частые вопросы

Сколько стоит собрать игру вайб-кодингом?

Прототип-демка укладывается в десятки долларов кредитов и один вечер. Многопользовательский 3D-шутер Николя Зулло обошёлся в ~20 евро и 500 промптов за 20 часов. Полишинг и мультиплеер добавляют и кредитов, и ручной работы.

Можно ли выложить вайб-кодинговую игру в Steam или на консоль?

Надёжно - нет. Одним ИИ собираются браузерные 2D и небольшие 3D-прото на Three.js. Полноценный консольный релиз или отполированный мультиплеерный тайтл требуют движка, ручной оптимизации и живого QA.

Какой движок лучше для вайб-кодинга игр?

Текстовые форматы Godot (.tscn, .gd, .tres) ИИ читает и правит; бинарные ассеты Unity (.prefab) и Unreal (.uasset) - нет. Для браузера сильнее всего Three.js: чистый JS, мгновенный рендер, никакого сервера.

Влад Новиков
Влад Новиков aka sunm8
Пишу про AI-разработку без глянца. Новые разборы — сначала в канале.
Подписаться