Разбор · Оркестрация агентов · В сборке

Три сессии Claude собрали игру для Roblox за 45 часов. Я проверял диффы.

Кооперативная игра про снежный ком для Roblox: катишь шар, растущий с каждым шагом, съезжаешь на нём по трассе с развилками, сносишь игрушечный городок за монеты, объединяешься с другом ради большего удара. Собрана 27–29 сентября 2026 тремя сессиями Claude Code, где я был оркестратором, ревьюером и единственным человеком, нажимавшим Play.

Сводка сборкиВ СБОРКЕ
Коммитов за 45 часов реального времени
121
Строк строгого Luau, 68 файлов
15k
Скриншотов живых плейтестов как доказательств
101
Находок ревью подтверждено / отклонено
14 / 4

Устройство

Один оркестратор, два исполнителя, один человек на критическом пути.

Три десктопные сессии с тремя непересекающимися ролями. Оркестратор пишет брифы этапов, проверяет каждый коммит, запускает ревью-воркфлоу и передаёт те немногие шаги, которые может сделать только человек. Сессия-сборщик владеет кодом на Luau, проверяет каждую задачу живьём через MCP Roblox Studio и коммитит по одной задаче. Арт-сессия генерирует 3D-ассеты в Tripo, проверяет и правит их цвет в headless Blender, рендерит иконки, обложки и наборы обломков. Ни одна из трёх не трогает файлы другой.

Моя работа была той частью, которую агенты не могут: решать, каким игра должна быть на ощупь, переоткрывать Studio, когда она закрывалась, одобрять каждую загрузку и каждый потраченный кредит, и играть в каждую фазу до начала следующей. Когда игру попробовала подруга, никогда её не видевшая, её семь замечаний переписали следующий бриф. Этот цикл обратной связи, а не объём кода, и есть суть разбора.

Цикл

Что происходит, когда идёт этап.

  1. 01
    Бриф
    MILESTONE-N.md с дизайном, задачами по фазам, жёсткой остановкой на человеческий тест, списком отложенного и повторёнными правилами
  2. 02
    Сборка
    Сессия-сборщик идёт по брифу задача за задачей: строгий Luau, все параметры в одном файле Balance, авторитет сервера, чистые проверки
  3. 03
    Проверка
    Каждая задача проигрывается живьём через MCP Studio и ложится одним коммитом плюс скриншотом в screens/
  4. 04
    Ревью
    Оркестратор сравнивает серверный код и профиль с правилами; этапы, касающиеся денег, проходят мультиагентное состязательное ревью
  5. 05
    Тест ощущений
    Всё останавливается, пока человек не поиграет; отзыв дословно уходит в следующую фазу брифа
  6. 06
    Выпуск
    Итог в PROGRESS.md, push в origin, подводные камни в тот же день записаны в переиспользуемый навык

Каждая задача заканчивается коммитом и скриншотом из живого плейтеста в Studio, поэтому прогресс проверяем в git, а не пересказан в чате.

Проектные решения

Что построено и почему именно так.

Игра, это результат. Схема оркестрации, это инженерия. Каждое решение ниже видно в истории коммитов.

01

Оркестратор никогда не пишет код игры.

Сессия, написавшая код, не может проверить его свежим взглядом. Ограничение оркестратора брифами, диффами и передачей сообщений означало, что каждый коммит читал контекст, который его не писал, а сборщика можно было поправить одним сообщением, а не перезапускать с нуля.

02

Брифы, это файлы, а не чат.

Каждый этап живёт в закоммиченном markdown-файле с задачами по фазам, списком отложенного и постоянными правилами. Сборщик читает его с нуля при пробуждении, файл переживает сжатие контекста, а плейтест становится новым датированным разделом, а не потерянным разговором. Пять брифов, пять этапов, ноль дрейфа объёма внутри фазы.

03

Авторитет сервера, это правило, а не предпочтение.

Клиенты отправляют намерения без аргументов; сервер владеет монетами, размером, разблокировками и покупками. Чеки покупок идемпотентны по id покупки и подтверждаются только после того, как сохранение с этим id легло в базу. Ревью всё равно нашло здесь пробел, поэтому правило записано и проверяется, а не предполагается.

04

Один коммит на задачу, один скриншот на утверждение.

Сборщику нельзя отчитаться о задаче без живого плейтеста и PNG в репозитории. Спустя 101 скриншот каждое утверждение на этой странице ведёт к коммиту и картинке. Когда MCP не мог что-то проверить, в журнале так и написано, и пункт уходил в список человеческих тестов.

05

Код про деньги получает состязательное ревью, а не второе прочтение.

Этап монетизации прошёл через Workflow из 58 агентов: четыре измерения поиска (экономика, комплаенс, безопасность, размещение) по диффу, затем каждая находка ушла трём независимым проверяющим, настроенным на опровержение, и выживала при двух голосах из трёх. 14 находок подтверждено, 4 отклонено. Две были реальными денежными ошибками: повторяемая покупка удвоения офлайн-дохода, которая множилась без предела, и наборы монет, рассчитанные по оценке дохода без множителей перерождения и коллекции, до 37 раз меньше положенного для тех игроков, кто платит чаще всех.

06

Арт тратит кредиты один раз. Цвет правится локально.

Текстурный проход Tripo игнорирует слова о цвете, поэтому арт-сессия судит варианты только по форме и перекрашивает текстуры в headless Blender с расширением границ, чтобы мипмапы не давали розовых подтёков. 30 ассетов за 3 150 кредитов, ноль платных повторов и 76 заранее расколотых обломков из тех же моделей для системы разрушений.

07

Дизайнерские решения принимает агент-арбитр. Решения об ощущениях, человек.

Чтобы не блокироваться в моё отсутствие, рядовые дизайнерские развилки решал отдельный агент на Opus с брифом и исследованиями в контексте. Всё, что касается ощущения от игры, оставалось за мной и одним новым игроком. Разделение сработало: агенты хорошо выбрали ширину полос и математику камеры и не заметили, что новичок не знает, куда идти.

08

Подводные камни становятся навыками в тот же день.

Каждая остановка записана в переиспользуемый файл навыка: приложение убивает сервер Rojo после простоя, Studio закрывается сама, виртуальные клавиши не доходят до игры, панель браузера не достаёт до локального моста. Цикл проверки ассетов и конвейер рендеров тоже стали навыками. Следующая игра начнётся с протокола, а не с памяти.

Что ломалось

Где агенты ошибались и как это поймали.

Проверено при задержке 150 мс. В руках человека дёргается.

MCP не может нажимать настоящие клавиши, поэтому руление проверялось искусственными вводами и проходило. Человек чувствовал рывок при каждой смене направления. Причина: ввод доходил до сервера с опозданием на 13–21 тик, и снимки состояния, сделанные до ввода, откатывали клиент. Решение: намерения с номером такта и последовательности, клиент, пропускающий снимки старше неподтверждённого ввода, и коррекция не больше 0,4 стада за кадр. Урок: проверка только через MCP считается неподтверждённой, пока не поиграл человек.

Две денежные ошибки прошли собственные тесты сборщика.

Сборщик проверил каждую выдачу товара живьём и всё равно выпустил удвоение офлайн-дохода, которое можно было покупать снова и снова, каждый раз удваивая ту же кучу, и наборы монет, недоплачивавшие перерождённым игрокам до 37 раз. Обе поймало ревью на опровержение, а не повторное чтение. Проверка и ревью, это разные работы.

Обучение, понятное агентам, оказалось непонятным новому игроку.

Линия объектов +1 от точки появления до ворот спуска, подсказка цели и светящаяся арка ROLL! закрыли первое замечание. Затем человек сказал, что линия убила повод бродить по полю. Следующая версия заменила её кольцами ценности и мягким порогом размера. Два круга человеческой обратной связи дали первой минуте больше, чем любые рассуждения агентов.

За каждой остановкой стоял человеческий шаг, которого никто не запланировал.

Десктопное приложение убивало сервер Rojo после простоя. Studio закрывалась сама. Панель браузера не доставала до моста Tripo на localhost, и импорт 3D переехал в настоящий Chrome. Каждая стоила по часу, пока не стала правилом брифа: перечислять человеческие шаги заранее и собирать их пачкой.

Где мы сейчас

Не запущено. Это честный статус.

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