Перейти к содержимому

Защита башен нейросетью: как собрать игру без кода

Защита башен собирается текстом, если описать четыре вещи: путь врагов, точки под башни, волны и деньги за убитых. Zugo пишет код, проверяет сборку в песочнице и отдаёт играбельную версию примерно за минуту. Дальше начинается настоящая работа жанра, а это баланс.

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

Что именно получится собрать?

Классику: по карте идёт дорожка, по ней от входа к базе движутся враги, вдоль дорожки есть места под башни, башни стреляют автоматически по тем, кто в радиусе. Дошедший враг отнимает жизнь у базы, за убитого дают деньги, на деньги ставятся новые башни.

Такая игра целиком описывается текстом, потому что игрок в ней не управляет ничем в реальном времени. Он только решает, что и куда поставить, а дальше смотрит.

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

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

Что написать в промпте?

Шесть строк, и половина из них про экономику, а не про стрельбу.

Элемент Слабая формулировка Сильная формулировка
Карта «карта с башнями» «фиксированный путь от левого края к базе справа»
Места «ставить башни» «башни ставятся только на серые площадки вдоль пути»
Башня «башня стреляет» «одна башня: стреляет по ближайшему врагу в радиусе»
Враги «враги идут» «волны по десять врагов, каждая следующая крепче»
Деньги не сказано «старт сто монет, башня стоит пятьдесят, за врага дают пять»
База не сказано «у базы двадцать жизней, дошедший враг отнимает одну»

Строка про деньги решает всё. Без конкретных чисел генерация подставит свои, и игра окажется либо непроходимой, либо проходимой без единого решения.

Строка про один тип башни выглядит скромно, и это намеренно. Одна башня, три волны и понятная экономика лучше, чем четыре башни, в которых вы не разберётесь, какая из них сломала баланс.

Как это выглядит по шагам?

  1. Опишите карту, башню и экономику. Например: «Защита башен: путь от левого края к базе справа, площадки для башен вдоль пути. Одна башня стоит пятьдесят монет, стреляет по ближайшему врагу. Старт сто монет, за врага пять. Волны по десять, у базы двадцать жизней».
  2. Дождитесь проверенной сборки. Простая игра появляется примерно за минуту, и перед выдачей она запускается в песочнице: та, что не открылась, помечается неудачной.
  3. Пройдите три волны. Именно столько нужно, чтобы понять, растут ли деньги быстрее, чем крепнут враги. Это главный вопрос жанра.
  4. Правьте по одному числу. «Награда за врага четыре вместо пяти», «третья волна вдвое крепче», «дай башне больший радиус». Меняя два числа сразу, вы теряете причину результата.
  5. Опубликуйте в один клик на адрес вида имя-игры.zugo.run и отправьте ссылку.

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

Почему баланс это главная работа?

Потому что интересное решение возможно только в узком коридоре чисел. Если денег много, игрок заставляет карту башнями и выигрывает без раздумий. Если мало, он проигрывает независимо от расстановки, и решения снова не существует.

Ориентир простой: после каждой волны у игрока должно хватать примерно на одну новую башню или одно улучшение. Тогда каждая волна это выбор, а не арифметика.

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

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

Как добавлять башни и врагов дальше?

По одному типу за правку, и каждый новый тип должен отвечать на конкретную проблему игрока.

Медленная башня с большим уроном отвечает на редких крепких врагов. Башня, замедляющая цель, отвечает на быстрых. Башня с уроном по площади отвечает на плотную толпу. Если новый тип не отвечает ни на что, он просто дороже старого и не нужен.

Точно так же с врагами: быстрый, бронированный, летящий над путём, лечащий соседей. Каждый должен ломать одну привычную тактику, иначе волны различаются только числом здоровья и перестают удивлять.

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

Что чаще всего ломается в первой сборке?

Три вещи, и все три видны за одно прохождение.

Первая: башни стреляют сквозь всю карту или, наоборот, почти не достают. Радиус в промпте обычно не назван, и генерация выбирает его наугад. Просите показывать круг радиуса при постановке: тогда и вам, и игроку сразу видно, что происходит.

Вторая: волна начинается сама, не дав поставить башню. Скажите, что между волнами есть пауза, а следующая запускается кнопкой. Заодно это даёт игроку темп, которым он управляет сам.

Третья: деньги за врага начисляются, даже если он дошёл до базы. Мелочь, но она ломает всю экономику, потому что провал перестаёт быть провалом.

Как играть в это на телефоне?

Легче, чем в любую аркаду: здесь нет реакции, только касания по площадкам. Именно поэтому жанр хорошо живёт на телефоне и стоит сразу просить сенсорную версию.

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

Проверять надо на настоящем телефоне и на опубликованном адресе. Проверка в песочнице перед выдачей отвечает лишь на вопрос, запустилась ли сборка, а не на вопрос, попадает ли палец в нужную площадку.

Сколько кредитов уйдёт?

Больше, чем в аркадах, потому что баланс требует нескольких кругов.

Действие Кредитов
Сборка игры 6
Одна правка 3
Сборка в режиме Hi-Fi 12
Правка в режиме Hi-Fi 6

Реалистичный маршрут: сборка, три правки на экономику, две на новые типы башен и врагов, одна на сенсорное управление. Около 24 кредитов. Pro стоит $25 в месяц и даёт 200 кредитов, это 33 сборки или 66 правок, Business стоит $99 в месяц.

Про Free честно: 5 кредитов меньше стоимости одной сборки, поэтому собрать такую игру с нуля на бесплатном тарифе нельзя. Клон готового шаблона из галереи кредитов не тратит.

Где границы у такой сборки?

Игры двумерные и браузерные. Для защиты башен это родной формат, так что здесь ограничение почти не мешает.

Шаблона именно этого жанра в галерее нет: из пяти игровых стартовых точек ни одна не про башни, и начинать придётся с описания. Зато механика хорошо известна модели, и первая сборка обычно работает.

Свободная постановка башен где угодно и поиск пути, который перестраивается вокруг них, это заметно более сложная задача, чем фиксированные площадки. Её доводят серией правок, а не одним промптом, и начинать с неё не стоит. И общее правило: на большом проекте Zugo не заменяет команду разработки, зато код ваш и выгружается в GitHub.

С чего начать?

Возьмите одну карту, одну башню и три волны. Напишите конкретные числа для денег и здоровья, даже если они кажутся взятыми с потолка: их всё равно предстоит менять, а без них не с чего начинать.

Пройдите свою игру дважды и посмотрите, было ли у вас хоть одно интересное решение. Если было, добавляйте второй тип башни. Общий подход к промптам для игр разобран в гайде как создать игру нейросетью, а собрать первую карту можно на zugo.dev.

← Все статьи