Найти тему
learning log

Анализ уровней Doom : Knee-Deep in the Dead

Оглавление

В этой статье я хочу проанализировать первый эпизод Ultimate DOOM Knee-Deep in the Dead (по колено в мертвецах). Попытаюсь определить основные использованные "строительные блоки" и принципы.

Этот эпизод почти полностью (кроме финального уровня) был создан Джоном Ромеро. Действие эпизода происходит в декорациях военной базы (UAC - Union Aerospace Corporation) на Фобосе спутнике Марса, атакованной адскими тварями. В конце Doomguy прыгает в портал, ведущий на Деймос.

Редакторы

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

Ultimate Doom Builder

Заставка UDB. В главных ролях уровень E1M1
Заставка UDB. В главных ролях уровень E1M1

Первое, что находишь - это UDB. Более-менее активно развивается, на словах даже поддерживает Linux (правда у меня падает с ошибкой при попытке открыть карту), написан на C# и жрет память как не в себя, но зато поддерживает все необходимые фишки и является полноценным редактором карт.

Последние версии можно скачать здесь, код можно посмотреть здесь.

Поскольку для Linux редактор работать отказался я поискал еще и нашел SLADE. Написан на С++, отлично работает под Linux. Но под windows в режиме редактора он очень тормозной. А под Linux почему-то не показывает флаги предметов (например флаги, отвечающие за появление предмета на разных уровнях сложности).

Если поискать руководства по созданию уровней для Doom, то Slade используется в основном для просмотра/редактирования содержимого WAD архивов.

-3

Абстрактный дизайн уровней

Сразу следует заметить, что Ромеро в своих уровнях придерживался так называемого "абстрактного дизайна". Т.е. он не ставил перед собой цели создать правдоподобную военную базу на спутнике Марса. Поэтому на хаотично раскиданные боеприпасы, бассейны с кислотой и непонятные секреты внимания не обращаем. Это все декорации, главное чтобы хорошо игралось (в стиле "сюжет для игры так-же важен как и для порно фильма").

Правила Джона Ромеро

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

  • Всегда менять высоту пола, при смене его текстуры
  • Использовать специальные пограничные текстуры между различными сегментами стены и дверей
  • Всегда выравнивать текстуры
  • Сознательно использовать контраст между темными и светлыми зонами, а также между узкими и свободными пространствами
  • Убедиться, что игрок может добраться всюду, куда может посмотреть (возможно перевожу неправильно, но кажется Джон его нарушает несколько раз)
  • Обязательно делать несколько секретов на каждом уровне
  • Делать уровни так, чтобы игрок посещал одну и ту же зону несколько раз, что позволит лучше разобраться в пространстве уровня (Бэктрекинг осознанно?)
  • Создавать запоминаемые ориентиры для облегчения навигации

Монстр в засаде / монстр бежит на звук

Есть еще один важный момент, связанный с тем, как работает ИИ в игре. Если у монстра не выставлен флажок "ambush" (засада) и звук выстрела может до него "добраться" (на пути нет непроходимых препятствий) - то услышавший звук монстр активируется и начинает поиски игрока.

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

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

Паттерны / Шаблоны проектирования

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

Комната с монстрами

Основной шаблон. Есть комната, в ней есть враги. Зачем переусложнять.

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

Ловушка

Ловушка позволяет застать игрока врасплох.

Принцип: Когда игрок встает в заданный сектор / пересекает определенную линию - ловушка срабатывает. Может открыться потайная дверь / опуститься стена, за которой находятся монстры.

В ловушке можно применять какой-либо объект-приманку, который и будет "заманивать" игрока. Но это не обязательно.

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

В последующих эпизодах первого Doom применялись также вариации Ловушки с телепортированием монстров к игроку. Но в первом эпизоде такого нет.

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

Лабиринт

Как известно, разработчики Doom были заядлыми игроками в D&D [ссылка], и даже черпали оттуда часть своего вдохновения. А какое олдскульное D&D обойдется без лабиринтов?

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

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

Узкие коридоры и множество поворотов также позволяет применять в лабиринтах оружие ближнего боя. В doom это бензопила и кастет в режиме берсерка. Ни того ни другого нет в первом эпизоде первого doom, но упомянуть об этом стоит.

Ключи

Одним из новшеств Doom были разноцветные (синяя, красная, желтая) ключ-карты (или черепа на уровнях с "адовым" дизайном). Ключи открывают двери соответствующих цветов.

Таким образом ключи позволяют дизайнеру заблокировать часть уровня.

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

Пара размышлений по поводу ключей:

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

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

Для этого на пути от ключа к двери расставлены ловушки, которые активируются по пути к ключу. Т.е. когда игрок берет ключ - на его обратном пути открываются двери, выпускающие монстров (обозначены сиреневыми прямоугольниками на картинке выше). Бежать назад будет уже не так скучно

Секреты

Секреты - довольно сомнительный, с моей точки зрения, элемент в Doom. Это опциональные секции карты. Их не только можно не посетить при прохождении - их сначала нужно найти.

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

Виды секретов:

1. Фальшивая стена (дверь, выглядящая как стена)

За этой "стеной" находится проход
За этой "стеной" находится проход

2. Секрет, активирующийся переключателем/триггером, который находится в другой области уровня и непонятно что переключает (в случае с триггером об этом и не узнаешь).

Плато опускается когда заходишь в финальную комнату
Плато опускается когда заходишь в финальную комнату

3. Секрет с временным лимитом. После активации нужно еще успеть воспользоваться секретом.

Стена в секретной комнате (секрет в секрете) опускается на небольшое время, когда вбегаешь в комнату с жижей.
Стена в секретной комнате (секрет в секрете) опускается на небольшое время, когда вбегаешь в комнату с жижей.

4. Секреты с прыжком с трамплина

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

5. Секрет "пробеги по лаве"

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

Прыжок с трамплина + пробеги по лаве
Прыжок с трамплина + пробеги по лаве

Итог

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

Если я что-то пропустил - пишите в комментариях

Обзор The Ultimate DOOM можно прочитать здесь