Boghog's bullet hell shmup 101
| Перевод авторского текста «Boghog's bullet hell shmup 101» Викифицируйте. Улучшайте перевод. Не занимайтесь отсебятиной. |
| Soundtrack В качестве саундтрека при прочтении этой статьи мы рекомендуем вот эту музыку. |
Этот документ охватывает фундаментальные аспекты дизайна даммаку-шутера (буллетхелла). Он сильно перекошен в сторону стиля игр от CAVE, но многие моменты применимы и к другим стилям.
Знание этих базовых вещей важно, даже если вы собираетесь нарушить каждое правило, поскольку в таком случае вы будете делать выборы, основанные на знании, а не тыкать пальцем в небо.
По возможности я буду приводить примеры, но в целях практичности я буду избегать излишних контрпримеров, пограничных случаев и других усложнений. Цель — дать хорошее понятие о том, как сделать типичный шмап в стиле CAVE. Если вы хотите отклониться от него и сделать нечто иное, вы сами за себя!
И не забывайте, личный опыт — это всё! Играйте побольше в шмапы, вам не нужно получать 1cc или хороший счёт, но вы обязаны достигнуть такого уровня, чтобы вы могли смотреть хороший реплей любимой игры и понимать, что игрок делает. Геймдизайн требует хорошего чутья того, что верно, а что — нет, и лучший способ получить это чутьё — через опыт.
Движение и пространство
Игровая область
Здесь происходит экшн. Игровая область может либо быть ограничена экраном, либо быть шире благодаря горизонтальной прокрутке, которую можно видеть во многих вертикальных шмапах. Размер игровой области относителен величине игровых объектов и хитбоксов.
Крошечные хитбоксы даммаку-игр делают игровые области относительно больше, что позволяет заполнять экран пулями. Однако у этого есть и отрицательные стороны — игры с большой игровой областью вынуждены создавать челендж при помощи большого количества пуль. Становится гораздо труднее делать ставку на простые паттерны.
Скорость движения и тип огня должны быть подогнаны под величину игровой области, с узкой областью игра может позволить себе медленные скорости движения и узкие шоттипы, чтобы сделать акцент на мелкие различия в позиционировании и дать врагам время сделать их дело (примеры: Gunbird 2, Dragon Blaze). Более широкие игровые области тяготеют к большим скоростям и более широкой области огня или каким-либо мультинаправленным видам оружия, чтобы компенсировать большие дистанции, которые игрок должен преодолевать (примеры: Mars Matrix, Under Defeat HD).
Движение
Наиболее фундаментальный источник челенджа в даммаку-играх — распознавание, предвидение и манипуляция различными траекториями пуль и точные движения для уворота от пуль и контроля экранного пространства. Поэтому ваша самая приоритетная задача — дать игроку столько контроля, стабильности и осознанности, сколько возможно, движение должно чувствоваться бесшовным.
В целях постоянства лучше избегать различия скоростей при движении в разных направлениях, таких как более быстрое движение по оси x, чем по оси y или более быстрое диагональное движение. Не забывайте нормализовать движение по диагонали! Есть несколько отличных игр с более быстрым движением по диагонали, такие как Battle Garegga и Armed Police Batrider, но они редки.
Инерции при движении следует избегать полностью, так как она добавляет ненужный слой задержки при движении, к которому игроки должны приспосабливаться, не добавляя никаких интересных геймплейных динамик. Даже малейшее количество ускорения будет заметно для опытных игроков. Если ваше движение не «кажется плавным», скорее всего это вызвано слабой визуальной составляющей, а не отсутствием инерции. Некоторые трюки помогут придать движению чувство плавности — увеличьте количество выстрелов, добавьте остаточное изображение (см. Symphony of the Night/Mеgaman ZX), привяжите скорость анимации крена истребителя к скорости движения, добавьте оставляемые истребителем следы (см. Danmaku Unlimited 3), дайте инерцию опшенам (летающим штучкам возле истребителя).
Нормальный/сфокусированный огонь
В даммаку-играх часто присутствует механика сфокусированного огня, популяризованная CAVE. У истребителя игрока 2 режима с собственными скоростями: быстрый режим с широким огнём (тыканье по кнопке) и более медленный режим сфокусированного огня (удержание кнопки), который обычно представлен лазером или иным видом концентрированного огня.
Это полезно, так как даёт игроку больше контроля и создаёт некоторые базовые, но вознаграждающие геймплейные динамики — игроку приходится думать, нужно ли ему использовать быстрое движение для быстрого занятия позиции, использовать медленное движение ради более точного уклонения или позволить себе двигаться медленнее ради дополнительного урона в секунду.
Переход между нормальным огнём и фокусом обычно (но не всегда, см. Touhou) интерполируется, чтобы создать более плавный и постепенный переход. Разница в скорости между режимами зависит от игры и истребителя (золотая середина — скорость в фокусе составляет 2/3 от нормальной).
Геймплейные эффекты от различных скоростей сильно различаются, обычными архетипами являются быстрые мощные истребители с узким огнём или более медленные и слабые истребители с широким огнём.
Хитбокс и видимость
Во время игры игроку будет некогда смотреть на истребитель, вместо этого он будет сосредоточен на врагах, их паттернах и том, куда они направляются. Он будет грубо определять положение истребителя по потоку своих пуль, общему силуэту истребителя и дополнительным визуальным элементам (таким как элементы HUD, сверкающие цвета) возле истребителя. Как следствие, дав игроку быстрые, толстые, заметные потоки пуль, вы улучшите не только ощущения от игры, но и видимость. Размещать хитбокс точно в центре также важно, так как это привносит стабильность.
Стрельба
Общее
Шмапы — игры целиком и полностью про стрельбу. Что важно превыше всего — сделать так, чтобы стрелять было приятно. Добиться неплохих ощущений от игры не слишком трудно, но есть много мелочей, которые надо принимать во внимание. Общий советик — когда вы заставляете объекты в играх двигаться, вы становитесь аниматором игры. Единственное различие в том, что вы анимируете через код, а не перерисовывая кадры или двигая вещи. Как следствие, изучение основ анимации и практика щедро окупятся.
С механической стороны, ключевой принцип достижения хороших ощущений от игры — незаметно подыгрывать игроку. Протяните игроку руку и прощайте мелкие ошибки в позиции и тайминге, сосредоточась на наказании за большие ошибки.
Эффекты для красоты и мелкие механики
Первым делом вам нужна скорость.
- Скорость олицетворяет силу и с ней попадание кажется сильнее. Быстрая пуля — мощная пуля, особенно если сочетать скорость с подходящим сплэш-эффектом.
- Скорость помогает создавать немедленный фидбэк, что важно для улучшения чувства участия игрока. Когда игрок нажимает кнопку, он ожидает результата.
- Скорость помогает игроку следить за местонаходжением истребителя. Чем быстрее вы обновляете пулевой поток, чтобы он отражал текущую позицию игрока, тем лучше он сможет оценивать её.
В анимации хорошим способом передать ощущение скорости является моушн блюр (мазки, следы). Длина создаст иллюзию движения и пули будут выглядеть ещё быстрее. Можно довести это до абсурдного уровня, и это всё равно будет выглядеть хорошо. Противоположное, скорее всего, будет плохо читаться — короткие спрайты не будут сочетаться с большими скоростями. Общее практическое правило — всегда учитывать скорость снарядов, выбирая им длину.
Следующее, что вам нужно — плотность. Делайте большие, жирные снаряды, огромные хаотичные потоки, слепляйте пули вместе и не утруждайте себя тем, чтобы делать всё слишком аккуратным и организованным.
Плотные паттерны помогают игроку определить позицию, смазывают неточность и позволяют разуму игрока воображать более интересные пулевые потоки, чем те, что на самом деле видны на экране.
Если дать выстрелам игрока большие хитбоксы, а врагам — большие хёртбоксы, игра станет приятнее, компенсируя мелкие ошибки игрока в позиции и прицеливании. Огонь игрока не должен иметь больших разрывов или слепых областей, а источники пуль должны находиться низко.
Лимит на пули
Лимит на пули на экране — это когда игра позволяет находиться на экране лишь ограниченному количеству пуль игрока, она не создаёт новые пули, пока старые не покинут экран, попадут во врага или будут уничтожены иным способом.
Родившись из ограничений железа, эта механика стала столпом жанра, поскольку она идеально сцепляется с движением игрока и создаёт очень занятные естественные геймплейные динамики. Чем ближе игрок к врагу, тем выше будет его частота стрельбы (и урон в секунду).
Важность частоты огня различается от игры к игре. Игры/истребители с высокой частотой стрельбы и малым лимитом на пули на экране поощряют очень агрессивный стиль игры с отстрелом врагов в упор, обратное же порождает игры, более нацеленные на уворот.
Нужно заметить, что вдобавок к этому некоторые игры имеют другие формы урона на близком расстоянии, такие как аура истребителя в Dodonpachi, которая окружает самолёт и наносит тиковый урон. Стоит поэкспериментировать с другими уникальными способами нанесения урона вблизи.
Паверапы
Паверапы зиждутся на хитрости и иллюзии. Прямолинейное повышение урона, скорее всего, вызовет проблемы с балансом. Огонь 10-го уровня не может быть в 10 раз мощнее огня 1-го уровня, не сломав ничего при этом.
Шмапы решают эту проблему тем, что просто лгут игроку о его уровне мощности, увеличивая урон на очень маленький показатель (например, x1.1). Эта практика нормальна и её можно видеть в большинстве шмапов от Toaplan до CAVE.
Помимо цифр, есть другие способы сделать так, чтобы огонь казался более мощным. Увеличьте длину и ширину пуль, увеличьте их скорость, сделайте их вид более насыщенным, добавьте выстрелам деталей, сделайте звуки урона более мощными. Вы даже можете уменьшить значения урона, но добавить дополнительные источники пуль, такие как опшены в Gradius. Всё, что делает стрельбу более приятной, не вызывая проблем с балансом и не делая игру с низкими уровнями мощи мучительной — честно.
Жизни, бомбы и восстановление
Как правило, шмапы очень строги в плане жизней — в играх CAVE вы получаете начальный запас, всего два экстенда и 1-UP. У этого сурового подхода есть свои плюсы — из-за него геймдизайн обязан быть очень аккуратным, так как любая ошибка будет строго наказана. Игры создаются с таким расчётом, чтобы вы, за некоторыми исключениями (истинные финальные боссы) могли при должной практике избежать любого урона.
Шмапы с большими, щедрыми шкалами здоровья, как правило, лишены этого скрупулёзного дизайна, поэтому шкалы здоровья — несколько табуированный приём. Но это не означает, что здоровье в шмапе — это плохо: многие игры CAVE, такие как Guwange, Deathsmiles и Akai Katana, неплохо используют здоровье.
Поскольку каждая ошибка стоит очень дорого, игра даст вам передышку, если вы умрёте. После каждой смерти все вражеские пули отменяются и экран очищается. Спустя короткое время эта отмена прекращается, но игрок также получает пару секунд неуязвимости, чтобы убить некоторых врагов и снова занять позицию. Для облегчения занятия позиции нужно не переборщить с уничтожением пуль, тогда игрок будет знать, чего ожидать. Щедрый период неуязвимости важен для предотвращения серии смертей.
Бомбы — многоцелевой ресурс, они могут использоваться оборонительно (так называемые паник-бомбы) и наступательно, чтобы безопасно и быстро убивать боссов. Будет полезно сделать так, чтобы игрок мог прожать бомбу в течение нескольких кадров после того, как в него попали и благодаря этому не потерять жизнь. Умирать и бомбить на том же кадре — это всегда бесит.
Пулевые паттерны
Видимость пуль
Типы паттернов
Если разобрать всё по винтикам, в даммаку-играх есть лишь 3 простых типа паттернов, вот они:
- Нацеливаемый. Траектория этого паттерна основана на положении игрока на экране. Хорош для создания давления, позволяет игроку осмысленно манипулировать им. Может быть довольно динамическим из-за непостоянства вводов игрока.
- Статичный. Траектории пуль предопределены и не меняются в зависимости от движения игрока. Хорошо подходит для создания препятствий. Статичные паттерны дают дизайнеру большую свободу, позволяют ему проявить себя, создавая красивые и крутые паттерны.
- Случайный. Траектории пуль случайны. Вносит в игру разнообразие. Используйте с осторожностью, он может создавать нечестные ситуации.
Координаты источников пуль на экране могут быть неизменными (что гарантирует, что паттерны будут чистыми и стабильными) или меняться в зависимости от движения врага (что позволяет делать паттерны очень динамичными и непредсказуемыми, сгибая и искажая их.
Полосы
Когда вы разрабатываете плотные паттерны, очень полезно думать о них как о наборе "полос", по которым игрок может двигаться.
Думайте о каждой полосе как о микро-челендже, который игроки подбирают себе. Они могут сосредоточиться на одной полосе либо двигаться от одной к другой в реальном времени. Кроме того, полосы могут меняться со временем и заставлять игрока приспосабливаться. У каждой полосы могут быть свои плюсы и минусы — одни могут быть безопаснее, но давать вам меньше возможностей для нанесения урона, другие могут быть очень рискованными, но выгодными, одни могут давать вам меньше пространства для движения, другие — больше. В идеале их свойства станут ещё более значимыми, если сочетать типы врагов. Очевидные сейфспоты, позволяющие быстро убивать врагов, также могут быть очень выгодными.
Сравните это с вражескими атаками в других экшн-играх — вы не хотите, чтобы был только один способ справиться с ними. В идеале, вы бы хотели дать игроку набор вариантов, каждый со своими полууникальными плюсами и минусами.
Враги
Роли врагов
Большую часть геймплея шмапов составляет контроль над экранным пространством, что означает активную манипуляцию пулями и врагами со стороны игрока. Имея это в виду, можно распознать некоторые общие роли врагов:
- Давление. Выстрелы этих врагов оказывает постоянное давление на игрока и заставляет его двигаться.
- Отрезание области. Выстрелы этих врагов блокируют части экрана и осложняют движение.
- Прямой вызов. Обычно это элитные враги, которые напрямую бросают вызов игроку плотными, сложными паттернами.
Уровни смешивают и сочетают эти типы врагов, чтобы создавать интересные челенджи.
Динамический дизайн
Конфликт игрока с врагами должен быть динамическим. Ни в коем случае нельзя вызывать у игрока чувство, что его действия не важны. Хороший, динамический дизайн врагов будет играться очень по-разному в зависимости от действий игрока. Быстрое убийство врагов должно быть очень выгодным, а оставлять их в живых должно быть довольно опасно. Последнее, что вам нужно — враги, которые тяжело убиваются, но не очень опасны, если оставить их в живых.
Подумайте о дизайне врагов в плане ролей в зависимости от того, насколько хорошо игрок справляется с игрой.
- Оптимальный килл/Появление. Что случится, если игрок убьёт врага немедленно. Хочется ли вам, чтобы враг выстрелил хоть немного, независимо от обстоятельств, или вы хотите позволить игроку немедленно вынести его?
- Средний килл. Нормальное, задуманное поведение врага.
- Медленный килл/Страховочная сетка. Что случится, если игрок слишком медленно убивает врага. Он зависает на экране и игрок оказывается в ловушке, или вы добавите страховочные сетки и заставите врага улететь? Возможно, он мог бы поменять свой паттерн на менее агрессивный, но всё ещё проблемный.
Также нужно подумать о приоритете врагов. Приоритет зависит от слишком многих факторов, чтобы разбить их на простые правила, но вот несколько вещей, которые обычно работают:
- Большое значение HP. Жирные враги обычно привлекают внимание, так как они заграждают огонь игрока и игрок не может без проблем вынести их, когда хочет.
- Плотные паттерны. Трудные для уворота и блокирующие части экрана паттерны сделают врагов исключительно опасными, особенно когда паттерны сильно пересекаются.
- Широкий разброс. Врагов с нацеленными выстрелами и большим разбросом гораздо сложнее контролировать, поэтому они намного опаснее.
- Высокая скорость стрельбы. Это делает врагов особенно гадкими и склонными загонять игрока в угол, из-за чего их выгодно убивать как можно скорее.
Несколько практических правил:
- Враги, особенно попкорн, не должны иметь больше ХП, чем нужно для выполнения их функции.
- Приближение к врагам для их уничтожения не должно быть непропорционально опасным, игнорировать врагов и позволять им покидать экран никогда не должно быть выгоднее, чем эффективно убивать их.
- Враги должны иметь большие хитбоксы и двигаться медленно и предсказуемо. Плотные и сложные пулевые паттерны порождают большую часть челенджа в даммаку-играх, поэтому без нужды сделав врагов неуловимыми и сложными мишенями, вы, скорее всего, выбесите игроков.
Чтобы оставить запас здоровья врагов малым, но при этом гарантировать, что они выстрелят хотя бы раз, может быть желательно считерить и делать их уязвимыми только после первого выстрела.
Эффекты для красоты и мелкие механики
Хороший враг - тот, которого весело атаковать и убивать. Вот несколько способов, которыми это можно достигнуть:
- Индикаторы урона. Враги должны реагировать на получение попаданий, иначе они будут казаться эфирными силами, а не объектами, существующими в мире игры. Это может иметь форму простого мигания, частиц урона/эффектов тряски.
- Ненавязчивые звуковые эффекты попадания. Игрок должен чувствовать, когда он наносит врагам урон.
- Большие, мясистые взрывы. Спрайты взрывов должны быть крупными, значительно больше спрайта врага. Различные спрайты и паттерны взрывов и дополнительные обломки - это всегда хорошо.
Некоторые мелкие механики, которые помогут игре выглядеть более прилизанной:
- Запечатывание пуль. Это облегчающая жизнь механика, которая не даёт слабым наземным врагам стрелять, если игрок находится над ними/очень близко к ним.
- Слепая область вверху экрана. Это небольшое пространство в самом верху, где враги не могут быть убиты или получить урон. Это не даёт игроку убивать заэкранных врагов, которых он даже не может видеть.
- Область прекращения огня. Невидимая часть экрана, в которой враги начинают бездействовать. Это главным образом используется для наземных целей, таких как турели и танки, которые дрейфуют в низ экрана, если выживают.
Дизайн уровней
Левелдизайн даммаку может казаться очень простым на поверхности, однако есть много нюансов, которые делают его сложным и интересным. По сути своей он совсем как любой другой тип левелдизайна - цель состоит в том, чтобы поощрять игрока играть так, как хотите вы, в то же время оставляя достаточно пространства для экспериментов.
Поток должен быть главной целью левелдизайна даммаку. Поток - это чувство, которое игрок испытывает во время непрерывного плавного движения. Игра достигает его, ведя игрока по назначенному маршруту при помощи мягких стимулов и явных сигналов и делая самло движение интересным. Движение игрока должно быть частым. Оно должно быть плавным, одно действие должно перетекать в следующее; должно присутствовать постоянное чувство течения вперёд. Движение должно быть разнообразным, испытывать игрока различными способами - быстрые зигзаги, точные увороты тыканьем по кнопке, агрессивная стрельба в упор вверху экрана и оборонительное уклонение внизу. Также экранное пространство не должно простаивать, сваливать всё действие на одну сторону экрана расточительно и не весело.
Действие игрока
Поскольку даммаку-игры имеют полную свободу движения, вести игрока по уровням может быть сложно. Вы должны полагаться на мягкие стимулы, что требует хорошего понимания того, как игроки движутся, чему отдают приоритет и куда смотрят.
Вот немного общих поведений игрока, которые нужно иметь в виду:
- Игроки стремятся держаться ближе к центру экрана по оси Y. Это даёт им неплохой урон и позволяет эффективнее перенаправлять пули, в то же время оставляя достаточно времени, чтобы реагировать на пули.
- Они будут приближаться к врагам с большим ХП, чтобы наносить дополнительный урон при каждой возможности. Обычно - когда враг готовится стрелять. Затем они отступят, чтобы увернуться от вражеского залпа.
- Пока попкорновые враги спавнятся, игроки будут двигаться из стороны в сторону, стримя пули.
- Увороты от пуль под неудобными диагональными углами или преимущественно вертикальным движением остаются для особых случаев или крайних ситуаций, игроки редко будут делать это без крайней нужды, поскольку движущиеся по диагонали пули труднее читать, это требует больше неудобных вводов и ограничивает возможности для атаки/пространство для уворота.