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

Как сделать аркадные гонки нейросетью: промпт и доводка

Опишите трассу, управление и условие проигрыша, и Zugo соберёт браузерную 2D-гонку: машина уклоняется от трафика на прокручивающейся дороге, скорость растёт, счёт идёт за пройденное расстояние. Сборка стоит 600 кредитов, доводка идёт короткими правками по 300 кредитов. Трёхмерная трасса и физика подвески так не появятся.

Эта оговорка определяет весь дальнейший разговор. Аркадная гонка это не симулятор, а игра про реакцию, и именно поэтому она хорошо ложится в текстовое описание.

Какие гонки реально собираются текстом?

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

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

Что не укладывается: настоящая трёхмерная трасса с рельефом, модель сцепления шин, дрифт как физическое явление, сетевые заезды с другими игроками. Это другой класс задач, который решается движком и командой разработки, а не описанием. Общая рамка того, что вообще получается собрать текстом, разобрана в статье может ли нейросеть сделать игру.

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

Что назвать в промпте для гонки?

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

Что назвать Зачем это нужно Пример формулировки
Вид и направление Задаёт всю схему движения «Вид сверху, дорога прокручивается вниз»
Управление Иначе будет неудобно с первой секунды «Стрелки влево и вправо, три полосы»
Препятствия Из них состоит вся игра «Встречные машины появляются случайно»
Рост сложности Без него скучно через полминуты «Скорость растёт каждые 15 секунд»
Конец забега Даёт цель и повод переиграть «Три столкновения, потом экран результата»

Хороший промпт целиком выглядит так: «Аркадная гонка, вид сверху, дорога из трёх полос прокручивается вниз. Машина двигается стрелками влево и вправо. Навстречу случайно появляются другие машины, столкновение отнимает одну из трёх жизней. Скорость растёт каждые пятнадцать секунд, счёт идёт за расстояние. Экран проигрыша с кнопкой перезапуска».

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

Как устроен цикл, который делает гонку интересной?

Из трёх частей, и если хоть одна отсутствует, игра ощущается пустой независимо от графики.

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

Вторая часть: выбор в каждый момент. Три полосы дают выбор, одна не даёт ничего. Если препятствия появляются так, что проезд всегда единственный, игра превращается в реакцию без решения. Просите разброс: «иногда свободны две полосы, иногда одна».

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

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

Что чинить первыми правками?

Правка стоит 300 кредитов, поэтому доводить дешевле маленькими шагами. Ниже частые симптомы и точная формулировка, которая их лечит.

Симптом Что просить в правке
Управление вязкое «Машина должна менять полосу мгновенно, без инерции»
Слишком легко «Увеличь частоту появления встречных машин вдвое»
Слишком резко проигрываю «Добавь неуязвимость на одну секунду после столкновения»
Не видно скорости «Добавь полосы разметки, которые ускоряются вместе с игрой»
Нет повода переигрывать «Сохраняй лучший результат и показывай его на экране проигрыша»

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

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

Сколько стоит собрать и довести гонку?

Сборка стоит 600 кредитов, правка 300, режим Hi-Fi удваивает оба числа. Free даёт 2 400 кредитов разово: это четыре сборки или восемь правок. Pro стоит $25 в месяц и даёт 20 000 кредитов, Business стоит $50 в месяц.

Считать удобнее проектами, а не месяцами. 20 000 кредитов Pro превращаются в 66 правок, если тратить их только на доводку, а аркадная гонка доходит до приятного состояния примерно за десять или пятнадцать уточнений, а не за сотню.

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

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

Как сделать гонку играбельной на телефоне?

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

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

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

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

Чего гонка не соберётся с первого промпта?

Четыре честные границы.

  • Только 2D и только браузер. Объёмная трасса, шейдеры и физика уровня движка сюда не помещаются. Это рамка продукта, а не временное ограничение.
  • Соперники будут простыми. Машины, которые «умеют» ехать по трассе и бороться за позицию, это отдельная работа. Уклонение от трафика получается сразу, гонка с искусственным интеллектом противника нет.
  • Баланс остаётся за вами. Генерация соберёт работающие правила, но не решит, весело ли играть. Это проверяется живыми людьми, которые садятся играть.
  • Свой арт нужно приносить. Узнаваемый стиль появляется, когда вы подставляете собственные спрайты и звук, а не когда описываете их словами.

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

Что делать, когда гонка собралась?

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

Дальше публикуйте. Проект живёт на адресе вида имя-проекта.zugo.run, открывается на телефоне и на компьютере, ссылку можно бросить в чат и собрать первую реакцию за вечер. Куда выкладывать бесплатно, разобрано в статье где опубликовать игру бесплатно.

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

Если гонка понравится, соседний жанр собирается тем же способом и с той же логикой промпта: посмотрите бесконечный раннер, там та же прокрутка и другое ощущение. А самый короткий способ проверить всё это на своей идее: описать одну трассу на zugo.dev и сыграть в то, что вернётся.

← Все статьи