Прыжок веры

Как сделать управление в платформере на GameMaker отзывчивым.

Сотрудница Bungie, геймдизайнер Лиза Браун (Lisa Brown), которая прежде приложила руку к созданию Resistance 3, Sunset Overdrive и Hyper Light Drifter, в блоге на сайте Gamasutra поделилась советами о том, как сделать прыжки в платформерах, созданных в программе GameMaker, отзывчивыми.

Прыжок веры

Я хочу сфокусироваться на двух моментах, на которые начинающим разработчикам платформеров стоит обратить внимание, чтобы прыжки в их играх чувствовались лучше. Это «помощь на краю» (ledge assistance) и «буферизация ввода прыжка» (jump Input buffering).

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

Помощь на краю

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

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

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

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

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

Количество кадров зависит от того, какую игру вы делаете. Например, если вы работаете над платформером, требующим точности, вы, возможно, предпочтёте сделать «кадровое окно» как можно меньше, но с учётом человеческой реакции. Обычно человеку требуется около 215 миллисекунд на то, чтобы нажать на кнопку. Я рекомендую для начала сделать порядка шести кадров «милосердия», а затем смотреть по обстоятельствам.

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

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

Буферизация ввода прыжка

Я замечала, что многие новички не пользуются ей, когда делают свои платформеры. Однако это важно, особенно если в вашей игре много повторяющихся точных прыжков. Суть буферизации в том, чтобы дать игрокам ещё несколько кадров «милосердия», для того, чтобы игра считывала нажатие клавиши, но в этом случае уже после того, как вы нажмёте клавишу прыжка. Вот демо, которое демонстрирует эту идею.

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

Повышение количества буферизованных кадров по факту значит: «Если персонаж приземляется в течение заданного количества кадров после нажатия кнопки, он автоматически отпрыгивает от земли».

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

Итог

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

3030
8 комментариев

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

2
Ответить

Видимо, в ремастере Крэша это "милосердие" в минус ушло - персонаж падает-соскальзывает на краю. То ли баг, то ли фича.

Ответить

Комментарий недоступен

Ответить

спасибо, изучил еще в оригинальной статье, очень полезный материал

Ответить

первое как-то не особо понравилось (т.е. ведь можно просто поставить платформы поближе, вместо вот этого "милосерди" и отталкивания от воздуха при максимально длинном промежутке между платформами. PS: в демке при 0 стоял на диагонали последнего пикселя и все равно не смог допрыгнуть до противоположной стороны, 2 раза)
а вот второе очень доставило :) ощущения намного приятнее сразу от попрыгушек ) аж лайкнул ))
возможно, конечно, первое работает нормально только в сочетании с вторым.. разве что так

Ответить

ну это же не к вопросу левел-дизайна, а скорее к некоторому квантованию UX
успеет нажать кнопку прыжка игрок или нет
и получается что игроку хочется нажать ее в последний момент
тут и приходит на выручку прыжок веры, он же время койота

Ответить

Спасибо за материал. Нужно будет запомнить :)

Ответить