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

Змейка нейросетью: как сделать игру-классику без кода

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

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

Что именно получится?

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

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

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

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

Шесть строк, и первая сборка приедет почти готовой.

Элемент Слабая формулировка Сильная формулировка
Поле «змейка» «поле двадцать на двадцать клеток, змея стартует из центра»
Управление «стрелками» «стрелки задают направление, назад развернуться нельзя»
Еда «еда» «одна еда в случайной пустой клетке, съеденная появляется заново»
Рост не сказано «после еды хвост становится длиннее на один сегмент»
Стены не сказано «удар в стену заканчивает партию» или «через край проходит насквозь»
Темп не сказано «змея делает шаг несколько раз в секунду и ускоряется с длиной»

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

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

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

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

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

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

Почему змейка ощущается неудобной?

Почти всегда из-за одной из трёх вещей, и все три чинятся словами.

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

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

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

Есть и четвёртая, редкая: еда появляется под хвостом, и её нельзя взять. Скажите, что еда возникает только в пустой клетке.

Чем змейка полезна как первый проект?

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

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

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

Как сделать змейку не такой, как у всех?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

← Все статьи