РАССЕКРЕЧЕНО · ДЛЯ ПУБЛИКАЦИИ
ОТЧЁТ О БОЕВОМ РАЗВЁРТЫВАНИИ: как 110 ИИ-агентов за двое суток собрали военный шутер в браузере телефона
ПРОВЕРЕНО ЗАМЕРОМ

Вещественное доказательство № 1

Одна улица. Одна ночь. Ноль правок человека.

Потяните шторку: слева минута 39 (первая версия), справа девятый круг самоулучшения. Между ними не художник, а цикл: ИИ-критик ставил оценку, агенты чинили, пересъёмка, снова критик.

до
после
⇄
МИНУТА 39
КРУГ 9
ЖУРНАЛ ОПЕРАЦИИ

Хронология

Радиожурнал двух суток
[00:00] Приказ получен: «максимально реалистичный Call of Duty, в браузере, на three.js».
[00:39] Объект боеспособен. Улица, физика, отдача, сенсор. 60 кадров/с.
[00:45] Развёрнут конвейер картинки: 4 специалиста → интегратор → критик.
[ночь] 9 кругов самоулучшения без участия человека. ~15 часов автономии.
[утро] Боевой конвейер: солдат (Meshy), ИИ перебежек, звук (ElevenLabs), заставы.
[утро] Слепой суд: процедурный автомат побеждает нейромодель 6:3.
[день] Заказчик открывает огонь с живого iPhone. Пять скриншотов, пять багов, которых не видел ни один стенд.
[день] Свой домен cod.reymer.ai. Кнопка БОЙ. Обходы вокруг домов. Трейлеры.
[день 3] Третий конвейер: цикл динамики боя закрыт досрочно, оценки 4 → 7 → 8.5. Ноль телепортов и проходов сквозь стены за 10 800 враго-тактов.
[день 3] Оптика: зум 2.2× и подсветка целей. Ощущение боя доведено по живым заходам заказчика.
БЕЗ УЧАСТИЯ ЧЕЛОВЕКА

Механизм

Циклы самоулучшения
  1. Специалисты. Материалы, геометрия, свет, оружие: каждый агент строго в своём файле, чтобы не затирать чужую работу.
  2. Критик. Отдельный агент с приказом быть безжалостным. Сравнивает кадры с настоящими военными шутерами и пишет замечания с замерами по пикселям.
  3. Исполнители. Каждое замечание уходит новому агенту. Правка → пересъёмка → снова критик.

Кривая оценок: провалы тоже часть системы

7.05.54.0 к1к2к3 к4к5к6 к7к8к9 агент переделал оружие, стало хуже, критик снял балл

Система не прячет регрессы, а фиксирует и исправляет. Закрытые замечания открывали критику следующий слой: починили тени, взялся за окна; ожили окна, взялся за лужи.

Радиоперехват: критик о нашей картинке

[круг 1] «Опознаю наш кадр как любительский за 0.2 секунды. Планка Пикатинни как гребёнка белых кубиков».
[круг 3] «Асфальт в тени бирюзовый: R23 G39 B48, синего вдвое больше красного».
[круг 6] «Кисть: цепочка из 6-7 коричневых капсул с зазорами. Это не рука».
[круг 9] «Провода, балконы, силуэт квартала… по фону я бы засомневался».

Плёнка операции

Наведите на кадр, сработает лупа. Полное видео эволюции:

СПЕЦИФИКАЦИЯ

Матчасть

Харнес: на чём всё это ехало
КлиентClaude Code (терминал, macOS). Весь проект прошёл одной длинной сессией с компакцией контекста.
МодельFable 5 (claude-fable-5): и основная сессия, и все 110 субагентов.
ОркестрацияWorkflow-сценарии на JS: детерминированные циклы, внутри вызовы agent() с типизированными схемами отчётов, где обязательное поле «что НЕ получилось». Правило «один файл, один агент»; общие файлы правит только интегратор.
ИнструкцииCLAUDE.md проекта: «замер вместо взгляда», ворота производительности на каждую правку, комментарии по-русски с «почему», секреты только в .secrets.env.
СтендыPuppeteer + детерминированный шаг мира window.__tick(dt). Меряется всё: кадры/с, вызовы отрисовки, раскладка кнопок на 4 размерах iPhone, телепорты врагов, проникновения сквозь стены.
ГенерацияMeshy: 3D и движения, снятые с людей · ElevenLabs: звук по описаниям · Nano Banana Pro: текстуры, плакат, логотип · Blender без окна: ужимка (225 тыс. → 9 тыс. треугольников).
ХостингЯндекс.Облако: Object Storage + API Gateway, домен с сертификатом. Деплой из докер-контейнера, ключи наружу не выходят.
ЧеловекПостановки, развилки и игра с живого iPhone. Его скриншоты нашли то, что не видит ни стенд, ни критик: пять багов плоских квадов (наведите).
БЕЗ ДВИЖКА

Инженерия

19 454 строки, ноль готовых движков
Автомат из примитивов, победитель слепого суда над нейромоделью (6:3)
Выщербины от пуль: канвасные текстуры, найдены скриншотом игрока
ВЫВОДЫ ОПЕРАЦИИ

Полевые заметки

Что мы поняли, пока это строилось

Принципы, которые переносимы на любой агентный проект. Показываем «что», оставляя себе «как именно».

1. У правды три источника, и они не заменяют друг друга

Стенды ловят математику: телепорт игрока на 48 метров от касания бордюра не увидит ни один глаз. ИИ-критик ловит «дорого или дёшево»: фаски, тон теней, согласованность света. А живой телефон в руках человека ловит то, чего не видят оба: вспышку-квадрат поверх ствола нашли не 110 агентов, а один скриншот игрока. Стенд не знает, куда смотрит человек. Проект без любого из трёх источников слеп на свой лад.

2. Критик обязан быть чужим

Агент не находит своих ошибок: он смотрит на работу глазами того, кто её делал. Отдельная роль с прямым приказом быть безжалостным и с запретом что-либо чинить меняет всё: наш критик мерил кадры по пикселям и писал «опознаю подделку за 0.2 секунды». Чем обиднее вердикты, тем быстрее растёт оценка. Как именно составлен бриф критика, чтобы он не скатывался в вежливость, оставим при себе.

3. Пила на графике лучше красивой прямой

Наши оценки шли 4.5 → 5.0 → 4.5 → 5.5 → 5.5 → 4.5 → 4.5 → 6.0 → 7.0. Каждый провал это агент, который старался и сделал хуже, а система это зафиксировала вместо того, чтобы скрыть. Конвейер, у которого метрики только растут, скорее всего не меряет, а рисует отчёт.

4. Генеративный ассет проигрывает там, где живёт чужой свет

Нейросетевая 3D-модель автомата выглядела отлично в примерочной и провалилась в игре: чужая эмиссия, убитые пережатием карты материалов, блеск «мятой фольги». Процедурная геометрия, которую девять кругов правили адресно, победила в слепом суде 6:3. Вывод не «генерация плоха», а тоньше: побеждает тот ассет, который дёшево итерировать. Модель перегенерируешь целиком, код правится строкой.

5. Слепой суд решает споры за копейки

Когда есть два варианта чего угодно, не спорьте: два кадра, отдельный агент-судья, который не знает, какой вариант чей, и структурированный вердикт со счётом. Мы так выбрали оружие за 30 секунд и 18 тысяч токенов. Работает для шрифтов, текстов и постеров так же, как для 3D.

6. Экономика конвейеров держится на кэше

1.9 миллиарда токенов звучит страшно, пока не увидеть структуру: 97% это чтение кэша, повторная отправка уже посчитанного контекста по цене в разы ниже. Чистой генерации всего 5 миллионов. Конвейер из 110 агентов доступен по деньгам ровно потому, что построен вокруг переиспользования контекста; как резать задачи, чтобы кэш работал на вас, тоже часть методики.

7. Детерминизм дороже красоты

Улица собирается от зерна, мир шагает строго по 1/30 секунды, любой замер воспроизводим. Поэтому трейлер снимается ботом без монтажной студии, звук собирается с таймкодов настоящих событий съёмки, а «стало лучше» всегда можно доказать числом. Случайность без зерна делает невозможным главное: сравнение до и после.

8. Честность встраивается в форму отчёта

У каждого агента в схеме ответа есть обязательное поле «что не получилось». Именно из него мы узнали про недоделанную яму воронки и фланкёра, срезающего сквозь стены, задолго до того, как это нашёл бы игрок. Агент, у которого нет места признаться, будет рапортовать об успехе. Это свойство формы, а не модели.

Полная методика: брифы ролей, схемы отчётов, устройство циклов и порогов: это рабочий инструмент Reymer Digital; делимся ею на клиентских проектах.

СМЕТА

Экономика

Чего это стоило
ресурссколькопримечание
Время~27 часовиз них ~15 агенты работали без человека
Генерация~5 млн токеновто, что модель реально написала
С кэшем~1.9 млрд97% это чтение кэша: повторная отправка уже посчитанного, самая дешёвая категория
Запросы9 113110 агентов трёх конвейеров + основная сессия
Meshy~200 кредитовсолдат с 8 движениями; автомат проиграл и не поехал
ElevenLabs16 звуковвключая дыхание и сердце для финала трейлера
Человекдесятки сообщенийи пять скриншотов, нашедших пять багов

Все цифры считает скрипт по журналу сессии, не по ощущениям. Полные протоколы (каждый отчёт агента, каждый вердикт критика дословно) лежат в дневнике разработки внутри проекта: 6 частей летописи и 2 200 архивных кадров.

СНЯТО БОТОМ

Трейлер

Оператор тоже агент

Мир шагает строго по 1/30 секунды, бот играет через настоящий ввод, а звук собирается с таймкодов событий съёмки: каждый из 110 выстрелов и шагов на своём месте. Финал: задержанное дыхание и сердцебиение в прицеле.

ПРИНЯТЬ БОЙ
бесплатно · без установки · с iPhone, горизонтально