База по платформингу в Corsair's Madness.

База по платформингу в Corsair's Madness.

Андрей Воронков - Геймдев Блог

🏴‍☠️ Corsair’s Madness 🏴‍☠️— это 2D-платформер, в котором игроку предстоит сыграть за персонажа с двумя типами геймплея: обычный платформер на точность в стиле Shovel Knight, Messenger и платформер с элементами слэшера. А ещё тут есть секции с битвами на воде, выполненные в жанре shoot’em up. В игре всего 5 островов, на которых предстоит побывать игроку — по числу членов команды (которых надо спасти). И помимо дополнительного оружия, которое можно купить в лавке у продавца на каждом уровне, у героя есть ещё обязательный предмет для платформинга/битв с врагом.

Каждый блок-поверхность имеет размер 16 х 16 пикселей, и для него есть только одно правило — растягивать его можно, умножая на целые числа (32 х 16, 64 х 128 и т. д.). Так мне было проще ориентироваться и точнее дизайнить уровни (у меня же платформер на точность как-никак🤔).

Каждый экран (комната) уровня имеет стандартное разрешение 480 x 272 (что тоже кратно 16) и растягивается ТОЛЬКО по горизонтали и вертикали (лишь с одним исключением).

Почему я сделал такие ограничения? Да всё просто — этому меня научили игры Нинтендо. Чем больше ограничений — тем больше приходится изворачиваться и придумывать интересный дизайн уровней.

Для примера возьму стандартную горизонтальную комнату — есть всего 4 пути, как можно её пройти: по прямой, зигзаг, лестница и коробка (и разные их вариации/сочетания). И в этом ограничении самый кайф, потому что дальше вступает то, как дизайнер будет располагать блоки, препятствия и врагов, чтобы манипулировать передвижением игрока.

В моём случае это перемещение влево/вправо, прыжок, рывок, атака и удар вниз (только в форме человека), рывок с атакой (только в одержимой форме). У нашего капитана в обеих формах есть стандартный хитбокс/маска — 16 x 32 пикселя. При применении способностей или действий маска никак не меняется.

Стандартным прыжком можно запрыгнуть на высоту в 4 блока и дальностью в 6-7 блоков (почему 6-7, объясню чуть позже).

Рывок, который можно применить как на земле, так и в воздухе (в воздухе только 1 раз) и преодолеть расстояния дальностью также в 6-7 блоков.

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

Итак, ⚠️ СВЯТАЯ ТРОИЦА ПЛАТФОРМЕРОВ ⚠️— Время Койота, Вертикальное Смещение и Буферизация Прыжка.

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

Наверное, самое попсовое и известное, но тем не менее. Прыгать игрок может только находясь на поверхности, но иногда при прыжке с платформы на платформу это не всегда может получиться и в последний момент игрок может просто упасть (напомню, маска игрока почти в 2 раза меньше спрайта персонажа). Поэтому стоит дать возможность игроку прыгнуть, когда он начал падать с платформы (В ПОСЛЕДНИЙ МОМЕНТ). Это время между тем, когда герой только сошёл с поверхности и тем, когда он уже и не может воспользоваться прыжком, и называется временем койота. И в это время прыжок всё ещё работает.

Тут стоит вернуться к длине прыжка и дэша — как раз если игрок попадает в это время койота — можно преодолеть расстояние в 7 блоков.

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

Тут как раз можно вспомнить про дэш на земле. Если во время койота нажать рывок, то персонаж, оказавшись чуть ниже поверхности, сможет преодолеть расстояние в 7 блоков, и в конце вертикальное смещение поможет игроку залезть на поверхность.

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

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


Report Page