Анатомия игры: Локации. часть 1
Приветствую! С вами снова я — Людмила, и мы возвращаем рубрику «Анатомия игры». Научная работа не позволяла мне вплотную заняться своими проектами и статьями на Хабр. Но между защитами и полевыми опытами выдалось немного времени, а, значит, я снова в деле!
Мало кто из рядовых игроков задумывается о том, как тяжело проектировать и собирать локации. Но рано или поздно он попадает в «плохую» игру, где персонаж застревает на каждом шагу, где подолгу приходится стоять на распутье, вспоминая, а куда, собственно, он шел. В таких играх непонятно, где искать следующую часть головоломки, где искать ресурсы и откуда в героя попадает вражеская пуля. Все это — следствие недооценки одного из важнейших краеугольных камней геймдизайна.
Если при создании простейшего персонажа вам понадобится хотя бы базовое представление об анатомии (если персонаж хоть немного реалистичный) и колористики, то при работе с локациями задействуется весь багаж ваших знаний: от композиции до пространственного воображения, от светотени до архитектурных познаний, от природоведения до постановки кадра фотографической съёмки.
И это неспроста, ведь помимо создателя эту локацию будет видеть игрок. И не просто видеть — он будет её исследовать, изучать, передвигаться и ориентироваться в ней. Да, работать с плоской картой для стратегий в 2D-игре намного проще, чем создать фотореалистичный разрушенный храм для 3D-бродилки от первого лица, однако принципы работы с окружением схожи.
Уровень или локация?
Для начала, немного пожуем терминологию, чтобы потом не плавать в ней без ориентира. Место действия игры именуют по-разному: локации, комнаты, уровни, клетки и т. д. Насколько эти понятия взаимозаменяемы?
Дело в том, что в первых аркадных автоматах не было возможности сделать бесшовное прохождение игры больше, чем на несколько минут. Все место действия должно было помещаться на одном экране, и персонаж никогда его не пересекал. За редким исключением: в гонках само поле оставалось неподвижным, двигались только нарисованные границы и препятствия, что и создавало иллюзию поездки. В симуляторах истребителей космических вторженцев тоже двигались лишь волны врагов и декорации.
Гибридный аркадный автомат Baby Pac-Man и «продвинутая» версия аркады Donkey Kong. Помимо уровня (LVL) здесь есть счетчик бонусов, прогресс игрока (очки Score) и рекордный результат.
Так вот, герой был запрет в пределах одного «помещения». Покинуть его, перейдя на следующий уровень, он мог, только выполнив условие (победить босса, зачистить врагов, найти ключ и т. п.). Проигрыш обнулял прогресс полностью.
Поскольку стартовая «комната» чаще всего нумеровалась 0 или 1, а прохождение её прибавляло персонажу очки (сначала по одному за каждую), уровень персонажа и уровень в игре были синонимами. Так, персонаж, прошедший пять комнат, получал пятый ранг. Этим же начали мерять и мастерство игрока — 80 уровней как восемьдесят пройденных комнат без проигрыша.
Мини-игра с имитацией ретро-аркады «Zeta Invaders» на Пип-бое внутри игры Fallout 4. Задача: уничтожить всех инопланетян, не разрушив дома и не умерев больше трех раз.
Но технологии развивались, и персонаж стал получать больше очков за выполнение заданий на уровне, причем за разные задания давались разные очки для разных параметров. Появились игры, в которых поднять уровень персонажа можно было в рамках «одной» комнаты, получив значительное преимущество за счет бонуса к параметрам. Так возникло первое разделение понятий «уровень персонажа» и «уровень/локация».
Клеткой или ячейкой (cell) также называли уровни-комнаты во времена первых автоматов. Со временем так разработчики и мододелы стали называть изолированные части локаций или небольшие локации, переход между которыми сопровождается загрузкой. Так, в TES V: Skyrim многие дома, подземелья и пещеры являются клетками и даже в редакторе именуются cell.
Клетка/ячейка (cell) Черного Предела в окне ячеек и Рендеринга в Creation Kit.
Фрагмент карты мира Elden Ring. Биомы в ней отличаются не только мобами, но и природой и цветовой гаммой. Более сложная для начала игры область справа — Звездные Пустоши — даже на карте сделана более угрожающей, а уж когда вы в нее зайдете, то до сражения с первым врагом поймете по отвратительным наростам и больным деревьям, что это место опасное.
Локации или подлокации, объединенные общей тематикой, стилем и набором обитателей среди игроков принято называть «биом» (biome). В Elden Ring Междуземье разделено на биом Лимгрейва, Звездных Пустошей, Озерной Лиурнии, Плато Альтус со Столицей и т. д.
Fallout 4. Локация «Даймонд-сити» в регионе Содружество. Сцена — рынок города Даймонд-сити.
Схематическое строение локации на примере проекта по визуализации. Локация в данном случае — вся рабочая область (виртуальный рабочий стол в окне просмотра). Сцены или подлокации — изолированные сцены. Текущая сцена — то, что визуализируется в камере в момент рендеринга, на ней происходит текущее действие в фокусе.
Совокупность всех игровых локаций в пределах игры называется «мир» (world). Отдельные локации и мир игры также могут именоваться «карта» (map).
Изолированные друг от друга локации игромеханически соединяются «порталами» (portal). Обычно их маскируют под двери, лестницы, люки, лифты, кнопки открытия дверей и взаимодействие с сюжетными предметами (привет, картина «Нарисованный мир Ариамиса» Dark Souls PtDE), но иногда портал активируется при подходе игрока — так устроены входы в пещеры Skyrim и Fallout 4, например.
«Вы близки к тому, чтобы переместиться на следующий уровень. Инициировать?»
Так реализовано перемещение между большими изолированными локациями в Bleak Faith: Forsaken. Локации там поистине большие и даже видовые, так что скрытые подгрузки осуществить там было бы сложно.
Работа с дизайном
Ну, допустим, вы делаете сессионную игру, нацеленную на пятиминутный кооператив. Казалось бы, ну какие там претензии на геймдизайн? Но на самом деле, прямые.
Вот, например, Century: Age of Ashes, сессионный шутер с полетами на драконах. Для каждого режима здесь были свои локации, со временем их оптимизировали так, чтобы почти все режимы могли работать на почти всех локациях. Игрок, особенно начинающий, должен сразу видеть, что от него требуется и как этого достичь. Помимо ярких маркеров усилителей, он должен ориентироваться на сцене, понимать, где облететь препятствие, где срезать угол при преследовании, а где это преследование сбросить.
Вот вы летите на драконе с ускорением, и вам критически важно видеть светящиеся маркеры на фоне остальной сцены, а также такие элементы интерфейса, как значки игрока, и препятствия.
Локации и все баффы сделаны и расположены так, чтобы игрок быстро запомнил: зеленые штуки восполняют выносливость, синие — щиты. Разломы с энергией всегда внизу, а гейзеры позволят быстро подняться, восстановив силы.
Думаю, что многие игроки начала двухтысячных до мельчайших деталей вспомнят сцены сессионок CS. В этом тоже заслуга геймдизайнеров.
Кстати, экраны победы в Century — тоже отдельные сцены. И у них есть свои настройки света, рендеринга, анимации. И своя функция: помимо демонстрации победителей, они подкрепляют желание играть и выигрывать своим дизайном.
Игра в открытом и масштабном мире, например, должна сразу продемонстрировать свою красоту и доступность игроку. Вспомните, какие ощущения вызвал первый выход из душного обучающего подземелья Elden Ring на уступ возле часовенки, когда вам впервые открылась картина Лимгрейва и таинственное великое золотое дерево на горизонте. Или аналогичная сцена из начала путешествия Линка в новой The Legends of Zelda, с которой теперь все сравнивают эту сцену?
Впрочем, подобные «открывашки» появились задолго до Зельды: TES IV Oblivion и TES III Morrowind также выпускали игрока из темных трюмов и темниц на свет красивейшей по тем временам графикой. Да и Skyrim не отставал. Ну, а корни уходят к знаменитой сцене из мультфильма «Король Лев» и даже глубже.
Открытый мир должен с первых сцен демонстрировать свою открытость.
Когда начинать работать с локациями? По возможности, сразу после того, как готов дизайн-документ и набраны примеры общего стиля и настроения игры. То есть одновременно с разработкой персонажей, а лучше даже перед. Наберите папку с примерами мест, похожих на то, что вы задумали. Это могут быть как существующие в реальности, так и художественные произведения, включая скриншоты из других игр.
На каждую локацию вам потребуется минимум три своих, разработанных под именно вашу игру, концепт-арта: начальная часть локации, общий вид локации и место ключевого события (например, битвы с боссом или главной головоломки). Эти концепты должны соответствовать общей стилистике игры (фотореализм, полуреализм, стилизация под аниме, мультик, лоу-поли, пиксель-арт и т. п.), выбранному типу геймплея и доступности игрока (в платформере должна учитываться вертикальность и, как ни странно, платформы, в шутере — укрытия и точки обзора) и общей атмосфере, включая цветовую палитру, архитектурный стиль и природные объекты, а также время суток.
Сейчас в помощь дизайнеру и разработчику предварительные макеты и варианты локаций можно сделать в различных генераторах РПГ-карт и нейросетях.
Далее создаются объекты локаций: строения и сооружения, природные объекты (камни, деревья), статуи, элементы декора. Создать придется все — вплоть до кустиков травы и пятен мха. И все это создается сначала отдельными моделями или спрайтами, хоть и в соответствии с концептом и общим планом.
Процесс создания «скетчей» — заготовок для моделей окружения в соответствии с концептами
Отрисованные предметы окружения далее открываются в графическом движке, желательно в том, на котором будет создаваться игра, и собираются вручную. Дизайнер уровня должен посмотреть, как разные части сочетаются друг с другом, и как их лучше располагать, чтобы и композицию соблюсти, и игроку было удобно. Исходя из этого, в модели и спрайты вносятся правки, и так продолжается до тех пор, пока не будут готовы наборы для каждого биома. После чего эти биомы собираются. И тут в зависимости от геймплея и масштабов игры есть два пути: автогенерация и ручная расстановка.
Автогенерация уместна в масштабных играх с большими пространствами и для относительно простых по устройству сцен. Например, в ходу среди пользователей Unreal Engine генераторы природных равнин (леса, степи, луга), гор и генераторы города. Однако сгенерированные локации имеют максимально общий вид, и добавлять платформы, переключатели, подъемники, лут и прочее все равно придется вручную. Как и маркеры персонажей и животных и их траектории, хотя для траекторий тоже существуют скрипты-генераторы.
Ручной дизайн предполагает либо камерность самой игры, что хорошо для триллеров и хорроров, либо малый ее размер. Большую игру тоже возможно сделать вручную, но на это уйдет на порядки больше человекочасов. Впрочем, ключевые сцены и даже участки локаций все равно должны создаваться вручную.
Процедурная генерация объединяет плюсы и минусы обоих подходов и сейчас встречается достаточно часто. Процесс работы с ней следующий: вы создаете необходимые спрайты или модели и ассоциируете с ними маркеры. Далее вы создаете правила расстановки маркеров, например, уровень должен начинаться с портала из предыдущего уровня, и не может (или может) содержать ловушку в первой комнате, а также задаете вероятность появления определенных ивентов (переходов, ответвлений, порталов в другие комнаты, усиленных врагов, ловушек, выпадения предметов повышенной редкости и т. п.).
Еще один большой плюс генераторов — малый вес игры. Но об этом лучше поговорить в другой раз — например, в статье об оптимизации. Как и о том, как хитрое устройство открытого мира обходит ограничение железа. Отдельные локации собираются друг с другом в мир. В зависимости от ваших предпочтений, размеров игры и расчетной мощности железа, на котором будет запускаться ваша игра, мир игры может быть бесшовным и «сшитым».
Мир-мозаика
Исследование «сшитого» мира сопровождается подгрузками между локациями. Таков мир Alice: Madness Returns и Dead Cells — отдельные биомы разделены сюжетными роликами и катсценами. Загрузочные экраны скрывают от пользователя выгрузку предыдущей локации и загрузку новой, но может негативно влиять на погружение. Однако отделение локаций означает, что только одна из них будет одновременно находиться в памяти компьютера, приставки или телефона, что значительно экономит ресурсы.
Бесшовный (seamless) мир означает, что большую часть локаций игрок может посетить без промежуточных загрузок и загрузочных экранов. Мир Skyrim и Elden Ring — бесшовный. Такое устройство мира игры помогает погружению, но требует значительно больше ресурсов и внимания для оптимизации.
В игре Rain World между сценами и подлокациями (ячейками) игрок может перемещаться по специальным трубам (три черточки или знак убежища), а между большими локациями-биомами — с помощью Врат Кармы. Врата Кармы служат не только техническим отделением одной локации от другой (и помощи при загрузке-выгрузке), но и имеют сюжетное обоснование: на каждых воротах обозначен уровень кармы для допуска существ и особые условия (например, дрон гражданина).
Бесшовный мир можно сымитировать. Для этого используют интерактивную подгрузку, не прерывающую игровой процесс. Так, например, в Rain World действие игры происходит в полуразрушенной мегаструктуре, бывшей когда-то городом. Разные части этого города изолированы специальными шлюзами.
Выгрузка старой локации и подгрузка новой происходит в шлюзе, что можно заметить, если открыть карту в этот момент. Игрок при этом не теряет управление и может передвигаться между створками. Нечто похожее есть в No Man«s Sky — выгрузка мира космоса и подгрузка планеты происходит в виде пролета через атмосферу, когда за стеклом иллюминатора вспышки смазывают окружающий мир, но игрок все еще может вращать камерой и нажимать на кнопки.
Промежуточный итог
Какой бы ни была игра, которую предстоит сделать, помните, что работа с локациями — это то, чему придется уделить времени не меньше, чем основной механике. Пускай кто-то скажет, что персонажи соулс-игр плоские и простые, но локации, где вы их встретите, надолго останутся у вас в памяти. Помните, что случаев, когда проект вытащили на своем горбу герои, куда меньше, чем игр, запомнившихся визуалом.
А если вы просто игрок, то при следующем посещении любимой игры просто остановитесь и осмотритесь вокруг. Подумайте, что вас привлекло и как это могло быть сделано. Всего хорошего и не болейте!
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS