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