Дизайн уровней. Метрики

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

Какой стул выбрать?
Какой стул выбрать?

Нам правда нужны метрики?

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

Есть еще хороший пример с укрытиями, особенно для игр от третьего лица. Все укрытия, в которых персонаж защищен, должны быть выше его роста. Если с этим все понятно, то что насчет укрытий, где персонаж присаживается? Они должны быть плюс-минус в половину роста персонажа, но какой конкретно высоты? Допустим, вы решили, что это 100 сантиметров. Отлично! Художник по окружению решил сделать наваленные кучи бревен высотой в 75-80 сантиметров. Будет ли это считаться укрытием? Судя по метрике — нет, но как это должен понимать игрок?

Хороший способ показали дизайнеры уровней, которые работали над Uncharted. Создайте буфферные зоны внутри которых запрещается создавать элементы окружения. Например, у них это примерно 25% от каждого типа укрытия. Например, если ваше укрытие 1 метр, то вы не можете создать объекты высотой от 75 до 100 и от 100 до 125 сантиметров.

Обычно игроку будет достаточно этих 25%, чтобы визуально считать, что является укрытием, а что нет.

Хм, а это точно укрытие?
Хм, а это точно укрытие?

Как мне начать использовать метрики?

Для начала определите размеры своего контроллера. Чтобы это сделать, представьте что вам нужно “надеть коробку” на своего персонажа. Только делать это стоит не по Т-позе или по А-позе. Возьмите лучше первый кадр вашей idle-анимации.

Далее проделайте то же самое, но уже постарайтесь поместить не только персонажа, но и камеру. Это нужно для того, чтобы просчитать расстояния таким образом, чтобы камера не билась об объекты в помещении. Особенно актуально для игр от третьего лица.

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

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

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

  • Размеры дверного проема. Ну тут все понятно — нужно сделать заготовку размеров двери, чтобы проходя через неё игрок не застрял. Можно сделать одну одностворчатую дверь и дальше отталкиваться от неё, а можно подготовить несколько разных дверей. Не забудьте правильно их проименовать.
  • Дистанция прыжка. Отдельно для прыжка в движении и для прыжка с места, а лучше еще и с примерной траекторией полета (апексом). Это поможет вам рассчитывать дальность прыжка без постоянных плейтестов одного и того же куска уровня. Поверьте, играя в секцию платформинга лишние 100 раз, вы счастливее не станете (даже если вы любите такой элемент геймплея).
  • Высота укрытия. Ну об этом мы уже говорили ранее. Повторим: если игрок не может считать, что является укрытием, а что нет, то он будет винить разработчиков. Поэтому вам стоит создать буферную зону, в рамках которой нельзя создавать объекты. Можно сделать один раскрашенный в разные цвета куб. Например, так: 0-50 — оранжевое (не укрытие); 50-75 — красное (нельзя создавать объекты такой высоты); 75-125 — зеленое (укрытие, где персонаж присаживается); 125-175 — красное; 175-200 — зеленое (укрытие в полный рост).
  • Скорость бега. В болванку можете поместить длину одного “шага” персонажа для каждого типа перемещения: бег, ходьба, спринт. Это будет полезно для расчета дистанции того или иного участка игры. Игрок должен 10 секунд бежать сквозь взрывы? Отмерить эти 10 секунд без плейтеста и секундомера вам как раз поможет метрика скорости (умножение скорости на время дает расстояние, да-да).
  • Окно. Почти то же самое, что укрытие и дверной проем, но иногда может отличаться от размеров укрытий и высоты двери. Все зависит от конкретного проекта. Лучше сделайте, чем потом за голову хвататься.

Это далеко не все метрики которые вам нужно завести, но базовые. Ориентируйтесь под свою игру. Возможно вам потребуется метрика угла видимости и сферы слышимости противника, если вы делаете стелс-игру. Сфера радиуса взрыва гранаты поможет для шутеров. А может быть вам нужна метрика ширины коридора, чтобы в нем могли развернуться два персонажа и не застрять?

Еще один хороший инструмент — заметки, которые можно размещать прямо в 3D пространстве для всей остальной команды, и которые будет видно даже в плеймоде, но об этом мы поговорим в статье о создании блокаута в юнити на следующей неделе. В целом все! Хочу чтобы вы поняли главную мысль — стройте паттерны на основе которых вы и будете делать уровень. Не работайте “на глаз”!

И это еще далеко не все мои болванки которые я использую
И это еще далеко не все мои болванки которые я использую

Заключение

В этой статье я рассказал вам про то, о чем забывает большинство начинающих дизайнеров уровней. Как вы уже поняли, метрики играют очень важную роль. В следующих статьях мы будем делать уровень. Это длинный цикл, а эта статья моя попытка “забросить удочку” в эту тему. Отправная точка, с которой можно начать. Если вам понравилось — дайте мне сигнал. Если не понравилось, то можете ставить эмодзи какахи, так я пойму, что такие статьи вам не интересны, и мы будем разговаривать о чем-то другом.

Ну и не забывайте подписываться на телеграм-канал, он точно будет для вас полезным. Хорошего вам дня и успехов в создании уровней!

Да сперва игры могут выглядеть именно вот так
Да сперва игры могут выглядеть именно вот так
44
Начать дискуссию