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