Как создать платформер
· Разработка игр

Первый платформер стоит начинать с одного экрана, простого героя и нескольких площадок. В этом жанре игрок постоянно оценивает расстояние, высоту и момент прыжка. Если движение непредсказуемо, красивые персонажи и множество уровней не сделают прохождение понятным. Сначала нужно добиться, чтобы герой надёжно стоял, бежал, прыгал и приземлялся.
Разберём редакционный пример «До маяка»: герой проходит небольшой участок, перепрыгивает разрыв, поднимается на площадку и касается выхода. Падение возвращает к началу. Нейросети можно поручить подготовить код и помочь с исправлениями, но проверять управляемость придётся в настоящей партии. Приведённые дальше параметры и решения — примеры задания автора.
Сформулируйте один уровень с понятным концом
Для первой версии выберите вид сбоку и один тип героя. Ему доступны движение влево, вправо и прыжок. Уровень содержит безопасный старт, разрыв, небольшое возвышение и выход. Дополнительные способности, враги и движущиеся платформы пока усложнят поиск ошибок: будет непонятно, виновато правило или столкновение.
Нарисуйте план хотя бы обычными прямоугольниками. Убедитесь, что игрок видит первую площадку приземления. Слепой прыжок за край экрана заставляет угадывать, а не изучать управление. После старта дайте безопасное место, где можно попробовать ходьбу и прыжок без немедленного проигрыша.
Запишите условие победы и реакцию на падение. В нашем примере касание выхода завершает уровень, а падение ниже нижней границы вызывает поражение с кнопкой новой попытки. После победы герой перестаёт двигаться. Эти простые решения заранее определяют, какие состояния потребуются в коде.
Перед запросом посмотрите разные короткие механики в Игры ГПТ. «Арканоид» или «Змейка» показывают, насколько важен ясный конец попытки, хотя это другие жанры. Присутствие игры на сайте не подтверждает её создание нейросетью и не заменяет проверку собственного прототипа.
Настройте горизонтальное движение отдельно
Сначала поставьте героя на длинную ровную площадку. Проверьте движение в обе стороны, остановку и границы экрана. До добавления разрыва убедитесь, что персонаж не продолжает ехать после отпускания кнопки. Иначе любое падение будет трудно связать с конкретной причиной.
Выберите, как быстро герой начинает и заканчивает движение. Для первого черновика допустима немедленная остановка; постепенное ускорение можно добавить позже, если оно нужно ощущению игры. Не просите одновременно «реалистичную физику» и «мгновенно точное управление» без объяснения ожидаемого поведения.
Если используются клавиши, храните их удержание отдельно от перемещения. Если предусмотрены экранные кнопки, они должны задавать те же направления. Нажатие влево на телефоне и на клавиатуре не должно запускать две разные версии правил. Пропишите поведение одновременного нажатия противоположных направлений.
Проверяйте скорость относительно прошедшего времени, а не случайного количества кадров. Для автора важен наблюдаемый результат: одинаковый участок проходится сопоставимым движением на разных экранах. Если герой резко меняет скорость после перезапуска, сначала ищите повторный запуск обновления, прежде чем подбирать новые параметры.
Свяжите прыжок, гравитацию и опору
Для понятного прыжка нужны вертикальная скорость и правило её изменения. Начальный толчок направляет героя вверх, затем гравитация постепенно меняет движение на падение. При выборе координат можно считать направление вниз положительным, но важно последовательно применять эту договорённость во всём расчёте.
Самое важное ограничение первой версии: начать прыжок можно только с опоры. Отдельный признак «на земле» позволяет запретить бесконечные толчки в воздухе. Простая проверка «вертикальная скорость равна нулю» недостаточна: в верхней точке прыжка движение тоже на мгновение меняет направление.
Попросите запускать прыжок по новому нажатию, если непрерывные прыжки не входят в задумку. Иначе удерживаемая кнопка может заставить героя сразу подпрыгнуть после приземления. Это может быть осознанной механикой, но для первого уровня лучше заранее решить, какое действие ожидает игрок.
Начните с одной высоты и одного расстояния. Разместите рядом площадку, на которую герой уверенно допрыгивает, и более высокую, пока недоступную. Так видно фактический предел движения. Меняйте один параметр за проход: силу толчка, гравитацию или скорость по горизонтали. Одновременная правка всех трёх скрывает причину результата.
Разберите столкновения по сторонам
Для черновика используйте прямоугольную область героя и такие же площадки. Временно покажите их границы поверх рисунков. Если изображение ног находится выше области столкновения, герой будет казаться висящим. Если область уже тела, он начнёт слишком глубоко заходить в стену.
Обрабатывайте перемещение и устранение пересечений последовательно по осям. При движении вправо встреча со стеной ограничивает горизонтальную позицию. При падении на верх площадки вертикальная позиция выравнивается по её поверхности, скорость падения сбрасывается, появляется опора. Удар головой снизу требует другого ответа и не должен разрешать прыжок как с земли.
Сначала используйте сплошные прямоугольные платформы. Площадки, через которые можно прыгнуть снизу, требуют отдельного правила: герой должен пересечь верхнюю границу при падении. Если смешать оба типа без явного обозначения, игрок не поймёт, где можно пройти и почему одно и то же действие даёт разный результат.
Углы проверяйте отдельно. Подведите героя к боковой грани, прыгните под край и попробуйте приземлиться самым краем области. Он не должен застревать или телепортироваться наверх. Если на большой скорости происходит пролёт через площадку, нужен разбор шага движения и пересечения, а не незаметное расширение всех препятствий.
Добавьте камеру после устойчивого управления
Пока уровень помещается на одном экране, камера может оставаться неподвижной. Это облегчает проверку расстояний и столкновений. Когда понадобится более длинный маршрут, разделите положение героя в мире и положение, с которым он рисуется на экране. Смещение камеры не должно менять физические координаты объектов.
Принцип перевода мировых координат в экранные описан в материале MDN о тайловых картах. Для нашего примера достаточно горизонтальной камеры: она показывает нужную часть уровня, сохраняя реальные расстояния между площадками. Саму карту необязательно сразу строить из большого набора тайлов.
Выберите момент начала движения камеры. Если герой всегда находится строго в центре, резкая смена направления может дёргать весь фон. Для спокойного прототипа можно разрешить герою перемещаться внутри центральной зоны, а затем сдвигать обзор. Это решение стоит проверить в игре, а не принимать по красивому стоп-кадру.
Ограничьте камеру краями уровня и сохраните видимость следующего прыжка. Счёт, кнопка паузы и управление относятся к экрану, поэтому не должны уезжать вместе с землёй. После падения возвращайте камеру к стартовой области вместе с героем, чтобы новая попытка начиналась понятным образом.
Пройдите опасные сценарии и новую попытку
Проверка платформера — это последовательность действий. Пройдите по ровной земле, прыгните с места, с разбега и у края. Удержите кнопку прыжка при приземлении. Попробуйте прыгнуть повторно в воздухе. Результат каждого опыта должен совпадать с записанным правилом, даже если оно пока очень простое.
Затем проверьте боковой удар о платформу, столкновение головой и падение в разрыв. После проигрыша нажмите «Ещё раз» несколько раз. Герой возвращается на старт, скорость сбрасывается, камера занимает исходную позицию, а управление работает с прежней чувствительностью. Ускорение после повторной попытки означает неисправность, а не рост сложности.
На телефоне проверьте одновременное удержание направления и прыжок вторым пальцем. Кнопки должны быть доступны, а площадка приземления — оставаться видимой. Отпустите направление за пределами кнопки и поверните экран. В этих сценариях часто обнаруживаются зависшие нажатия и неудобная компоновка, незаметные при проверке мышью.
Нейросети передавайте конкретный сбой: «При падении на левый угол второй площадки герой проваливается; ожидаю приземление сверху». Приложите последовательность и при необходимости короткую запись. Исправляйте по одному воспроизводимому случаю, затем проходите весь уровень снова, чтобы сохранить уже работавшее поведение.
Сделайте собственный прототип с одним законченным маршрутом и только потом меняйте прямоугольники на персонажей. Для пути с внешней нейросетью используйте инструкцию «Сделай свою игру»: код и ресурсы готовятся вместе в HTML или ZIP. Рабочий прыжок и надёжная новая попытка дадут основу для дальнейших уровней.
Частые вопросы
Обязательно ли сразу использовать игровой движок?
Нет, небольшой браузерный прототип можно собрать на JavaScript. Движок имеет смысл выбирать под реальные потребности: редактор уровней, готовую физику, анимацию и расширение проекта. Сам по себе выбор инструмента не заменяет настройку управления.
Почему герой может прыгать бесконечно в воздухе?
Проверьте условие разрешения прыжка и признак опоры. Если каждое нажатие без проверки задаёт толчок вверх, возникает повторный прыжок. Сначала подтвердите это по коду и воспроизведению, затем исправьте правило.
Когда добавлять врагов и собираемые предметы?
После того как один уровень можно устойчиво пройти и перезапустить. Новая механика должна добавляться к понятной основе. После каждого дополнения повторите проверку движения, прыжка, столкновений и возврата к старту.
