Блуждая по граблям - как я линейный левел дизайн познавал

Блуждая по граблям - как я линейный левел дизайн познавал

Постановка задачи

Мне давно хотелось попробовать собрать приключенческую локацию с хоть какими то пространственными головоломками. Линейных коридорных уровней я ещё не делал и хотел понять как можно работать с управлением внимания игрока.

Когда решение было принято принято, осталось лишь составить требования:

  • Дедлайн 31 августа, после этого никаких правок и обновлений.
  • Локация должна быть оформлена готовыми ассетами.
  • Без добавления глобально новых сущностей. Можно было сделать мелкие правки в геймплее, но на как можно более ранних этапах и дизайнить исходя из ограничений.
  • Несколько простых головоломок.

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

Подготовка — 3 дня

В качестве геймплейной основы был выбрал тестовый проект Stack-O-Bot. Отмечу что в первые же дни пришлось править баги в механиках и персонаже, чтобы из этого можно было собрать хоть какой то паззл.

Фактически это 3д платформер от третьего лица, с горизонтально летящим джетпаком и возможностью перерождаться, чтобы потом прыгать по оставленным телам или же оставлять их держать кнопку. Одновременно можно оставлять не более 2х тел (изначально было 8, я не знаю зачем так дофига).

Блуждая по граблям - как я линейный левел дизайн познавал

К этой работе я решил отнестись как к судоку. Были неизвестны ни идея карты, ни её размеры и форма, ни какие головоломки мне надо собрать. Поэтому начал разгадывать с того что проверить легче всего — с мувмента.

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

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

С передвижением понятно, далее головоломки. Лучшим вариантом оказалось просто вытащить все элементы которые есть в проекте — кнопки, двери, платформы и т. д. и походить / попрыгать вокруг них.

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

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

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

Блокаут — 6 дней

Блуждая по граблям - как я линейный левел дизайн познавал

Вооружившись метриками и паззлами пришла пора наконец собрать блокаут / greybox / whitebox / набросок / каляку-маляку. Его я делаю сразу в 3д на кубиках, на то есть сразу несколько причин:

  • В 3д можно сразу хоть как то, кривовато, но побегать и оценить пробегаемые расстояния. Иногда на бумаге кажется что путь короткий, но бежать всё равно оказывается очень скучно.
  • Можно выставить ключевые точки и выстраивать под них ракурсы.
  • От изменения высоты этажа, меняется не только высота, но и длинна прилежащих лестниц и склонов. То же правило действует в обратную сторону. Можно запросто напороться на лестницы, которые залезают на другие объекты / дороги / стены, после переноса концепта в 3д.
  • Смотря на план, навигация игрока на самом деле неочевидна. Можно лишь строить догадки куда игрок будет смотреть. Ведь то как вы читаете карту сверху вниз, видя куда уходит геометрия может в корне отличаться от того же с камеры игрока.

Ну и пока собирал, сложил в голове простенький нарратив:

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

В итоге для нарративного дизайна не хватило ассетов и времени, так что от него остались лишь слова. Хорошо хоть записки не сделал.

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

Процесс получился такой: Собрал направление за один вечер, и ещё 5 дорабатывал.

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

К концу сборки блокаута уровень был полностью проходим и мог бы быть передан художникам на доработку…

Деревня — 3 дня

…Но художника под рукой не оказалось, поэтому собирал сам.

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

В проекте лежал пак ассетов и примеры сборки домиков из них. Подход, я бы сказал, несовременный. Модули скейлятся целиком или по одной оси в разы, вращаются и сочетаются вообще в любых комбинациях. Набор данных ассетов выглядит как непонятные Sci-fi штуки и нет нужды жёстко привязывать их к логике «Этот элемент только для стен первого яруса зданий».

Каньон — 2 дня

Каньон состоял всего из двух вещей — ландшафта и ассетов с мегаскана.

У меня специфичный подход к работе с ландшафтом. Я люблю держать кубы до последнего, ведь они очень чётко обозначают нужную плоскость, которую ты можешь легко повернуть, отмасштабировать и передвинуть. Ландшафтными тулзами такие правки делать заметно сложнее — фиг ты быстро гору подвинешь с теми же пропорциями, ступеньками и склонами.

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

Просто поднимаем скульптом точку до нужной высоты и через Flatten и Ramp повторяем форму кубов. На ландшафт всей локации ушло 30 - 40 мин вместе с зоной города

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

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

Детализация и мелкие правки — 4 дня

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

Неприятным испытанием оказались сплайны. Я раньше думал что проблема конкретно в блюпринтовой реализации — так вот нет, бесит именно невозможность починить скручиваемость SplineComponent. Ты можешь сколько угодно крутить тангенты, но твиста, как в майке, очень не хватает. Сплайны использовались для обозначения что кнопка открывает вот эту конкретную дверь. Всё.

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

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

Прохождение последнего паззла

Грабли!

Блуждая по граблям - как я линейный левел дизайн познавал

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

  • Ракурс надо было выстраивать не только от точки респавна, но и от кнопок, чтобы видеть что именно ты активируешь, иначе интеракция получается вслепую
  • Пусть сплайновые трубы и добавили немного читаемости, но всё же им стоило добавить разные цвета или свечение при включении
  • Платформинг не работает. Причём не только из за лд, а в целом он тут и не нужен. Лучше бы на место каньона заместо паркура сделал бы ещё один паззл, допустим, над пропастью (для масштабности)
  • Зря не порезал джетпак раза в 2 — 3 на раннем этапе. Много чизинга, от которого с таким запасом полёта никуда не деться. Он просто ломает головоломки и не даёт нового опыта.
  • Ну и главное — локация вышла большеватой для работы на 1 месяц. Из за этого уровень оформления и детализации очень неровный. Однако это был первый опыт приключения и хотелось выдать продолжительность по максимуму.

Итого — 18 рабочих вечеров

Дедлайн есть дедлайн. Зато усвоил на своей шкуре такие вот правила и хитрости:

  • До работы над картой стоит попробовать собрать не только зоопарк мувмента и интерактивных объектов, но и тестовые геймплейные ситуации (В случае с паззлами, можно подизайнить их в отрыве от локации)
  • В паззлах надо постоянно давать новые элементы, иначе скучно. Даём новую сущность, 1 — 3 паззла, добавляем ещё. Просто комбинировать их всеми вариантами тоже отстой. У меня к 5 паззлу явно хотелось уже добавить что то радикально новое, а не только подъёмную платформу
  • Флоу и ракурс нам бро
  • Паззлы должны быть нормально разделены друг от друга, иначе будет мешанина
  • Универсальный конструктор Sci-Fi элементов это прикольно, но лучше делать более крупные пресеты либо писать тулзы. Руками такое собирать муторно и править потом уже не хочется. Явно не хватало очень больших элементов для сборки.
  • Если нет рабочего геймплея, можно временно записать хотя бы медленную пролётку камерой на уровне глаз игрока. Это не помогает в понимании навигации, но зато всплывают артовые косяки.

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

39
18 комментариев