Модульный конструктор для блокаутов: чему Fallout 4 может научить левел-дизайнера
На самом раннем этапе блокаута уровень действительно можно собирать из обычных примитивов: кубов, плоскостей, мешей или других простых геометрических объектов.
Для быстрой проверки одной комнаты этого часто достаточно.
Проблемы начинаются тогда, когда уровень становится больше, появляется несколько помещений или этажей, а одну и ту же геометрию приходится регулярно перестраивать.
Без общей системы каждый новый участок постепенно обзаводится собственными размерами:
- одна дверь имеет ширину 180 см, другая — 200;
- похожие коридоры отличаются на несколько десятков сантиметров;
- лестницы имеют разную высоту ступеней;
- стены не совпадают по толщине;
- этажи плохо стыкуются;
- одинаковые игровые ситуации требуют каждый раз собирать геометрию заново.
Пока уровень маленький, это выглядит как незначительная неряшливость.
При постоянных итерациях это превращается в стоимость разработки.
Изменение ширины коридора требует вручную двигать несколько объектов.
Перенос двери ломает соседнюю стену.
Изменение высоты этажа заставляет перестраивать лестницу.
Попытка перенести удачное помещение в другую часть уровня заканчивается новой ручной сборкой.
Модульный конструктор превращает отдельные геометрические решения в систему.
Вместо того чтобы каждый раз создавать стену нужного размера, designer выбирает один из стандартных модулей. Вместо новой лестницы использует уже проверенный элемент. Вместо ручного выравнивания нескольких помещений собирает их на общей сетке.
Это даёт несколько преимуществ.
Скорость итераций
Главная экономия появляется не при создании первой версии уровня, а при её изменении.
Хорошо построенную модульную планировку легко:
- расширить;
- сократить;
- перестроить;
- перенести;
- соединить с другим участком;
- заменить одним пространственным решением другое.
Для левел-дизайн, где значительная часть работы состоит именно из итераций, это критически важно.
Стабильные игровые метрики
Конструктор фиксирует основные размеры проекта:
Designer перестаёт случайно менять игровые метрики от комнаты к комнате.
Быстрое повторное использование удачных решений
Если команда нашла хорошо работающую конфигурацию лестничной клетки, дверного перехода или небольшого боевого пространства, её не нужно каждый раз воспроизводить вручную.
Она становится частью общего языка проекта.
Более чистая передача уровня между разработчиками
Стандартные модули делают пространство предсказуемым не только для автора уровня.
Другой левел-дизайнер быстрее понимает его структуру.
Environment artist получает более последовательный блокаут.
Technical designer знает ожидаемые размеры проходов и интерактивных элементов.
Навигация ИИ и камера работают в более стабильных условиях.
Возможность думать о дизайне, а не о геометрической рутине
Левел-дизайнер должен тратить большую часть внимания на:
Если значительная часть рабочего времени уходит на подгонку соседних кубов на несколько сантиметров, инструмент начинает мешать самой работе.
Хороший модульный конструктор убирает значительную часть этой рутины.
О чем эта статья
О модульных конструкторах существует много материалов, но большая их часть написана с точки зрения environment art.
Для художника это важные темы.
Но левел-дизайнер решает другую задачу.
Ему прежде всего нужно понять:
как спроектировать набор простых блоков, из которых удобно строить и постоянно перестраивать игровые пространства.
Один из наиболее полезных производственных примеров такого подхода — Fallout 4.
Bethesda использовала модульное строительство задолго до этой игры, однако при разработке Fallout 4 команда особенно подробно проработала вопросы размеров модулей, степени их дробления, стыковки разных наборов, готовых сборок и взаимодействия между левел-дизайна и environment art.
В 2016 году левел-дизайнер Джоэл Берджесс и environment artist Натан Пуркепайл посвятили этому отдельный доклад The Modular Level Design of Fallout 4.
Значительная часть доклада посвящена художественному производству, но за ней скрывается очень сильная система принципов, непосредственно применимых к блокауту.
В этой статье мы возьмём именно эту часть опыта Bethesda и адаптируем её под современный процесс левел-дизайна.
Нас будет интересовать не то, как сделать модульный интерьер Fallout 4 визуально, а то:
- как выбрать размеры модулей;
- как организовать сетку;
- как определить правильную степень дробления конструктора;
- какие элементы стоит объединять в префабы;
- как стандартизировать соединения;
- как избежать избыточного количества деталей;
- как проверить конструктор до начала полноценной работы над уровнем;
- как сделать так, чтобы система ускоряла последующие итерации, а не только первую сборку.
Иными словами, речь пойдёт о модульном конструкторе именно как об инструменте левел-дизайна.
Модульный конструктор для level design — это не набор красивых стен.
Это система пространственных строительных блоков, которая позволяет дизайнеру быстро собирать, проверять и переделывать игровой уровень, не моделируя каждое помещение заново.
Именно так Bethesda много лет строила значительную часть внутренних пространств The Elder Scrolls и Fallout. В Fallout 4 этот подход был доведён особенно далеко: вместо того чтобы рассматривать каждый интерьер как отдельную геометрическую задачу, команда создавала семейства совместимых модулей, из которых level designers могли быстро собирать разные конфигурации пространств.
Главный принцип здесь важнее конкретных ассетов Fallout:
хороший модульный конструктор должен в первую очередь ускорять дизайнерские итерации, а не производство геометрии.
В презентации Bethesda эта цель раскрывается через несколько производственных приоритетов: уменьшить объём повторной работы, как можно раньше получать играбельный результат и сделать конструктор достаточно надёжным, чтобы левел-дизайн мог уверенно использовать его уже на ранних стадиях разработки.
Начинайте не со списка модулей, а с задачи
Одна из самых полезных идей Fallout 4:
модульный конструктор должен решать конкретный набор пространственных задач.
Bethesda в какой-то момент столкнулась с большим количеством похожих архитектурных наборов. Каждый новый конструктор требовал времени на создание, внедрение, обучение дизайнеров, поддержку и последующие исправления.
«Какие пространства этим конструктором должен уметь создавать level designer?»
Например, конструктор офисного интерьера для action-adventure может быть рассчитан на:
- небольшие кабинеты;
- открытые рабочие пространства;
- коридоры;
- служебные помещения;
- лестничные клетки;
- небольшие боевые пространства;
- альтернативные маршруты;
- закрываемые и открываемые переходы;
- вертикальные связи между этажами.
Это определяет набор модулей гораздо лучше, чем попытка заранее придумать двадцать разновидностей стен.
Для блокаута полезно заранее сформулировать границы применимости конструктора:
Что с его помощью должно быть удобно строить?
Какие задачи он сознательно не пытается покрывать?
Попытка создать один универсальный конструктор «для любых зданий» почти неизбежно приводит либо к огромной библиотеке модулей, либо к неудобной системе, в которой трудно найти нужный элемент.
Сначала игровые метрики, потом модули
До создания первого элемента необходимо определить основные пространственные метрики проекта.
- ширину и высоту капсулы персонажа;
- комфортную ширину прохода;
- минимальную ширину двери;
- ширину прохода для двух персонажей;
- минимальную высоту потолка;
- размеры лестничной клетки;
- комфортную глубину ступени;
- размеры укрытий;
- дистанции боя;
- пространство для стрейфа и уклонений;
- требования навигации ИИ;
- требования камеры к свободному пространству вокруг игрока.
То есть порядок должен быть примерно таким:
персонаж → игровые метрики → архитектурные метрики → сетка → модули.
Это особенно важно для игр от третьего лица.
Архитектурно реалистичный коридор может прекрасно выглядеть на плане и отвратительно работать с камерой за плечом персонажа.
Поэтому хороший конструктор для блокаута воспроизводит не реальные строительные нормы, а архитектуру, подчинённую игровому процессу.
Габарит модуля — фундамент всей системы
В презентации Fallout 4 используется термин footprint — пространство, которое модуль занимает внутри системы.
Для практики блокаута это проще понимать как:
габарит модуля и его положение относительно сетки.
Bethesda отдельно подчёркивает необходимость:
- заранее определить стандартные размеры;
- осторожно использовать модули с нестандартными габаритами;
- не выводить геометрию за пределы занимаемой области;
- использовать последовательную систему пивотов.
- пол может занимать 400 × 400;
- стена — соответствовать краю этой ячейки;
- сегмент коридора — занимать 400 × 400;
- большая комната — 800 × 800;
- небольшая ниша — 200 × 400.
Конкретные числа здесь не принципиальны.
размеры модулей должны быть математически совместимыми.
то пространство легко собирается и перестраивается.
дизайнер довольно быстро оказывается в мире зазоров, наложений и ручной подгонки.
Но сетка — это инструмент, а не хозяин уровня
У ранних игр Bethesda была обратная проблема.
Сильная привязка к сетке делала модульность пространства слишком заметной: помещения слишком часто развивались по прямым углам и одинаковым шагам.
Поэтому хороший современный подход обычно использует несколько уровней сетки.
Основная сетка
Вспомогательная сетка
Важно не конкретное значение, а иерархия.
Большая часть уровня должна собираться на крупной сетке. Если designer постоянно вынужден переходить на минимальный шаг привязки, вероятно, сама система спроектирована неудачно.
Пивот — часть интерфейса конструктора
Пивот часто воспринимают как техническую мелочь.
Для модульного конструктора это часть пользовательского интерфейса.
Bethesda отдельно подчёркивала:
выберите правило расположения пивотов и придерживайтесь его.
логическая точка соединения со стеной.
если дизайнер постоянно использует снаппинг по вершинам, ручной снаппинг или временно отключает сетку, чтобы соединить два базовых элемента, проблема, скорее всего, в самом конструкторе.
Конструктор должен начинаться с обычных пространств
Не начинайте с двадцати вариантов каждого элемента.
Для стандартного интерьерного конструктора блокаута базовое ядро может выглядеть примерно так.
Конструктивные элементы
Проёмы
Вертикальные связи
Игровые элементы
Этого уже достаточно, чтобы построить очень большое количество пространств.
Сначала нужно доказать, что система работает.
Только после этого расширять её строительный словарь.
Не путайте конструктивные модули и готовые помещения
Это один из самых полезных производственных уроков Fallout 4.
Дизайнер размещает один объект — и получает:
Но изменить такую комнату становится сложно.
Можно пойти в другую крайность:
Но количество действий при сборке резко возрастает.
Bethesda столкнулась именно с этой проблемой. После повышения степени дробления одна и та же конструкция могла требовать вместо нескольких десятков объектов уже больше сотни.
Решением стали сохранённые сборки из более мелких деталей — в Bethesda их назвали Pack-Ins. По смыслу это очень близко к современным префабам: дизайнер мог использовать готовую сборку для скорости, но при необходимости разобрать её на отдельные модули и изменить.
Отсюда хороший современный принцип:
Работайте на двух уровнях
Небольшие строительные элементы.
Часто используемые комбинации этих элементов.
Например, префаб стандартной комнаты может состоять из:
Дизайнер получает скорость работы с готовыми сборками, но при необходимости может изменить конкретную стену, потолок или проём.
Это гораздо практичнее, чем выбирать между двумя крайностями: «всё является префабом» и «каждая деталь всегда собирается вручную».
Степень дробления конструктора должна соответствовать частоте изменений
Полезное производственное правило:
чем чаще дизайнеру необходимо изменять элемент независимо от остальных, тем больше причин сделать его отдельным модулем.
Например, пол и потолок лучше разделять.
Потому что дизайнер может захотеть:
- сделать яму;
- поднять потолок;
- создать балкон;
- убрать часть пола;
- организовать вертикальную линию обзора.
Если пол, стены и потолок объединены в один объект, каждое такое изменение становится неудобным.
Fallout 4 сознательно двигался в сторону большей степени дробления: отделение стен, пола и потолка давало больше свободы для планировки, разрушений и комбинирования разных конструкторов.
Но дробление не должно становиться самоцелью.
Отдельная десятисантиметровая планка стены — уже не левел-дизайн модуль.
Это художественная детализация.
Стандартизированные стыки важнее количества комнат
Один из самых сильных принципов Bethesda — стандартизация мест соединения разных частей конструктора.
Два семейства модулей могут совершенно по-разному выглядеть и работать внутри.
Но места их соединения должны быть совместимы.
Если размеры и правила соединения совпадают, разные системы можно свободно комбинировать.
В Fallout 4 эта идея развивалась через концепцию Sockets & Plugs.
В адаптированном виде её удобно понимать как:
Точка подключения
Стандартизированное место, куда может быть установлен другой элемент.
Вставка
Конкретный элемент, который этот проём заполняет.
- обычная дверь;
- двойная дверь;
- запертая дверь;
- разрушенный проход;
- баррикада;
- роллет;
- узкий проход;
- полностью открытый проём.
То же самое можно сделать с вертикальным соединением.
Точка подключения
Возможные вставки
Таким образом топология пространства и конкретная игровая функция перестают быть одним и тем же объектом.
Хороший конструктор позволяет заменять одно решение другим
Представим, что тестирование показало:
лестница слишком сильно замедляет игрока.
Если система построена модульно, designer может заменить её на:
Основная структура уровня при этом останется неизменной.
Именно здесь модульный подход начинает напрямую ускорять игровые итерации.
Главная ценность конструктора не в том, что первый блокаут собирается быстрее.
пятый вариант блокаута собирается почти так же быстро, как первый.
Создавайте разнообразие на уровне пространства, а не только внешнего вида
В Fallout 4 значительная часть работы была направлена на борьбу с визуальным повторением: дополнительные элементы, разрушенные варианты, декали и реквизит помогали скрывать повторное использование одних и тех же модулей.
Для блокаута художественная часть не имеет значения.
Но существует её левел-дизайн аналог:
ощущение повторяемости планировки.
Игрок тоже начинает распознавать конструктор, если постоянно встречает:
коридор → квадратная комната → коридор → квадратная комната.
Поэтому конструктор блокаута должен позволять создавать:
- разные пропорции помещений;
- Г-образные комнаты;
- смещения;
- перепады высот;
- частичные перекрытия;
- балконы;
- точки обзора сверху;
- асимметричные входы;
- диагональные элементы;
- разные высоты потолков.
То есть дизайнер должен иметь возможность ломать визуальный и пространственный ритм сетки, не ломая техническую совместимость конструктора.
Разделяйте конструктивный и геймплейный слои
Для современного блокаута очень полезно разделять уровень как минимум на два функциональных слоя.
Конструктивный слой
Геймплейный слой
- укрытия;
- элементы перемещения;
- препятствия;
- управление линиями обзора;
- боевые позиции;
- интерактивные объекты;
- опасности.
Одна и та же конструктивная комната может работать совершенно по-разному.
→ исследовательское пространство.
С препятствиями и разрывами линий обзора:
→ пространство для скрытного прохождения.
Это резко повышает полезность базового конструктора.
Пространство вне основной сетки не требует отказа от модульности
Не нужно заставлять весь уровень жить на одной мировой сетке.
Например, отдельное крыло здания можно повернуть на 15 градусов.
Внутри него всё ещё может использоваться собственная локальная сетка.
не превращая дальнейшее редактирование в ручную подгонку каждого элемента.
Сетка остаётся системой порядка, но этот порядок может быть локальным.
Конструктор нужно проверять до начала полноценного производства уровней
Модульный конструктор нельзя считать рабочим только потому, что несколько стен хорошо соединяются между собой.
Его нужно специально проверять на сложных комбинациях.
Проверка стыков
прямой участок → поворот → ещё несколько сегментов → возвращение к исходной точке.
Конструкция должна замкнуться точно.
Если появляется даже небольшой зазор, ошибка будет накапливаться в крупных уровнях.
Проверка вертикальной сборки
Конструктор, который работает только для одноэтажного помещения, ещё не доказал свою пригодность.
Проверка нестандартных стыков и зазоров
Попробуйте намеренно собрать неудобную комбинацию.
- соединить два типа коридора;
- использовать нестандартный угол;
- сделать переход между разными высотами;
- соединить два семейства модулей.
Посмотрите, какие пространства невозможно закрыть штатными средствами.
Иногда вместо ещё двадцати конструктивных элементов нужен всего один хороший переходный модуль.
Добавьте игровые проверки
Для левел-дизайна геометрической совместимости недостаточно.
Конструктор необходимо проверять реальным персонажем.
Проверка перемещения
- спокойно пройти;
- пробежать;
- повернуть;
- разойтись с NPC;
- пользоваться лестницами;
- прыгать;
- перелезать;
- уклоняться?
Проверка камеры
Особенно внимательно проверяйте:
Особенно это важно для игр от третьего лица.
Проверка боя
Соберите небольшой боевой энкаунтер.
- дистанции боя;
- линии обзора;
- расстояния между укрытиями;
- возможность флангового обхода;
- возможность отступления;
- перемещение ИИ.
Проверка навигации ИИ
Геометрия, которая идеально стыкуется, но ломает ИИ, — плохой игровой конструктор.
Конструктор блокаута должен появляться раньше художественного конструктора
Это, пожалуй, один из самых важных производственных принципов Fallout 4.
Работа над основными модульными системами должна начинаться рано.
К моменту серьёзной работы над планировками левел-дизайнер уже должен иметь достаточно надёжный конструктор, на который можно опираться.
Это переворачивает распространённый учебный подход:
«Сначала я построю уровень кубами, а потом когда-нибудь сделаю модульный конструктор».
Для большого проекта гораздо полезнее:
метрики → прототип конструктора → проверка → производство блокаутов.
Иначе каждый designer начинает самостоятельно изобретать:
Через несколько месяцев проект получает десятки почти одинаковых, но несовместимых решений.
Конструктор тоже проходит итерации
В Fallout 4 развитие модульных наборов было тесно связано с поэтапным производством уровней.
Для современного блокаута этот подход можно адаптировать следующим образом.
Версия 0 — проверка метрик
Проверяем масштаб пространства.
Версия 1 — конструктивное ядро
Уже можно собрать первый полноценный уровень.
Версия 2 — вертикальные связи
Версия 3 — игровые элементы
Версия 4 — сложные случаи
Не нужно заранее моделировать весь будущий каталог.
Конструктор стоит расширять только по мере того, как реальные уровни начинают требовать новых модулей.
Не создавайте новый модуль без повторяющейся потребности
Если designer столкнулся с одной уникальной проблемой, её можно сначала решить отдельной геометрией.
Если то же решение понадобилось второй или третий раз, стоит подумать о новом модуле.
Это защищает конструктор от бесконтрольного роста.
Слишком большое количество элементов превращает хороший инструмент в бесконечный поиск по браузеру ассетов.
Названия элементов — тоже часть инструмента
Даже идеальный модуль бесполезен, если его сложно найти.
Название должно сообщать дизайнеру минимум:
семейство + тип + размер + вариант.
Designer не должен помнить, что:
Не злоупотребляйте масштабированием модулей
Для блокаута очень легко сделать:
«эта стена немного короткая — просто растяну её по X».
После нескольких часов таких исправлений модульная система фактически перестаёт существовать.
- использовать полноразмерные модули;
- использовать половинные модули;
- заранее предусмотреть несколько совместимых размеров;
- использовать специальные переходные элементы.
Неравномерное масштабирование допустимо для временного исследования пространства, но не должно становиться основным способом сборки модульной планировки.
Оставляйте место для уникальных пространств
Fallout 4 никогда не строился на предположении, что абсолютно всё обязано состоять только из повторяемых модулей.
Модульность особенно эффективна там, где существует повторяемая архитектурная грамматика:
Ключевые уникальные пространства вполне могут собираться отдельно.
Современный блокаут может, например, состоять из:
70% модульной системы и 30% уникальной геометрии.
Конкретное соотношение зависит от проекта.
Модульность должна снижать стоимость итераций, а не запрещать хорошие пространственные решения.
Хороший конструктор блокаута должен быть скучным
Парадоксально, но это хороший знак.
Сам модуль не обязан быть интересным.
Интересным должен быть уровень, который можно из него собрать.
Базовая стена может быть буквально прямоугольником.
- имеет правильный размер;
- корректно привязывается к сетке;
- использует понятный пивот;
- совместима с дверями;
- совместима с углами;
- не создаёт проблем с коллизиями;
- соответствует игровым метрикам.
Это уникальный элемент пространства.
Практический стартовый конструктор для интерьерного блокаута
Если сегодня делать универсальный базовый конструктор для third-person RPG, action-adventure или shooter, я бы начинал примерно с такого ядра.
Полы
Стены
Wall_1Wall_2Wall_InnerCornerWall_OuterCorner
Проёмы
Wall_DoorWall_DoubleDoorWall_WindowWall_Open
Вертикальные связи
Stair_StraightStair_LandingRampPlatform
Игровые элементы
HalfWallCover_LowCover_HighColumnBlocker
Переходы
DoorSocketVerticalSocketCorridorTransition
В названиях ассетов английский вполне оправдан: это техническая часть проекта, а не терминология самой статьи.
Новые элементы стоит добавлять только после нескольких реальных сценариев использования блокаута.
Главный урок Fallout 4
Модульный конструктор — не способ быстрее моделировать стены.
Это инфраструктура level design.
- закрепляет метрики проекта;
- ускоряет пространственное прототипирование;
- уменьшает количество случайных размеров;
- позволяет быстро перестраивать структуру уровня;
- создаёт общий пространственный язык для команды;
- упрощает передачу блокаута в художественное производство;
- позволяет левел-дизайнеру сосредоточиться на маршрутах, боях, темпе, исследовании и игровом опыте вместо геометрической рутины.
Поэтому главный критерий его качества можно сформулировать очень просто:
насколько быстро дизайнер способен изменить своё решение?
Не насколько быстро он построил первую комнату.
перенести дверь,
расширить боевое пространство,
поменять маршрут,
добавить этаж,
сломать линию обзора,
заменить лестницу,
объединить две комнаты
— и через несколько минут снова получить играбельный уровень.
Именно для этого модульный конструктор действительно существует.