Космический шутер нейросетью: собрать игру текстом
Космический шутер собирается текстом за одно описание: корабль внизу экрана, волны врагов сверху, стрельба и жизни. Zugo пишет код, проверяет сборку в песочнице и отдаёт играбельную версию примерно за минуту. Темп волн и скорострельность потом доводятся короткими правками в чате.
Жанр удобен тем, что его правила короткие, а ощущение зависит от нескольких чисел. Именно поэтому первая сборка почти всегда играбельна, а вторая и третья правки решают, интересно ли в это играть.
Какой шутер реально собрать одним описанием?
Надёжная цель это вертикальная аркада: ваш корабль движется влево и вправо внизу, враги идут сверху вниз волнами, вы стреляете, попадания уничтожают противников, столкновение отнимает жизнь. Всё это модель собирает уверенно.
Сверху хорошо ложатся привычные надстройки: бонусы за сбитых, ускоренная стрельба на время, щит, босс в конце волны. Каждая добавляется отдельной правкой, а не переписыванием игры.
Работает и горизонтальный вариант, где корабль летит слева направо, а препятствия и враги набегают сбоку. Выбрать направление стоит до промпта: от него зависит и раскладка экрана, и то, как игра будет чувствоваться на телефоне.
Чего одно описание не даст, так это трёхмерного космоса с полётом между кораблями и сюжетными сценами. Это другой класс проекта. Что вообще собирается из текста, разобрано в статье игры без кода.
Что написать в промпте?
Шесть строк. Первые две решают, будет ли в это приятно играть, остальные задают содержание.
| Элемент | Слабая формулировка | Сильная формулировка |
|---|---|---|
| Управление | «управление стрелками» | «стрелки двигают корабль влево и вправо, движение плавное» |
| Стрельба | «стрелять» | «пробел стреляет, есть небольшая задержка между выстрелами» |
| Враги | «враги» | «волны по пять кораблей, идут вниз змейкой и стреляют в ответ» |
| Жизни | не сказано | «три жизни, попадание отнимает одну и даёт секунду неуязвимости» |
| Прогресс | не сказано | «каждая следующая волна быстрее и многочисленнее» |
| Счёт | не сказано | «очки за сбитого, счёт и рекорд сверху» |
Строка про задержку между выстрелами важнее, чем кажется. Без неё зажатая клавиша превращает экран в сплошную стену снарядов, и целиться становится незачем.
Строка про неуязвимость после попадания спасает от самой обидной смерти в жанре: когда три жизни сгорают подряд за полсекунды, потому что корабль остался внутри врага.
Полезно назвать и размер попадания. Просьба «считать попаданием только центр корабля, а не всю его картинку» делает игру заметно честнее на вид: снаряды, прошедшие рядом с крылом, перестают убивать, и уклонение начинает работать так, как выглядит.
Как это выглядит по шагам?
- Опишите игру двумя предложениями. Например: «Вертикальный космический шутер: корабль внизу, стрелки двигают, пробел стреляет с задержкой, сверху волны по пять врагов, три жизни, каждая волна быстрее, счёт и рекорд сверху».
- Дождитесь проверенной сборки. Простая игра появляется примерно за минуту. Перед выдачей она запускается в песочнице, и сборка, которая не открылась, помечается неудачной.
- Сыграйте до проигрыша. Проверьте не только стрельбу, но и то, что происходит после третьей потерянной жизни: экран итога и кнопка новой партии забываются чаще всего.
- Правьте по одному параметру. «Враги идут медленнее в первой волне», «дай бонус двойного выстрела за десять сбитых», «добавь взрыв и лёгкое дрожание экрана при попадании».
- Опубликуйте в один клик на адрес вида
имя-игры.zugo.run, ссылка открывается на любом устройстве.
Правка дешевле догадки, поэтому первую версию имеет смысл делать простой и наращивать её, глядя на игру.
Почему шутер ощущается вялым?
Обычно из-за отклика, а не из-за механики. В аркаде игрок должен физически чувствовать каждое попадание, и это дают мелочи, которых в первой сборке нет.
Просите их прямо: вспышка на месте попадания, короткий разлёт обломков, лёгкое дрожание экрана при взрыве, отдача корабля при выстреле, нарастающий гул при появлении босса. Каждая мелочь это одна фраза в чате, а вместе они меняют игру сильнее, чем новый тип врага.
Вторая причина вялости это темп. Если первая волна идёт медленно и долго, игрок скучает раньше, чем начнётся интересное. Просите начинать бодро, а сложность наращивать не количеством врагов, а их скоростью и плотностью огня.
Третья причина это отсутствие риска. Враги, которые не стреляют в ответ, превращают игру в тир. Одна строчка про ответный огонь возвращает напряжение.
Как выстроить волны, чтобы игра держала?
Волна это не просто пачка врагов, а короткая сцена с началом и концом. Игрок должен успеть понять правило, применить его и увидеть результат: тогда следующая волна воспринимается как продвижение, а не как повтор.
Простой рабочий порядок: первая волна учит стрелять, вторая добавляет ответный огонь, третья меняет построение, четвёртая ускоряется, пятая приводит босса. Пять волн уже дают ощущение игры, и каждую из них можно попросить отдельной правкой.
Между волнами стоит оставить паузу в пару секунд с надписью о номере волны. Пауза дороже, чем кажется: она даёт выдохнуть и разделяет игру на куски, которые запоминаются. Как формулировать такие последовательные изменения, разобрано в гайде как редактировать проект после генерации.
Стоит ли начать с шаблона Starforge?
Да, если хочется сразу увидеть цель. Starforge это готовый космический шутер на волнах из галереи Zugo, он открывается играбельным, и по нему видно, как выглядит собранная аркада этого жанра.
Клон шаблона в ваш проект бесплатен: кредиты не списываются и генерация не запускается, потому что копируется уже готовая страница. Дальше вы правите её теми же сообщениями, что и любую сборку.
Переделывать работающую игру часто быстрее, чем описывать новую с нуля: смените палитру, добавьте свой тип врага, поменяйте оружие, вставьте босса. Полный состав галереи разобран в статье шаблоны Zugo, а второй разбор жанра с другими примерами промптов лежит в статье космический шутер без кода.
Как играть в него на телефоне?
Клавиатуры нет, поэтому управление надо назвать в промпте отдельно. Для вертикального шутера лучше всего работает схема, где корабль следует за пальцем, а стрельба идёт сама.
Автоматическая стрельба на сенсорном экране это не упрощение, а необходимость: держать палец на кнопке огня и одновременно уводить корабль от снарядов на маленьком экране физически неудобно.
Второй вопрос это форма поля. Вертикальный шутер естественно ложится в вертикальный экран, но игровую зону стоит просить вписанной в ширину, чтобы корабль не уходил под палец. Проверять надо на настоящем телефоне и на опубликованном адресе.
Сколько кредитов уйдёт?
Считайте сборку и несколько кругов настройки темпа.
| Действие | Кредитов |
|---|---|
| Сборка игры | 6 |
| Одна правка | 3 |
| Сборка в режиме Hi-Fi | 12 |
| Правка в режиме Hi-Fi | 6 |
Типичный маршрут: сборка, правка на темп волн, правка на отклик и взрывы, правка на бонусы, правка на сенсорное управление. Около 18 кредитов. Pro стоит $25 в месяц и даёт 200 кредитов, то есть 33 сборки или 66 правок, Business стоит $99 в месяц.
Про Free честно: он даёт 5 кредитов, а сборка стоит 6, поэтому шутер с нуля на бесплатном тарифе не соберётся. Клонировать Starforge и посмотреть, как он устроен, можно без списаний.
Где границы у такой сборки?
Игры двумерные и живут в браузере. Для аркадного шутера это почти не мешает, но трёхмерная космическая симуляция сюда не помещается.
Графика это фигуры, цвета и загруженные вами картинки, а не готовые наборы анимированных спрайтов. Неоновая и минималистичная стилистика получается хорошо, узнаваемые корабли из известной франшизы нет.
Общая таблица рекордов требует базы данных, то есть подключения Supabase и работы поверх игры. Длинная игра с двадцатью типами врагов и сюжетом собирается серией правок, а не одним промптом. И главное правило: Zugo не заменяет команду разработки на большом проекте, зато код ваш и выгружается в GitHub.
С чего начать?
Опишите корабль, стрельбу и первую волну. Этого хватит для играбельной версии, а дальше вы будете править её, уже чувствуя темп руками.
Если чистый лист мешает, клонируйте Starforge и переделайте под себя, это ничего не стоит. Сравнить два подхода полезно на практике: одна сборка с нуля и один переделанный шаблон обходятся дешевле, чем неделя раздумий, какой путь правильнее. Собрать свою версию можно на zugo.dev.