Картостроение Doom
Захотелось написать эту статью чтобы заинтересовать кого-нибудь картостроением в Doom, напишу как это делается и поделюсь своим опытом. Местами будет мой субъективный взгляд на некоторые вещи, но ничто не мешает желающим этим заняться выработать свой подход. Постараюсь сократить до самой базы, необходимой для успешной работы в редакторе Doom Builder 2. А ещё разбавлю статью скринами своих работ.
Подготовка
Существуют современные форматы карт для порта GzDoom, но если вы только начинаете, то разнообразие фич вас только запутает. Не имея опыта сложно планировать 3д полы, полиобъекты, водные секции и цветное освещение, а не пользуясь ими нет смысла ограничивать игроков выбором порта для игры.
К тому же, из ограничений рождается настоящее творчество. Поэтому Boom это то что надо для начинающего маппера. Минимум фич (они полезные как ветер и прозрачность например) и они не то чтобы меняют ваш подход к созданию карт, и работать вад будет везде.
Количество карт
Для новичка достижение создать одну карту, а делать сразу много? Не стоит сразу возлагать на себя такую ответственность, но проговорить этот момент стоит, как по мне он довольно важен для понимания с какой игрой мы вообще работаем.
Страдаете ли вы перфекционизмом? Какая у вас самооценка? От этого будет зависеть сделаете ли вы вад из 32 карт, из 15-18, из 7, или будете делать по одной крепко задизайненой карте.
Почему именно такие числа? Дело в том, что в оригинальном Doom 2 (основа почти всех вадов) существуют ограничения на уровне кода. Секретные уровни и экраны с текстом сюжета. Если вы хотите чтобы ваш вад работал на чем угодно, на всех сорс портах, в том числе приближенных к ванилле, то вам придется считаться с этими ограничениями. Для такого подойдет формат карт Boom. Оригинальный формат не дружит с большим количеством объектов, поэтому лучше его не трогать. Правда есть и так называемый limit removing. Но если вы хотите оригинальный формат, то имейте ввиду что у вас будет ограничение на размер карт.
Стандартный вад, он же мегавад, вмещает 32 карты, 30 обычных и 2 секретные, переход на которые находится на 15 уровне. Сделать такой вад в одиночку требует невероятного планирования и распределения ресурсов. Если вам удастся, то ваш вад точно не останется без внимания!
15-18 карт. Если вы решили себя проявить, но так, наполшишечки, то половина вада это то к чему можно постремиться. Можно решить для себя будет ли 15 последней картой, или вы хотите создать секретные и закончить после них. Вас ничего не ограничивает кроме вас самих.
7 карт. Самый компромиссный вариант. 7, потому что после 6 карты в Doom 2 зашит экран с текстом, на котором можно написать что-нибудь для игрока перед финалом. На самом деле вкусовщина, здесь так же можно выбрать любое самоограничение, не говоря уже о том, что в GzDoom можно написать код и сделать текст хоть после каждого уровня. Но это к сожалению не будет работать на сорс портах, приближенных к ванилле.
1 карта. Если вам норм делать вады из 1 карты, то почему бы нет? Хотя мне часто не охота скачивать и проходить такие даже с хорошими отзывами, каюсь. Но это я такой, не знаю всей картины, но у одиночных карт тоже есть своя аудитория. Лично я бы посоветовал компилировать свои карты в небольшие вады, если тематика похожа то выйдет хорошо и такой вад будет выглядеть солидней. Но как вам больше нравится.
Текстуры
Вот мы определились сколько работы вам достанется (1 карта). Теперь пора придумывать тематику для вашего вада.
В оригинальном Doom 2 есть стандартные наборы текстур. База, компьютеры, металл - для футуристичного научного сеттинга. Кирпич, камень, улица (outdoors) - для городских или мистических локаций. Ад, мрамор, дерево - текстуры для адских локаций.
Всего 3 сеттинга. Не густо, но они делятся на темы (дерево и мрамор, офисы и металл) и по вашей воле все могут перетекать друг в друга, поэтому места для фантазии на самом деле полно.
Можно добавить свои текстуры через файловый редактор Slade. Там есть нюансы, надо поставить флаги и пропатчить список текстур. Можно найти инструкцию если есть желание создать карты в совсем отличном сеттинге. Я так добавил зимние тектуры для своего вада, вытащив их их Whitemare, не все, а только те что я бы стал использовать. Но как мне кажется для начала это лишнее. Предлагаю ограничиться стандартными, поверьте, дефицита идей у вас не появится.
Начинаем
У вас скачан сорс порт, например GzDoom или Zandronum, скачан Doom Builder 2 (в GzDoom Builder вы потеряетесь я вам гарантирую) и есть Doom2 .wad откуда бы он у вас не взялся. Сперва необходимо зайти в настройки Doom Builder'а.
Tools -> Game Configurations -> выбран Boom или любой другой формат который вам нужен. Resourses это ссылка на ваш Doom2 .wad, откуда редактор будет брать текстуры для визуала при работе. Testing это ссылка на exe вашего порта, а так же сложность, лучше выбрать Ultra Violence, чтобы работать с прицелом на максимальную сложность в вашем ваде.
File -> New Map. Выбираем формат карты, а так же ее номер. В Doom 2 он выглядит так - MAP01, MAP14, MAP31. Будьте внимательны когда даете номер карте. Я так однажды неправильно указал номер и стер день работы, заметив это только когда бэкапить было уже поздно. Благо карта была маленькой и я не заморачивался над ней. Но всякое может случиться.
Теперь мы можем рисовать. У нас для этого есть Vertices mode, Linedefs mode и Sectors mode. А так же Brightness для контроля яркости, Make sectors для создания отдельных секторов из ваших зигзагов, и Things mode для расставления объектов. Понять их все и привыкнуть довольно просто. Это одна из причин почему мы выбрали Doom Builder 2, а не GzDoom Builder. Необходимый и понятный минимум.
Мы можем поставить первого игрока с помощью things mode. Обычно я ставлю игрока на нулевую координату, но это у меня бзик такой. Создав вкруг него нашу первую коробку, мы можем, в зависимости от инструмента, редактировать данные сектора или линии. Так же можно перейти в режим от первого лица, нажав W, и перемещаться на смещенные вправо привычные WASD -> ESDF. Режим интуитивно понятен и вы будете очень много времени проводить в нем. Особенно удобно в нем менять высоту секторов и текстурировать пространство. Когда привыкнете, стоит посмотреть горячие клавиши в Tools -> Preferences для большего удобства.
В свойствах сектора мы увидим текстуру пола и потолка. Ниже увидим яркость. Не делайте уровень слишком темным, не бойтесь делать яркость 255 для улицы и от нее постепенно шагать в темные участки. Темнота выглядит по разному на разных сорс портах и может испортить впечатление.
Эффект сектора - там все понятно. Или это секрет, или там мерцает свет, или там игрок получает урон. Boom позволяет выбрать несколько эффектов во второй вкладке, но это редкая необходимость и я бы не полагался на генератор для банальных свойств и максимально использовал бы стандартные. Однако Boom'овские ветер и скольжение требуют проставления галочек в этой вкладке, стоит это учесть если захотите это сделать, иначе работать как надо сектор откажется.
Свойство линии или linedef - уже побольше. Галочки интуитивно понятны. Будет ли линия блокировать игрока, монстров или звук, откуда будет начинаться текстура, будет ли показываться линия на карте. Блокировка звука важна, чтобы монстры не сбегались за вами со всего уровня, а поступали по мере столкновения. Между игроком и монстром необходимо 2 линии с BlockSound, чтобы тот не реагировал на выстрел. На визуальный контакт это не влияет и при встрече монстр проснется как обычно. Бывает приходится нарезать лабиринт как мыло для АСМР, чтобы все засады работали.
Вкладка текстур в свойствах линии. Здесь если ваша линия это стена, средняя передняя текстура это ваша... текстура. Если линия промежуточная, средняя текстура не будет зациклена вертикально и будет висеть в воздухе куда вы её переместите. Но выбирать и настраивать нужно с обеих сторон, чтобы она была видна с обеих. Есть передняя и задняя сторона у линии, поэтому во вкладке 2 ряда текстур. В обычном режиме на линиях виден усик, показывающий переднюю сторону. Когда создаете перепад высот, старайтесь чтобы усики всегда смотрели в одну сторону, сторону спуска, чтобы было удобно текстурировать все ступеньки разом.
У линий так же есть эффекты. Это важно для дверей и переключателей. Список огромный и генератором Boom'а можно почти не пользоваться. Стоит обсудить сокращения. Вот эти - SR, WR, S1, G1... S это Switch, обычный переключатель. W это Walk, требует чтобы центр игрока пересек линию. G это Gun - выстрел по стене. D это Door, уникальный параметр двери. R это Repeatable, повторяемое нажатие, а 1 это одноразовое.
Но для чего они? Для активации всего происходящего. Двери D не требуют Tag, так как подразумевают сектор позади линии. А вот все остальные используют Tag для отсылки к секторам. Все просто - "SR опустить лифт до следующего/нижайшего пола тэг 1" опускает сектор с тэгом 1 на короткое время. "W1 открыть дверь и оставить тэг 5" поднимает сектор с тэгом 5 как дверь и освобождает монстров за ней. Разнообразие большое: двери, механизмы, ловушки.
Когда вы уже достаточно нарисовались и чувствуете что пора, можно расставить оружие, патроны и монстров. Тут по полной просыпается ваш гейм- и левелдизайнер. Опыт в игре в оригиналы и множество пользовательских вадов тут не помешает. Но главное чтобы нравилось вам. Достигать вершин геймдизайна и выжимать из боевки всё что можно вас никто кроме вас не заставит. Главное чтобы игра приносила удовольствие. Получится ли у вас атмосферное приключение или слоттер-порваторий зависит от ваших вкусов и желания. Главное не забудьте поставить игроков и сделать выход.
Это всё что вам необходимо
Вот вы начали, а в голову ничего не идет... И вы спросите "как же маппить красиво и со смыслом?".
По визуальной части
Есть правила дизайна Ромеро, можно взять их на вооружение: придерживаться ограниченного набора текстур, разделять разные стены короткими текстурами разделителями.
Некоторые авторы создают вокруг источника света градиент из секторов, имитируя динамическое освещение, это мой любимый приём.
Иногда авторам обычные текстуры кажутся скучными и они создают зацикленные сложные ниши чтобы разнообразить стены. Но это уже совсем для профессионалов которые знают что делают. А еще игрок может за эти ниши запинаться, это тоже стоит учитывать.
Можно, нет, надо использовать висты. Часть уровня способна вызвать интерес, если показать ее через окошко или забор. Там может лежать что-то важное, а может просто красивый вид.
Есть направление Doomcute, когда из секторов создают быт, например компьютер с клавиатурой и мышкой, мебель, умывальники. Но я бы не советовал слишком закапываться в это, можно провести много времени на одном месте и сил на важные вещи может не хватить.
По геймплейной
Всегда подойдет постепенное наращивание сложности с её небольшим откатом чтобы не утомлять игрока постоянной стрельбой. Это подойдет как для развития нескольких карт, так и в процессе прохождения одной сложность может нарастать, а потом слегка сбрасываться. Можно разок бросить на игрока с одним дробовиком барона ада чтобы создать сложность, но перебарщивать с подобным не стоит, иначе это начнет вызывать только фрустрацию. Чем больше монстров вы добавляете, тем больше у игрока должно быть средств для их выпиливания.
Моя проблема, и думаю часто будет встречаться у вас. Это секреты. Вы знаете где они находятся, поэтому вам кажется что они очевидны. И вы расчитываете прохождение с ними. Но игрок, впервые попавший на ваш уровень, не знает где секреты и не сразу найдет их. Особенно если вы скрыли линии секрета с миникарты.
Поэтому не стоит прятать очень важные вещи в секреты, карта должна проходиться без них. Если вы хотите спрятать туда например плазмаган, то не стоит расчитывать на прохождение с ним и сыпать патроны для него. Иначе для новичков карта покажется сложной из-за дефицита нужных патронов и толп монстров, а для знающих станет наоборот слишком легко. Он должен быть не более чем опциональным оружием для скрашивания событий.
Иногда уровни...
снятся. Так долго играл в Дум, что он начал сниться. И некоторые особо яркие идеи не улетучиваются с пробуждением. Это отличная возможность начеркать черновик. А потом воссоздать локации и посмотреть, действительно ли они такие же интересные как были во сне? Часто бывает что нет, обычно или такое себе. Но это неплохой способ наполнять свой вад знаковыми лично для вас местами.
Правда если компилировать целые уровни чисто из снов, они получаются очень хаотичными. Прямо как сны. В таких неплохо ещё добавить бэктрекинг, посещение уже пройденных мест, от блужданий эффект сна только усилится!
Но всё на одном наваждении не построишь... Поэтому необходим план. Сюжет. Пусть он будет в голове или на бумаге, а в редакторе пусть творится нечто, что его расскажет без слов. Для этого полно художественных приёмов, которые я использовал на скринах выше. Если вы опытный геймер, может вы вспомните что вам нравится в играх и добавите это в свои карты.
На этом всё
Надеюсь вам поможет эта статья, если вас заинтересовало, и вы раскроете в себе крутого картостроителя.
Не умею прощаться, поэтому вот вам ещё скринов из моего вада.
Я его к сожалению не скоро опубликую, слишком замахнулся на количество карт и он очень дырявый, ни один эпизод не доделан. Да чего уж там, начат то он был в 2017... Будет вам урок, знайте меру.