Дневник разработки #2: Секреты создания идеального уровня

Создание первого уровня

Привет! Меня зовут Денис, и я являюсь Lead Game Designer на проекте Bleeding. Последнее время я занимался левел-дизайном и подготавливал первый тестовый уровень для нашей игры. В этой серии дневников разработчика я бы хотел поделиться с вами процессом создания, советами и сложностями, с которыми столкнулся.

Метрики — То с чего начинается любой уровень

Для качественного уровня, необходимо, чтобы он соблюдал все необходимые метрики, заданные гейм-дизайнером или главным левел-дизайнером.

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

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

Важно понимать, что, пока вы на ранних этапах разработки, вы часто будете перерабатывать и дополнять такой уровень и это нормально. Главное, что у вас всегда будет место, где вы сможете протестировать новую механику или фичу в синергии с другими.

В нашем случае необходимо было утвердить базовые метрики, такие как:

  • Скорость передвижения
  • Прыжок
  • Размеры лестниц
  • Размеры дверей
  • Размеры коридоров
  • Размеры укрытий
  • Wall Run

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

На текущий момент наш уровень с метриками выглядит вот так:

Дневник разработки #2: Секреты создания идеального уровня

Будь изобретателен

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

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

В силу небольшой команды и большой загруженности сделать техническую фичу, которая бы измеряла длину прыжка и прочие штуки, было бы слишком “дорого”. Поэтому мне пришлось быть изобретательным.

Для измерения длины прыжка собрал вот такую платформу, на которой можно было измерить длину прыжка при разных вводных. Стандартный прыжок, прыжок в спринте и прыжок с распрыжкой.

Дневник разработки #2: Секреты создания идеального уровня

Уделив этому достаточно времени, я бегал, прыгал и все это записывал, чтобы понял оптимальную длину прыжка, чтобы в будущем на уровнях делать правильного размера “обрывы для перепрыгивания.

Также дополнительно собрал платформу для проверки, какие “обрывы” перепрыгиваются хорошо, а какие будут ощущаться некомфортно.

Дневник разработки #2: Секреты создания идеального уровня

Похожая история была с механикой WallRun. На входе у нас есть только “время бега по стене”. Оптимальную длину стенки для бега и расстояния, которое можно преодолеть нужно было вычислять вручную на специальной платформе

Дневник разработки #2: Секреты создания идеального уровня

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

Выйди и зайди нормально

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

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

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

В нашем случае мы остановились на четырех основных размерах дверей. Они будут использоваться в разных местах, но ключевые размеры будут оставаться неизменными.

На фоне дверей есть коридоры, которые также значительно больше реальных прототипов, и зачастую они также увеличены в 2-3 раза.

Дневник разработки #2: Секреты создания идеального уровня

Также важно уметь “Выделить” дверь для игрока, особенно если мы хотим чтобы он в нее зашел.

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

Зачастую дверь выделяют более мелкими объектами, которые как бы заранее демонстрируют размер дверного проема.

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

Дневник разработки #2: Секреты создания идеального уровня

Да кто эти метрики ваши?

Подводя итог важно повторить.

  • Метрики крайне полезны и необходимы при разработке уровня и тестировании механик.
  • Уровень с метриками ваша “игровая” где вы проверяете свои идеи, а другие члены команды могут вживую пощупать как должен играться тот или иной элемент.
  • Без метрик можно собрать прототип уровня, но это займет гораздо больше времени.
  • Имея уровень с метриками у вас есть наглядные примеры того, что вы можете использовать на уровне.
  • Метрики это часть ГДД, но внутри движка, там наглядно отображено то, что вы описали на бумаге.

От идеи к полноценной схеме

Ну что, вот у нас уже есть какие-никакие метрики, достаточные для создания уровня.

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

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

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

Я начинал с базовых форм, которые в будущем превратятся в крупные комнаты/арены, а затем соединял их примитивными линиями, которые впоследствии переработаются в комнаты и коридоры.

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

Не стоит недооценивать этот этап, проще понять что вам не нравится уровень после пяти минут с карандашом, чем после целого дня блокинга.

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

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

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

И уже с такой относительно проработанной схемой мы можем пойти в редактор и начать собирать уровень.

Важно понимать, что над схемой я работал несколько дней и пробовал разные варианты, что-то ушло в мусорку на стадиях набросков, что-то еще позже после обсуждения с командой.

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

Дневник разработки #2: Секреты создания идеального уровня

Превращаем схему в осязаемый уровень

И вот у нас на руках уже есть готовая схема, теперь можно смело запрыгивать в редактор.

Для начала стоит определиться с инструментами. Мы работаем с движком Unity, поэтому инструменты советую именно для этого движка.

Лично я пользуюсь плагином ProBuilder для Unity и набором текстур Gridbox Prototype Materials.

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

Подготовили инструменты и начинаем работу. Как это делаю я?

  • Закидываю нарисованную схему на уровень отдельным слоем
  • Подгоняю размерную сетку на схеме к оригинальным размерам в редакторе
  • Цепляю из уровня с метриками нужные мне элементы и откладываю в сторону для быстрого доступа
  • Постепенно начинаю воспроизводить элементы уровня в редакторе прямо на схеме – Для шаблонных элементов пользуюсь заготовками уровня с метриками

Важно понимать, что во время создания блокаута вы сможете сразу-же тестировать уровень. Поэтому финальный вариант может отличаться от схемы, комнаты могут стать чуть шире, где-то пропадет или появится проход и так далее. Не переживайте, это не значит что ваша схема была плохой, просто в 3D пространстве вам станет гораздо понятнее логика вашего уровня, которая до этого была только в 2D и вашей голове.

Во время создания блокаута вы можете пренебрегать “красотой”, самое главное создать нужную геометрию уровня, для эффективного тестирования. Но и не стоит совсем упрощать окружение и делать его из пустых боксов.

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

Проверяем и исправляем

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

Мы расставили на уровне направляющие, сделали заметные и незаметные двери, и полностью уверены в том, как поведет себя игрок. Но на деле все оказывается иначе и игрок ведет себя не так как вы хотели. Работа в пустую… Игрок теряется, а уровень не интересный. Как этого избежать?

Тестировать. Тестировать. И еще раз тестировать. Это залог того, что уровень будет понятен не только вам, но и игроку.

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

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

Но как же проводить тестирование?

Проводится оно в несколько этапов. Тестирование – Исправление – Тестирование (повторяйте до нужного результата)

“Тестирование” я провожу так:

  • Даю коллегам пройти уровень – Можно дать ему определенное задание, которое например было бы у реального игрока.
  • Молча наблюдаю за тем, как играет коллега и подмечаю как он себя ведетЖелательно записать на видео само прохождение.На вопросы лучше не отвечать, у реального игрока за плечом разработчика не будет
  • После прохождения заваливаю коллегу вопросамиПочему ты пошел сюда, а не туда?Понятно ли было куда идти?Скучный или интересный был уровень?Ну и другие вопросы о том, как он себя вел, с учетом того, как вы представляли поведение игрока

Чем на большем количестве людей вы проверите уровень, тем лучше. Так вы сможете исключить вариант того, только один человек “Пошел не туда”, а это массовая проблема.

Но не перестарайтесь, нужно чтобы часть людей готовых тестировать остались на “новую итерацию”. Те кто уже играл знают уровень и уже не так объективно подойдут к тестированию.

По итогу тестирования вы поймете, как на уровне поведет себя игрок, который впервые на него попадет.

Я исправлюсь, честно

В моем случае вышло так, что 100% людей повернули во второстепенный коридор и просто пропустили основную арену и заблудились на уровне.

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

Исправив недочеты я снова отправился к остаткам команды с новой версией уровня.

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

К тому моменту уровень всех устроил. Поэтому он отправился в 3D отдел, чтобы превратиться из серой коробки, в настоящий яркий уровень.

И что по итогу?

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

Выходит так:

  • Мы закладываем фундамент нашего левел-дизайна еще на стадии метрик.
  • Укрепляем этот фундамент и создаем чертеж на стадии схемы
  • На стадии прототипирования мы закладываем основы дома и его внешний вид
  • А на стадии тестирования дорабатываем его напильником и исправляем кривую навигацию

Создание уровней, да и в целом игры нелегкий, но очень интересный процесс. Но самое главное, чтобы по итогу от всей этой проделанной работы получили удовольствие игроки.

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

Поддержка

Если вам нравится то, что мы делаем, и вы хотите поддержать нас, мы будем очень признательны за любую помощь!

Посетите наши страницы для подробностей и, возможно, для поддержки:

Каждый вклад делает наш проект лучше. Спасибо, что вы с нами!

4
3 комментария