Игра с Claude Code: как я сделал RTS «Генералы» в браузере за 4 дня
- Кому подойдёт
- Тема
- Вайбкодинг
Игра с Claude Code — это реально, даже если ты не программист. За четыре дня я прошёл путь от пустой папки до беты RTS «Генералы» на generalz.ru: три фракции, мультиплеер и боты. Весь код написал Claude Code. Я придумывал, рисовал концепты, принимал решения, играл и ругался, когда что-то было не так. Ниже — как это было и план, по которому можно повторить на своей игре.
Сначала — отдельный чат и файл CLAUDE.md с дизайном игры и правилами кода. Потом вторая сессия, где Opus раздаёт работу агентам Sonnet и Haiku. Я рисую концепты, играю и пишу замечания списком. Через 4 дня — рабочая бета в интернете.

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

Так игра встречает сейчас: бета 1.4.0, можно войти, зарегистрироваться или играть как гость.
Как сделать игру с ИИ: идея и CLAUDE.md
Всё началось с отдельного чата, код появился позже. В нём мы с Claude разложили игру по полочкам и записали в один файл — CLAUDE.md. Это одновременно дизайн-документ и инструкция для ИИ: Claude Code читает его в начале каждой сессии. Как устроен такой файл в обычном проекте, показано в наборе Claude Code с нуля. В моём файле две части.
- 🎯Дизайн игры
Что строим. Столпы: асимметричные фракции, генеральские очки, агрессия выгоднее обороны, пехота решает, живая карта, массовые армии. Три фракции с разной экономикой. Генератор карт, враждебные лагеря, ценный центр, разрушаемость. Роадмап по этапам, у каждого — критерий «готово, когда».
- 🛠️Разработка
Как устроен код и что нельзя нарушать. Сервер решает всё: урон, смерть и деньги считает только сервер, клиент шлёт команды и рисует картинку, читерить нечем. Туман войны тоже на сервере. Весь баланс в одном файле
config.ts. Боты играют по правилам людей. Каждая механика — с тестом.
Когда файл был готов, я открыл вторую сессию и написал примерно так: «Выступи менеджером и оркестратором, собери команду из агентов Sonnet и Haiku и реализуйте всё». Дальше старшая модель резала задачу на этапы, писала контракт на каждый («что делаем и как проверить») и раздавала куски агентам. Как формулировать такие задания, разобрано в гайде Задача для ИИ-агента. Агенты работали параллельно, каждый в своём модуле. Как распределять задачи между Opus, Sonnet и Haiku, разобрано в шпаргалке Какую модель Claude давать какой задаче.
Пока они писали код, я делал свою часть. Нарисовал в ChatGPT, а потом в Nano Banana концепты фракций, жизненный цикл зданий и техники (стройка → готово → повреждено → горит → руины), биомы карт, логотип и экраны интерфейса. Каждую картинку я кидал в чат, и она становилась частью документа: «модели делаем в этом духе», «футуристический биом не берём», «название — „Генералы“ вместо „Полигона“».
Идея уточнялась прямо по ходу игры. Я запускал сборку, играл и писал замечания списком: «техника должна давить пехоту», «шпиона почему-то сразу убивают», «все юниты открыты сразу — так неинтересно, пусть открываются исследованиями», «карты слишком одинаковые, пусть один игрок будет в низине, а другой на горе». Каждое такое решение записывалось обратно в CLAUDE.md с датой. Документ рос вместе с игрой и сейчас хранит всю историю решений. Как принимать работу агента без программиста, есть в гайде Приёмка работы агента.
План: повтори на своей игре
Это мой процесс, разложенный по шагам. К каждому шагу — наш готовый материал и промпт-шаблон: подставь свою игру в квадратные скобки.
- 1Отдельный чат для идеи
Разложи игру с Claude по полочкам. Код на этом шаге не пишем.
- 2CLAUDE.md из двух частей
«Дизайн игры» — что строим, «Разработка» — правила кода, которые нельзя нарушать.
- 3Вторая сессия — оркестратор
Opus режет работу на этапы с контрактом «что делаем и как проверить» и раздаёт агентам Sonnet и Haiku.
- 4Концепты в нейросетях
Пока агенты пишут код, рисуешь в ChatGPT или Nano Banana фракции, биомы, интерфейс и кидаешь картинки в чат.
- 5Играешь и пишешь замечания
Запускаешь сборку и отдаёшь список: что не так и как должно быть.
- 6Решения — в CLAUDE.md с датой
Документ растёт вместе с игрой, и агенты не забывают, о чём договорились.
- 7Деплой и живые люди
Я выложил игру на второй день: с этого момента можно было звать людей.
Шаг 1–2. Дизайн-документ. Готовые файлы правил проекта, которые можно взять за основу, — в бесплатном продукте Шесть файлов проекта для Claude Code. Шаблон под игру:
Помоги спроектировать мою игру и собери всё в один файл CLAUDE.md. Код пока не пиши.
Игра: [жанр и игра-референс, например RTS по мотивам Generals]. Где запускается: [в браузере по ссылке / на телефоне]. С кем играть: [друзья, боты].
Задавай вопросы по одному, пока не поймёшь игру. Потом напиши CLAUDE.md из двух частей:
1. «Дизайн игры»: 5–6 столпов, фракции или персонажи и чем они различаются, карта, роадмап по этапам. У каждого этапа — критерий «готово, когда».
2. «Разработка»: как устроен код и что нельзя нарушать. Возьми за основу правила: сервер решает всё (урон, смерть, деньги), клиент только шлёт команды и рисует картинку; весь баланс в одном файле config; боты играют по тем же правилам, что люди; каждая механика — с тестом.
…
Шаг 3. Оркестратор во второй сессии. Как писать агенту задачу с критерием «готово, когда», разобрано в шаблоне Рамки для агента. Промпт оркестратора:
Прочитай CLAUDE.md. Выступи менеджером и оркестратором: собери команду из агентов Sonnet и Haiku и реализуйте всё по роадмапу.
- Сам код не пиши: режь работу на этапы и на каждый пиши контракт — что делаем и как проверить.
- Раздавай куски агентам, каждому — свой модуль, пусть работают параллельно.
- После этапа проверь результат по контракту и тестам и скажи мне, как собрать и поиграть.
- Технологии выбирай самые эффективные для задачи, не оглядываясь на мои навыки.
…
Шаг 4. ТЗ под концепт-арт. Как держать один стиль и одного героя во всех картинках, есть в шпаргалке ИИ-видео с одним героем. Промпт для ТЗ:
Я буду рисовать концепты в нейросети для картинок (ChatGPT или Nano Banana). Напиши ТЗ на [лист фракции / биом карты / экран интерфейса / стадии здания: стройка → готово → повреждено → горит → руины]: что должно быть на картинке, стиль по CLAUDE.md, ракурс, формат и размер.
Когда я пришлю картинку, запиши в CLAUDE.md, что из неё берём в стиль игры и что не берём.
…
Шаг 5–6. Замечания после игровой сессии. Если после правки что-то сломалось, бери фразы из шпаргалки Ошибку — агенту. Шаблон списка замечаний:
Я поиграл в сборку. Замечания списком:
- [например: техника должна давить пехоту]
- [шпиона почему-то сразу убивают]
- [все юниты открыты сразу, пусть открываются исследованиями]
Для каждого замечания найди причину, предложи решение, раздай агентам и проверь тестом. Каждое принятое решение запиши в CLAUDE.md с сегодняшней датой.
…
Шаг 7. Выкладка на сервер. По шагам — в гайде Переезд на сервер. Промпт:
Подготовь игру к выкладке на мой сервер [VPS, домен]. Объясни по шагам, как запустить сервер так, чтобы он сам поднимался после падения, и как обновлять сборку. Ничего не удаляй и не меняй на сервере без моего «да».
…
Если это первая игра, попробуй процесс на простой: в наборе Танчики с нуля за вечер собирается браузерная игра с телефоном вместо пульта.
Технологии
| Что | Чем |
|---|---|
| Язык | TypeScript везде — один язык на клиенте и сервере |
| 3D-графика | Three.js: low-poly сцена, свет, тени, частицы, постобработка (bloom, tilt-shift) |
| Сборка клиента | Vite |
| Сервер и мультиплеер | Node.js + WebSocket (ws), 20 тиков симуляции в секунду |
| Хранилище | SQLite (node:sqlite): аккаунты, прогресс генералов, рейтинг, статистика |
| Тесты | Vitest |
| Хостинг | VPS с FastPanel, pm2, домен generalz.ru |
| Код | Claude Code: Opus — архитектор и оркестратор, Sonnet и Haiku — исполнители |
Серверные платформы вроде Laravel, Supabase и Nakama я рассматривал и отказался. Сказал Claude прямо: «Всё будем делать вайбкодом, выбирай самое эффективное, не оглядываясь на мои навыки». Получился один язык и один сервер: вторая система авторизации и второе лобби не понадобились.
Графика. Модели собраны процедурно, прямо в коде, из кубов, цилиндров и плоскостей: сотня с лишним юнитов и зданий, у каждого стадии стройки, повреждений и гибели. Позже часть моделей Claude делал сам в Blender через Blender MCP — что такое MCP, объясняет гайд MCP простыми словами. Концепт-арты и референсы я рисовал нейросетями: сначала в ChatGPT, потом в Nano Banana, а Claude писал мне под них ТЗ. Текстуры земли и материалов генерировались через Polza.ai, рабочая модель — Nano Banana Pro: утилита assets:terrain вырезает куски из концептов как образец стиля, отправляет запрос и ставит готовую текстуру в игру. Свет и цвет подогнаны под эталонные концепты: низкое солнце, длинные тени, холодный снег.

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

Логово Банзу в том же просмотрщике. Когда появится модель из Blender, она заменит процедурную одной командой.
Звук и голос. Голоса юнитов и объявления («Юнит готов», «База атакована») озвучивает встроенный синтезатор речи браузера — Web Speech API, русский голос, без внешних сервисов и файлов. Реплики Claude писал под характер фракций: Альянс — пафосные профи, Блок — бравые служаки, Банзу — разгильдяи. Отзыв на первую версию: «Озвучка норм, только больше шуток добавить». Выстрелы и взрывы — записи настоящего оружия, утилита audio:prep нарезает их и выравнивает громкость. Стройка, интерфейс и тревоги синтезируются в Web Audio на лету. Я ещё и музыкант, поэтому музыку для игры написал сам, без нейросетей: в меню и в бою играют мои треки в стилях hardbass и electrojungle. В бою музыка приглушается, а на время реплик ещё сильнее. Рок-треки остались запасным вариантом и включаются, только если что-то сломалось и мои треки не загрузились.
Возьми готовые треки с лицензией для игр. Музыку из Pixabay Music можно ставить в игру без указания автора. На OpenGameArt и Incompetech смотри лицензию у каждого трека: многие требуют указать автора в титрах. Треки можно сгенерировать в Suno, но для коммерческой игры нужен платный тариф: на бесплатном музыка только для личного использования. Попроси Claude Code сделать в игре экран «Авторы» и собрать туда лицензии всех треков.
Четыре дня
День 1, 2 октября: от документа до генератора карт. Вечером появилась первая играбельная версия: лобби по коду комнаты, одна фракция, танки, пехота, грузовики с ящиками, туман войны, авиаудар, бот. Дальше этапы шли по 20–40 минут: сетка карты и поиск пути через flow field (сотня юнитов обходит здания и не застревает), генератор карт по seed, строительство рабочим с «призраком» здания под курсором, дерево технологий, первая настоящая фракция Банзу, интерфейс по моим макетам.

Рабочий Банзу строит свалку: каркас здания, тележка с ящиками, слева задачи первого матча.
День 2, 3 октября: три фракции и выход в сеть. Банзу доведены до конца: норы, туннели, трофеи, шпион, угонщик. Деплой на generalz.ru — с этого момента можно было звать людей. Блок и Альянс, авиация, транспорт, исследования, звук. Гарнизоны и укрытия, лагеря мародёров, нейтральные здания, разрушаемость. Экран загрузки с шуточными фразами вроде «плавим пули» и «катаем ядра». К вечеру — beta 1.0.0 с полным циклом матча и мобильным HUD.
День 3, 4 октября: полировка. Текстуры из Polza.ai, Альянс и Блок стали различаться с первого взгляда, настоящие звуки оружия, сеть без заторов. По три танка на фракцию, мотоциклы, ударные дроны. «Штаб» — моя админка: онлайн, игроки, матчи, аналитика, баны.

«Штаб», раздел «Аналитика»: сколько матчей доведено до конца, как часто люди побеждают ботов разной сложности, когда начинают играть.
День 4, 5 октября: витрина. Демо-бой двух ботов и видеофон в меню, нарезанный из этих боёв. Через четыре дня у меня была рабочая бета в интернете. Всё, что было дальше, — углубление.
Что было потом
- Тактика. Пехота сама ищет укрытия, танки давят, отряды обходят с фланга. Кнопки «Окоп», «Капонир», «Обход».
- Генералы и прокачка, рейтинг, вход через Яндекс Игры и VK Play.
- Оптимизация. На слабых машинах игра тормозила, поэтому сделали автонастройку графики.
- Волна 10 «Глубина геймплея» — девять больших механик за три дня, о них ниже.
- Бот поумнел: перестал впадать в «экономическую кому» и научился беречь сборщиков.
Цифры: 45 коммитов, около 90 тысяч строк TypeScript, 70 файлов тестов и примерно 1 250 тестов. Коммитов мало, потому что каждый — целый этап. Симуляция гоняется без графики за секунды, и только тесты не дают новой механике тихо сломать старую.
Что сейчас есть в игре

Начало матча за Банзу: логово в центре, лагеря с ящиками вокруг, внизу постройки и горячие клавиши.
Три фракции с разной игрой
| Альянс | Блок | Банзу | |
|---|---|---|---|
| Идея | мало юнитов, дорогие и умные | толпа и тяжёлая броня | дёшево, быстро, исподтишка |
| Экономика | сборщик, энергия критична | грузовики «Тягач», реактор | рабочие пешком, энергии нет |
| Фишка | дроны, разведка, точные удары | бонус орды, пропаганда | норы, туннели, трофеи, шпионы |
Банзу — самая проработанная фракция. Здание после уничтожения оставляет нору и через минуту отстраивается бесплатно, если на ней не стоит враг: базу мало разбить, её надо удержать. Туннели связаны между собой — зашёл на своей базе, вышел у врага в тылу. Из подбитой техники выпадает металлолом, и машины Банзу, подобрав его, обрастают приваренной бронёй прямо на модели. Шпион выглядит для врага как его собственный юнит, угонщик забирает чужую машину, «Злая толпа» из восьми бунтарей с бутылками поджигает здания и выкуривает гарнизоны.

Логово — штаб Банзу. Потеряешь его — проиграешь.

Бараки Банзу: ополченец, гранатомётчик и калашник доступны сразу, токсикант, шпион и угонщик открываются исследованиями и чёрным рынком.
Генералы. Девять генералов, по три на фракцию. У каждого стартовый перк и дерево: три ветки по четыре узла. Опыт копится за матчи, в матч генерал берёт колоду из шести приказов. Чтобы прокачка не ломала честность, в быстром матче есть подбор по боевому рейтингу, а хост может включить «Равные условия».

Генерал Чума: общие силы вроде авиаудара и разведки и своя сила Банзу — ядовитый дождь. Уровни открываются со званием.
Карты. Генерируются из seed: код вида ТАЙГА-С3Н-7F3A даёт другу ту же карту. Размер до 1000×1000 м, до шести игроков, четыре биома: тайга, пустыня, степь, индустриальные руины. Главное решение — асимметрично, но честно. Зеркальные карты я отменил в первый же день: скучно. Одна база в низине, другая на холме, третья за рекой. Генератор оценивает позиции и даёт слабой больше ресурсов, а карту, где путь до врага или экономика различаются больше чем на 15%, проверка не выпускает. На карте есть реки с мостами, которые можно взорвать и починить, плотина (взорвёшь — низина уйдёт под воду до конца матча), лагеря мародёров, нейтральные здания и воронки, которые остаются в рельефе и рвут гусеницы.

Чужая база на карте тайги: вертолётная площадка, укрепления, пехота держит дорогу.
Бой. Матрица «оружие × броня»: каждый юнит хорош против своего и плох против остального. Пехота занимает дома и руины и стреляет из окон, газ и огнемёт её выкуривают. В лесу, у камней и в окопе пехота получает меньше урона. Пехота садится на технику и стреляет с брони: посадил гранатомётчика в пикап — и пикап бьёт танки. Есть авиация, ПВО, невидимость и детекторы.
Волна 10: глубина геймплея
Я хотел, чтобы бой выигрывал тот, кто лучше маневрирует и снабжает армию. Для этого добавили:
- 🪖Экипажи
Опыт копится у экипажа. Подбили танк — экипаж выпрыгивает, садится в новый, и ветеранство сохраняется.
- ⚙️Подсистемы техники
Можно сбить гусеницу, ствол или двигатель. Брошенный корпус остаётся на поле, его можно забрать.
- 📦Боезапас
Танк без снарядов стоит и ждёт подвоза. Логистику ведёт игрок.
- 🗺️Лимит армии от территории
Кто сидит на базе, упирается в 125 юнитов. Кто держит склады, нейтралки и центр, доходит до 240.
- 💎Второй ресурс у каждой фракции
У Альянса разведданные, у Блока мобилизация от собственных потерь, у Банзу металлолом.
- 🧭Тактический слой
Обход с фланга, удар в борт, мораль. Тягач-эвакуатор утаскивает подбитую технику, радиоперехватчик подслушивает врага.
Боты и сервис. Боты нескольких уровней сложности строят базу, возят ящики, исследуют, атакуют волнами и кидают авиаудар по скоплениям. Комнаты по коду и ссылке, обновил страницу — вернулся в матч. Аккаунты, рейтинг, лидерборд. Игра работает на телефоне: мобильный HUD, тач-камера, стройка пальцем. Сборки под Яндекс Игры и VK Play готовы.
Что дальше: оптимизация под 450 юнитов в матче и бинарный сетевой протокол, модели из Blender вместо процедурных, рейтинг Glicko-2 и общий чат с модерацией. Монетизация — только косметические скины, без pay-to-win. Поиграть: generalz.ru.
Правила в CLAUDE.md и тесты на каждую механику держат проект, когда кода становится 90 тысяч строк. Без них новая фича тихо ломает старую, и замечаешь это только в бою.
Частые вопросы
Можно ли сделать игру с Claude Code без программиста?+
Весь код «Генералов» написал Claude Code. Моя часть — дизайн-документ, концепты, решения и игровые тесты. За четыре дня получилась бета с тремя фракциями, мультиплеером и ботами.
Какой стек выбрать для браузерной игры?+
Я доверил выбор Claude с условием «самое эффективное, не оглядываясь на мои навыки». Получилось: TypeScript на клиенте и сервере, Three.js для 3D, Vite, Node.js с WebSocket, SQLite и Vitest для тестов.
Как сделать графику для игры без художника?+
Модели собраны процедурно в коде из простых фигур, часть Claude сделал в Blender через Blender MCP. Концепты я рисовал в ChatGPT и Nano Banana, текстуры генерировались через Polza.ai.
Где взять музыку для игры, если не пишешь её сам?+
Готовые треки с лицензией для игр есть в Pixabay Music, на OpenGameArt и Incompetech, у части из них нужно указать автора. Можно сгенерировать музыку в Suno, но для коммерческой игры нужен платный тариф. В «Генералах» музыка моя: я пишу её сам.
Как не сломать старые механики, когда добавляешь новые?+
Правило в CLAUDE.md: каждая механика — с тестом. Сейчас в игре около 1 250 тестов, симуляция прогоняется без графики за секунды.
Как раздать работу нескольким агентам?+
Во второй сессии старшая модель становится оркестратором: режет задачу на этапы, пишет контракт на каждый и раздаёт куски агентам Sonnet и Haiku. Шаблон промпта есть в плане выше. Схема делегирования описана в шаблоне Claude — начальник штаба.
Что взять дальше
- Собрать первую браузерную игру за вечер — Танчики с нуля, бесплатно.
- Распределить работу между Opus, Sonnet и Haiku — Какую модель Claude давать какой задаче, бесплатно.
- Раздавать задачи агентам в фоне — Claude — начальник штаба, бесплатно.
- Настроить CLAUDE.md, агентов и команды — Claude Code с нуля, бесплатно.
- Проверить идею продукта за вечер — Микропродукт за вечер, бесплатно.
- Описать задачу так, чтобы агент сделал с первого раза — Как написать ТЗ для ИИ-агента, бесплатно.
- Выложить проект в интернет — Где разместить проект новичку, бесплатно.
- Пройти путь от идеи до работающего экрана по системе — курс Первый экран, 990 ₽.
Применить на деле
Разовая покупка
Первый экранЧерез два дня откроешь в браузере экран своего продукта, собранный сам
Прочитать мало — собери. Шесть шагов от идеи до работающего экрана в браузере, без кода.
Взять за 990 ₽Разовая покупка
Матрица продуктовОт экспертизы к линейке продуктов: лид-магнит, трипвайр, основной продукт, флагман
Из экспертизы — в линейку продуктов: лид-магнит, трипвайр, основной продукт и флагман.
Взять за 990 ₽Или всё сразу
VIBERZ Team — 29 900 ₽
4 недели в группе: от идеи до MVP по ссылке, с созвонами и разборами. Pro-доступ ко всей библиотеке включён.