[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "create", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-549065259", "adfox_url": "//ads.adfox.ru/228129/getCode?p1=bxeub&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid21=&puid22=&puid31=&puid32=&fmt=1&pr=" } } ]
{ "author_name": "Андрей Верещагин", "author_type": "self", "tags": ["\u0433\u0435\u0439\u043c\u0434\u0438\u0437\u0430\u0439\u043d"], "comments": 8, "likes": 34, "favorites": 23, "is_advertisement": false, "section_name": "gamedev", "id": "11209" }
Андрей Верещагин
1 314
Gamedev

Прыжок веры

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

Поделиться

В избранное

В избранном

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Итог

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

#геймдизайн

Популярные материалы
Показать еще
{ "is_needs_advanced_access": false }

Комментарии Комм.

0 новых

Популярные

По порядку

Прямой эфир

Узнавайте первым важные новости

Подписаться