Блуждая по граблям - как я линейный левел дизайн познавал
Постановка задачи
Мне давно хотелось попробовать собрать приключенческую локацию с хоть какими то пространственными головоломками. Линейных коридорных уровней я ещё не делал и хотел понять как можно работать с управлением внимания игрока.
Когда решение было принято принято, осталось лишь составить требования:
- Дедлайн 31 августа, после этого никаких правок и обновлений.
- Локация должна быть оформлена готовыми ассетами.
- Без добавления глобально новых сущностей. Можно было сделать мелкие правки в геймплее, но на как можно более ранних этапах и дизайнить исходя из ограничений.
- Несколько простых головоломок.
Часть локации пошла под нож и некоторые идеи пришлось упростить, однако считаю ценным что не стал тратить дополнительный месяц и не потерял энтузиазм во время работы над картой.
Подготовка — 3 дня
В качестве геймплейной основы был выбрал тестовый проект Stack-O-Bot. Отмечу что в первые же дни пришлось править баги в механиках и персонаже, чтобы из этого можно было собрать хоть какой то паззл.
Фактически это 3д платформер от третьего лица, с горизонтально летящим джетпаком и возможностью перерождаться, чтобы потом прыгать по оставленным телам или же оставлять их держать кнопку. Одновременно можно оставлять не более 2х тел (изначально было 8, я не знаю зачем так дофига).
К этой работе я решил отнестись как к судоку. Были неизвестны ни идея карты, ни её размеры и форма, ни какие головоломки мне надо собрать. Поэтому начал разгадывать с того что проверить легче всего — с мувмента.
В первый же день собрал зоопарк с метриками. На этот левел в дальнейшем не возвращался, т. к. сделал скриншот который всегда висел передо мной в PureRef в качестве главного референса. Идея сделать картинку со всеми метриками — суперудачная. Выглядит как шпаргалка с формулами по физике или математике. Да, на боевом проекте в идеале надо писать документацию, но даже туда можно прилепить картинку, в дополнение к записям об углах и метриках.
С передвижением понятно, далее головоломки. Лучшим вариантом оказалось просто вытащить все элементы которые есть в проекте — кнопки, двери, платформы и т. д. и походить / попрыгать вокруг них.
Когда надо придумать несколько креативных идей, я обычно сначала реализую первое что приходит в голову во всех вариантах, а дальше варианты приходят сами. Вот в случае с паззлами я решил поступить также.
Блокаут — 6 дней
Вооружившись метриками и паззлами пришла пора наконец собрать блокаут / greybox / whitebox / набросок / каляку-маляку. Его я делаю сразу в 3д на кубиках, на то есть сразу несколько причин:
- В 3д можно сразу хоть как то, кривовато, но побегать и оценить пробегаемые расстояния. Иногда на бумаге кажется что путь короткий, но бежать всё равно оказывается очень скучно.
- Можно выставить ключевые точки и выстраивать под них ракурсы.
- От изменения высоты этажа, меняется не только высота, но и длинна прилежащих лестниц и склонов. То же правило действует в обратную сторону. Можно запросто напороться на лестницы, которые залезают на другие объекты / дороги / стены, после переноса концепта в 3д.
- Смотря на план, навигация игрока на самом деле неочевидна. Можно лишь строить догадки куда игрок будет смотреть. Ведь то как вы читаете карту сверху вниз, видя куда уходит геометрия может в корне отличаться от того же с камеры игрока.
Ну и пока собирал, сложил в голове простенький нарратив:
Столица перестала поставлять питание в деревню роботов шахтёров, а Великая запасная батарейка вот вот истощиться. Именно поэтому наш бравый маленький робот, живущий у шахт, решил отправиться в приключение и узнать, что же произошло.
В итоге для нарративного дизайна не хватило ассетов и времени, так что от него остались лишь слова. Хорошо хоть записки не сделал.
Мне было важно чтобы в прохождении были не только головоломки но и интересные композиции кадра приглашающие игрока дальше. Возможно концептер мог бы доработать и сделать картинку интереснее, однако если не заложить хороший ракурс — итоговая работа будет в никуда.
Процесс получился такой: Собрал направление за один вечер, и ещё 5 дорабатывал.
Под нож полностью пошла последняя комната, т. к. по объёму работ выходило дорого. Причём не из за размера, а из за смены сеттинга в ней. Ну и прохождение могло бы выйти слишком длинным, что не особо ценно для проекта который я делаю по сути в стол. Пещера же была заменена на каньон из за проблем с освещением — решать паззлы при искусственном освещении в монотонной пещере было бы крайне неприятно.
К концу сборки блокаута уровень был полностью проходим и мог бы быть передан художникам на доработку…
Деревня — 3 дня
…Но художника под рукой не оказалось, поэтому собирал сам.
Первым делом накинул материал бетона, расставил деревья и понял что опять немного пролюбил масштаб. Геймплейно всё сходилось отлично, а вот визуально — не везде. Добавление ландшафта с его микроперепадами высот тоже внесло свою лепту.
В проекте лежал пак ассетов и примеры сборки домиков из них. Подход, я бы сказал, несовременный. Модули скейлятся целиком или по одной оси в разы, вращаются и сочетаются вообще в любых комбинациях. Набор данных ассетов выглядит как непонятные Sci-fi штуки и нет нужды жёстко привязывать их к логике «Этот элемент только для стен первого яруса зданий».
Каньон — 2 дня
Каньон состоял всего из двух вещей — ландшафта и ассетов с мегаскана.
У меня специфичный подход к работе с ландшафтом. Я люблю держать кубы до последнего, ведь они очень чётко обозначают нужную плоскость, которую ты можешь легко повернуть, отмасштабировать и передвинуть. Ландшафтными тулзами такие правки делать заметно сложнее — фиг ты быстро гору подвинешь с теми же пропорциями, ступеньками и склонами.
Ещё как вариант — подключить Houdini Engine и спроецировать кубы на ландшафт, но мне не хотелось подключать плагин ради только одной функции. (хотя готовая тулза уже есть — покажу в другой раз)
Сборка скал была самой медитативной частью всего проекта. Несколько часов прослушивания подкастов. Каменщик получается.
Конкретно эти камни выбрал не потому что они подходили лучше всего, а потому что среди них был хороший разброс в масштабах. Увы, не все коллекции настолько же всеобъемлющи.
Детализация и мелкие правки — 4 дня
Дальше я просто возил модельки по 3д пространству. Добавил ассеты насыпи, расставил фоновые камни, попрятал собираемые сферки и по мелочи почистил город.
Неприятным испытанием оказались сплайны. Я раньше думал что проблема конкретно в блюпринтовой реализации — так вот нет, бесит именно невозможность починить скручиваемость SplineComponent. Ты можешь сколько угодно крутить тангенты, но твиста, как в майке, очень не хватает. Сплайны использовались для обозначения что кнопка открывает вот эту конкретную дверь. Всё.
Со светом всё просто. Немного потеплее температуру, чуть повыше блюм и не боятся крутить экспозицию, в пустынях днём в тени довольно много света. К тому же освещённость сильно влияет на читаемость головоломок.
После добавления арта карта вновь стала не везде проходимой и понадобилось пару дополнительных дней для небольших правок прохода, создания коллизий и тестирования.
Грабли!
Именно при финальных прохождениях, сделав небольшую паузу после работы над уровнем я и увидел пачку неровностей. Выпишу их здесь, словно фидбечу не свою, а чужую локацию как список ошибок
- Ракурс надо было выстраивать не только от точки респавна, но и от кнопок, чтобы видеть что именно ты активируешь, иначе интеракция получается вслепую
- Пусть сплайновые трубы и добавили немного читаемости, но всё же им стоило добавить разные цвета или свечение при включении
- Платформинг не работает. Причём не только из за лд, а в целом он тут и не нужен. Лучше бы на место каньона заместо паркура сделал бы ещё один паззл, допустим, над пропастью (для масштабности)
- Зря не порезал джетпак раза в 2 — 3 на раннем этапе. Много чизинга, от которого с таким запасом полёта никуда не деться. Он просто ломает головоломки и не даёт нового опыта.
- Ну и главное — локация вышла большеватой для работы на 1 месяц. Из за этого уровень оформления и детализации очень неровный. Однако это был первый опыт приключения и хотелось выдать продолжительность по максимуму.
Итого — 18 рабочих вечеров
Дедлайн есть дедлайн. Зато усвоил на своей шкуре такие вот правила и хитрости:
- До работы над картой стоит попробовать собрать не только зоопарк мувмента и интерактивных объектов, но и тестовые геймплейные ситуации (В случае с паззлами, можно подизайнить их в отрыве от локации)
- В паззлах надо постоянно давать новые элементы, иначе скучно. Даём новую сущность, 1 — 3 паззла, добавляем ещё. Просто комбинировать их всеми вариантами тоже отстой. У меня к 5 паззлу явно хотелось уже добавить что то радикально новое, а не только подъёмную платформу
- Флоу и ракурс нам бро
- Паззлы должны быть нормально разделены друг от друга, иначе будет мешанина
- Универсальный конструктор Sci-Fi элементов это прикольно, но лучше делать более крупные пресеты либо писать тулзы. Руками такое собирать муторно и править потом уже не хочется. Явно не хватало очень больших элементов для сборки.
- Если нет рабочего геймплея, можно временно записать хотя бы медленную пролётку камерой на уровне глаз игрока. Это не помогает в понимании навигации, но зато всплывают артовые косяки.
Ну и да, телега. Там лежат видосы с полным прохождением локации, предыдущая карта и на днях буду писать про создание простых тулзов для процедурного окружения с исходниками. Короч, заходите — Йожиная лачуга.