БесплатноПродукт

Игра с Claude Code: как я сделал RTS «Генералы» в браузере за 4 дня

Основатель VIBERZ27 октября 202620 мин Средний43

Игра с Claude Code — это реально, даже если ты не программист. За четыре дня я прошёл путь от пустой папки до беты RTS «Генералы» на generalz.ru: три фракции, мультиплеер и боты. Весь код написал Claude Code. Я придумывал, рисовал концепты, принимал решения, играл и ругался, когда что-то было не так. Ниже — как это было и план, по которому можно повторить на своей игре.

● Коротко

Сначала — отдельный чат и файл CLAUDE.md с дизайном игры и правилами кода. Потом вторая сессия, где Opus раздаёт работу агентам Sonnet и Haiku. Я рисую концепты, играю и пишу замечания списком. Через 4 дня — рабочая бета в интернете.

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

Экран входа в «Генералы» на generalz.ru: логотип, лес в снегу и форма входа

Так игра встречает сейчас: бета 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. 1Отдельный чат для идеи

    Разложи игру с Claude по полочкам. Код на этом шаге не пишем.

  2. 2CLAUDE.md из двух частей

    «Дизайн игры» — что строим, «Разработка» — правила кода, которые нельзя нарушать.

  3. 3Вторая сессия — оркестратор

    Opus режет работу на этапы с контрактом «что делаем и как проверить» и раздаёт агентам Sonnet и Haiku.

  4. 4Концепты в нейросетях

    Пока агенты пишут код, рисуешь в ChatGPT или Nano Banana фракции, биомы, интерфейс и кидаешь картинки в чат.

  5. 5Играешь и пишешь замечания

    Запускаешь сборку и отдаёшь список: что не так и как должно быть.

  6. 6Решения — в CLAUDE.md с датой

    Документ растёт вместе с игрой, и агенты не забывают, о чём договорились.

  7. 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 — начальник штаба.

Что взять дальше

Применить на деле

Разовая покупка

Первый экран

Через два дня откроешь в браузере экран своего продукта, собранный сам

Прочитать мало — собери. Шесть шагов от идеи до работающего экрана в браузере, без кода.

Взять за 990 ₽

Разовая покупка

Матрица продуктов

От экспертизы к линейке продуктов: лид-магнит, трипвайр, основной продукт, флагман

Из экспертизы — в линейку продуктов: лид-магнит, трипвайр, основной продукт и флагман.

Взять за 990 ₽

Или всё сразу

VIBERZ Team — 29 900 ₽

4 недели в группе: от идеи до MVP по ссылке, с созвонами и разборами. Pro-доступ ко всей библиотеке включён.

Узнать про Team
вайбкодингclaude codeИИ-агентыCLAUDE.mdкейс с ИИ

Читайте дальше