Здравствуйте, уважаемые Дамы и Господа!
Есть у меня небольшое «хобби» - зарабатывать достижения в любимых играх. И один из таких случаев я посчитал достаточно интересным, чтобы поведать о нем Вам.
Достижения - отличный инструмент по манипуляции игроком и в этом нет ничего плохого (при условии адекватности разработчиков). Именно с помощью трофеев можно убедить игрока взглянуть на игру под разными углами. Например, заставить проникнуть на военную базу и выкрасть с нее данные так, чтобы об этом и не догадались вовсе, или же вооружившись десятками пушек истребить на этой же самой базе любые признаки жизни. И это уже два совершенно разных игровых опыта и если не сделать вышеописанные варианты в виде достижений, то большинство игроков даже при повторном прохождении поступали бы точно так же, как и в прошлый раз и вряд ли бы познакомились с обратной стороной монеты.
Я думаю, примерно такими же взглядами руководствовалась id Software – побудить игроков познакомиться со всем внедренным в Doom функционалом. Итак, встречайте виновника сегодняшнего торжества:
Небольшой экскурс в историю: спрос на редакторы карт в играх id Software появился еще со времен Wolfenstein 3D (который, кстати, многие ошибочно считают первой FPS игрой), тогда энтузиасты, поковырявшись в коде игры, нашли способы делать моды, а после и написали свой полноценный редактор карт. Все это подкреплялось огромным ажиотажем со стороны игрового сообщества, так что в следующем своем проекте под названием Doom разработчики решили упростить жизнь мододелам, отделив файлы движка от игровых ресурсов, которые теперь помещались в файл с особым расширением .wad (Where All the Data), что обеспечивало более простой доступ к ним.
Интерфейс одного из редакторов карт Wolfenstein 3D
Думаю, не ошибусь, если скажу, что именно Doom и Doom 2 1993 и 1994 годов выпуска соответственно, являются рекордсменами по количеству пользовательского контента среди игр id Software, так что не удивительно, что в современном ремейке разработчики решили добавить со старта свой редактор карт, что для жанра FPS очень большая редкость.
А теперь давайте поподробней поговорим о самом редакторе, называется он SnapMap.
Первое, что нас встречает при запуске – это режим чертежа, в котором мы конструируем общие очертания нашей карты из заранее заготовленных блоков, представляющих собой комнаты и коридоры. Т.е. постностью с нуля свою карту создать, к сожалению, нельзя.
А вот теперь можно заняться и демонами, в местном бестиарии можно найти всех противников из режима кампании, за исключением боссов. Врагов можно разместить двумя способами: каждого поодиночке перетаскивать на карту или же посредством специальной функции. Поговорим подробно о каждом из этих вариантов.
Если добавлять демонов на карту по одному, то можно каждого из них детально настроить по целому вороху параметров, вплоть до модели поведения, например, заставить одного демона охотиться на игрока по всей карте, второго – патрулировать этаж, третьего – сидеть в засаде.
Если же использовать функцию, то число настраиваемых параметров резко сокращается, но добавляется возможность создать так называемые «столкновения», к ним относятся нападение врагов волнами или их спавн в течение определенного времени и т.д.
К сожалению, число размещаемых объектов строго ограничено размерами памяти, и поэтому приходится балансировать между двумя этими вариантами, поскольку функция считается за один объект, но может создать и сотню демонов.
Шутки от разработчиков могут скрасить рабочий процесс
Переходим к самому интересному – написанию скриптов для нашего уровня. В SnapMap для этих целей была разработана специальная визуальная система, в которой необходимо выстраивать связи между блоками, представляющими собой всевозможные функции. Несмотря на то, что количество этих функция составляет всего несколько десятков, с их помощью, при креативном подходе, можно сделать множество интересных нестандартных вещей. Мне попадались карты, которые пытались совместить классический геймпей Doom с симулятором фермы или Tower Defence`ом. Стоит отдельно упомянуть, что такие жизненно необходимо вещи при программировании как переменные, условные операторы, циклы, рандомизаторы и таймеры здесь присутствуют, именно за счет них в основном и достигается та гибкость, о которой я говорил выше. Когда мы строим связь между блоками, мы можем передавать входные и выходные данные, если того требует используемая функция. Выглядит это все как-то так:
Порядок нужен лишь глупцу, гений властвует над хаосом. – Альберт Эйнштейн
Если кому-то показалось, что здесь все сложно, то спешу вас обрадовать - это не так. На мой взгляд, это одна из простейших систем написания скриптов, я бы даже посоветовал познакомиться с ней тем, кто всегда хотел попробовать что такое программирование, но так и не решился из-за боязни сложности освоения и больших затрат времени. В SnapMap можно разобраться буквально за пару часов, специально для этого здесь имеются обучающие сценарии, которые проведут вас по всем основным функциям редактора и научат писать базовые, наиболее распространённые скрипты. А после обучения, для закрепления навыков, можно зайти в режим головоломок, где Вам предложат уровень с уже заготовленными, но в определенном месте сломанными скриптами, которые будет необходимо исправить (все же знают, что искать баги это так весело!). Вдобавок ко всему вышеперечисленному есть возможность открыть любую карту, которую Вы найдете и посмотреть, как там все было сделано.
Что отдельно хотелось бы выделить – так это то, что редактор карт имеет абсолютно одинаковый функционал как на PC, так и на PS4 и XOne (к сожалению, до Switch SnapMap не добрался). Я не могу даже вспомнить ни одного подобного случая, так что, возможно, id Software стали первооткрывателями на данном поприще. К слову я работал на PS4 и при управлении с геймпада никаких проблем не было, все сделано весьма удобно.
На этом, пожалуй, все, про SnapMap, на самом деле, можно рассказывать очень долго, поэтому я ограничусь только тем, что посчитал самым интересным и важным, остальное Вы без труда сможете найти сами.
В заключение добавлю видео прохождения карты, которую создал, она сделана в классической FPS механике, без каких-либо откровений, но мне все равно было бы интересно услышать Ваше мнение о проделанной работе в комментариях. На всю работу с момента первого запуска и прохождения обучения до завершения работы ушло около 10 часов, как я и говорил, особо много времени не требуется, в масштабах разработки игр.
Кстати, кому будет интересно, найти карту можно по следующему идентификатору: WL954LMW. На ней имеется три простеньких секрета, не показанных в ролике, специально для тех, кто любит их искать.
На этом все, спасибо за внимание! Если у Вас есть вопросы, не стесняйтесь задавать их в комментариях.
Ах да, чуть не забыл самое главное :