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