Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Battle Drones: создание браузерной RTS с помощью ИИ и звукового мультиплеера

Разработка полноценной стратегии в реальном времени традиционно требует слаженной работы геймдизайнеров, программистов и 3D-моделлеров. Однако развитие автономных программных агентов меняет этот процесс: Саймон Уиллисон продемонстрировал эксперимент, в рамках которого браузерная стратегия в реальном времени Battle Drones была практически полностью создана нейросетями под управлением коротких текстовых указаний.

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

Концепция и первые итерации Battle Drones

Исходной задачей проекта было создание мобильной RTS в стилистике классической Command & Conquer 1995 года и Red Alert. Создатель проекта практически не писал код вручную и не владел языком TypeScript, полагаясь на концепцию «vibe coding» — управление процессом через высокоуровневые промпты для агентов Claude Code. За 12 основных версий агенты совершили 321 коммит.

Реклама
Игровой процесс Battle Drones v2 со спрайтами техники и зданий
Вторая итерация стратегии с добавлением разнообразной техники и режима наблюдения.

Работа началась в июле с модели Claude Fable 5. Агенту была поставлена задача разработать мобильную RTS, где две армии наземных и летающих дронов сражаются за ресурсы и базу. Через веб-интерфейс Claude Code получил доступ к ключу OpenAI Image Generation API для отрисовки графики. В первой версии (v1) система использовала двухмерный движок Phaser. Игра имела базовые механики строительства, выделения юнитов и элементарный ИИ, но игровой процесс оставался скучным.

Во второй версии (v2) появились спрайты для всей техники и режим «AI vs AI», позволивший наблюдать за сражениями без прямого участия игрока. Агент самостоятельно генерировал промпты для создания графических ресурсов через API.

Переход на Claude Opus 5.5 и обновление баланса

В октябре к проекту подключили Claude Opus 5.5 с задачей масштабного улучшения визуального ряда и геймплея. Версия v3 получила пять карт с процедурными тайлами окружения и перерисованные спрайты. Несмотря на возросшее качество графики, игровой процесс все еще не увлекал.

Игровое поле Battle Drones v3 с улучшенными тайлами ландшафта
Версия v3 получила обновленные карты с разнообразными природными зонами.

Переломным моментом стало обновление v4. Уиллисон запустил Claude Code в режиме Ultracode с лаконичным запросом: «Эта игра недостаточно увлекательная. Сделай ее НАМНОГО веселее». Режим Ultracode использует динамические сценарии на JavaScript, координирующие работу множества субагентов одновременно.

Агент работал автономно всю ночь. Чтобы решить проблему увлекательности, ИИ провел более 1200 симуляций матчей между алгоритмами на нормальной сложности, собирая статистику. На основе этих тестов агент переработал баланс:

Интерфейс обновления v4 игры Battle Drones с панелью способностей и миникартой
Версия v4, сбалансированная после проведения более тысячи симуляций матчей между ИИ.
  • Доля затяжных ничейных матчей, длящихся более 25 минут, снизилась с 14% до 0,9%.
  • Вероятность победы стороны, отстающей более чем на 800 единиц ресурсов (металлолома), выросла с 24% до 46%, что добавило механику камбэков.
  • Появился выбор начальной специализации перед стартом: Blitz, Industry или Air Wing.
  • Были внедрены орбитальные удары и спецспособности: артобстрел (Barrage), электромагнитный импульс (EMP), высадка десантных капсул (Drop Pod) и Sky Hammer.
  • Добавились интерактивные точки на карте: ретрансляторы связи (Uplinks), контейнеры с ресурсами и обломки техники.
  • Появились адаптивное звуковое оформление, озвучка юнитов, режим выживания Last Stand и кампания из восьми операций.

Перенос на Three.js и трехмерная графика

После успеха четвертой версии Claude получил команду переписать весь проект на Three.js, создав процедурные 3D-модели для техники, зданий и окружения. В версии v5 агент полностью сгенерировал низкополигональные модели на чистом коде TypeScript без использования внешних редакторов вроде Blender.

Реклама

В последующих апдейтах v6 и v7 в игру добавили пехоту (стрелков, ракетчиков, снайперов) и транспортный конвертоплан «Кондор». Однако в стандартных условиях искусственный интеллект редко использовал пехотные десанты из-за отсутствия явных тактических преимуществ.

Трехмерные модели зданий и техники в Battle Drones v5 на Three.js
Полный перенос игры на движок Three.js с процедурными 3D-моделями на TypeScript.

Карта Архипелаг и тяжелый мех «Голиаф»

Для стимулирования комбинированных атак в версии v8 разработчик вручную сформулировал подробное техническое задание на создание тропической карты «Архипелаг». По замыслу локация требовала обязательного использования десанта:

  • Наземные базы сторон разделены водой и соединены лишь двумя узкими мостами.
  • На изолированных островах размещены ключевые ретрансляторы, которые нельзя захватить воздушной или тяжелой наземной техникой напрямую.
  • Единственный способ захвата островов — доставить роботов-пехотинцев на борту «Кондора».
  • Каждая база изначально снабжается одним бесплатным транспортником со взводом пехоты, а в случае его гибели транспорт вызывается повторно с края карты.

В версии v10 в игру был введен колоссальный шагающий робот «Голиаф», вдохновленный титанами из Warhammer 40,000 и мехами из «Тихоокеанского рубежа». Чтобы построить «Голиафа», требуется возвести цепочку высокотехнологичных фабрик (Fab, Bay, Airpad, Tech Lab) и сборочный док (Gantry).

Островная карта Архипелаг в трехмерной стратегии Battle Drones
Островная карта, созданная для стимулирования воздушных десантных операций.

Мех оснащен лазерами в оптических сенсорах, тяжелыми наплечными орудиями и пулеметами. По мере получения урона тяжелые орудия выходят из строя. «Голиаф» умеет переходить в осадный режим, закрепляясь в грунте: в таком виде он превращается в мобильный командный пункт, позволяющий строить здания и пехоту на передовой. Кроме того, сразу два «Кондора» могут зацепить меха тросами и перенести его по воздуху через препятствия.

Сражения нейросетей и звуковой мультиплеер

Еще одной важной механикой версии v10 стал режим «Agent vs Agent». Создатель интегрировал программный интерфейс, позволяющий сторонним большим языковым моделям играть в Battle Drones друг против друга в текстово-инструментальном режиме. Модели (например, Claude Haiku 5.5 и GPT-6) получают структурированные данные о состоянии карты с учетом тумана войны и отдают команды подразделениям через вызовы функций. Система умеет записывать логи матчей и визуализировать ход мыслей моделей в реальном времени.

В версии v11 по короткому запросу был добавлен генератор симметричных процедурных карт, а в v12 реализован необычный способ сетевой игры: передача данных без интернета и локальной сети через аудиоканал.

Интерфейс отладки матча между нейросетями в Battle Drones
Панель отладки и логирования команд в матче между моделями Claude и GPT.

Вместо развертывания выделенного сервера Уиллисон поручил Claude адаптировать акустический протокол. Система работает как классический звуковой модем прямо в браузере: два смартфона или ноутбука, находящиеся в одной комнате, кодируют пакеты команд в звуковые сигналы и принимают их через стандартный веб-доступ к микрофону. Это позволило сохранить формат статического HTML-приложения без каких-либо серверных затрат.

Сетка процедурно сгенерированных карт разных биомов в Battle Drones
Примеры симметричных локаций, созданных генератором уровней за 45 минут работы модели.

Технические выводы автора эксперимента

По итогам эксперимента автор выделил ряд особенностей современной вайб-разработки сложных веб-приложений:

  • Стек технологий: статичный стек HTML, WebGL и Three.js идеально подходит для нейросетевой генерации, так как модели отлично знают API этих библиотек. Приложение способно работать автономно в режиме PWA без подключения к сети.
  • Синхронизация физики: для корректной работы мультиплеера и реплеев Claude пришлось переписать тригонометрические функции Math.sin() и Math.cos() на кастомные детерминированные алгоритмы, так как реализации в Chrome и Safari давали минимальные расхождения в вычислениях.
  • Генеративный звук: саундтрек игры написан кодом на лету без единого предзаписанного аудиофайла, динамически меняя темп и напряженность в зависимости от плотности огня на карте.
  • Роль автономных сценариев: агенты способны самостоятельно создавать инструменты для отладки, собирать телеметрию и проводить тысячи тестовых сессий для балансировки механик.
01.