Как стать автором
Обновить

Создание дизайна реиграбельных стелс-уровней для Payday 2

Время на прочтение13 мин
Количество просмотров7.1K
Автор оригинала: Jason Mojica

Создание Murky Station: Payday 2


Payday 2 — это кооперативный шутер от первого лица с элементами RPG, рассчитанный на четырёх человек. Игра посвящена ограблениям банков и краже редких трофеев. Она выпущена 13 августа 2013 года, с того времени к ней появилось 50 DLC и до сих пор выпускаются новые. Payday 2 постоянно находилась в десятке самых популярных игр на Steam. Сегодня я хотел бы рассказать о моём опыте создания дизайна стелс-уровней для Payday 2 перед уходом из Starbreeze в январе 2018 году. Хотя в статье рассматриваются проблемы и решения, относящиеся к дизайну уровней Payday, я рассказываю о них в более широком смысле. Эта статья будет полезна для дизайнеров уровней среднего уровня и джуниоров. Если вы сениор-разработчик, то что-то в этой статье может показаться вам знакомым.

Начну с того, что стелс-механика Payday неидеальна и в некоторых областях даёт сбои, но я хотел бы сосредоточиться на решениях, принятых при создании дизайна карт, особенно карты с ограблением Murky Station. Также я проанализирую то, как мы использовали RNG (рандомизацию), и как применяли её для целей и механик, чтобы сохранить свежесть и реиграбельность уровня. Созданием этой карты занимались два человека в течение шести недель. Мой партнёр взял на себя роль строителя уровня/художника по окружениям, а я был дизайнером/создателем скриптов. Мы вдвоём выбрали масштаб проекта на основании потребностей нашей студии. Идея заключалась в создании сценария небольшого ограбления на 10-15 минут с высокой долей реиграбельности. Нам предстоит многое изучить, поэтому давайте приступим!



Начнём с самого начала


Прежде чем создавать эскизы или строить схемы, мы определились с тем, хотим ли мы создать «громкий уровень» (только для боёв), «стелс-уровень» (с избеганием боёв), или карту в смешанном стиле. Из-за нехватки времени мы решили придерживаться только стелса. Благодаря тому, что мы сделали этот выбор на ранних этапах, мы смогли создать более качественные варианты движения игроков и сосредоточить усилия на балансировке патрулей и расположении целей. Мы решили, что темой уровня будет небольшое вагонное депо, управляемое группой торгующих тяжёлым вооружением наёмников. Основная задача заключается в проникновении в депо и краже ЭМИ-бомбы. Создание простой и интуитивно понятной цели важно в многопользовательских играх, где игроки могут входить и выходить из игрового процесса в любой момент времени.

Мы решили нацелиться на 10-15 минут геймплея и разбить нашу основную цель на несколько подзадач, на выполнение каждой потребуется около двух минут (мы основывались на нашем хорошем знании игрового процесса Payday 2). Стоит заметить, что эта оценка времени должна меняться после нескольких прохождения уровня игроком. Эти значения обычно снижаются на треть, а в некоторых случаях и вдвое. Учитывая нашу основную цель, мы могли создать простую схему того, как будет протекать ограбление, и начали думать о возможных динамических и RNG-элементах, которые можно использовать для создания реиграбельного геймплея.


(Это пример скрипта из нашего редактора; каждая сущность имеет свою собственную функцию)

Тестировать идеи до того, как напишем скрипт? Это как?


Так как для 90% уровней Payday скрипты пишутся вручную, важно не тратить время на создание неработающих вещей. Тестирование целей и сложных RNG-элементов должно быть быстрым и эффективным. Последнее, чего бы нам хотелось — создать систему целиком и понять, что она не работает. БОльшую часть времени для тестирования наших идей нам не нужны были анимации и даже модели. Поэтому на ранних этапах нам было достаточно просто отладочного текста. Вы можете задаться вопросом — «что, если у меня нет текста отладки или я не умею писать скрипты?» При игровом тестировании Payday 2, мы часто подготавливали простую заготовку, а затем… притворялись, что выполняем задания.

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

Пусть художники хихикают, а проходящие мимо люди из других отделов останавливаются и недоумевают, не видя толп врагов. Это на самом деле работает: часто можно направить уровень в правильном направлении и избежать слишком больших вложений времени в неправильные цели. Разумеется, я понимаю, что такой подход не будет работать для всех студий или ситуаций, но пока не попробуешь, не узнаешь.



Создание схемы нашей песочницы


После того, как мы притворились, что пробежали по целям и привыкли к нашей заготовке, давайте поговорим о схеме, созданной нами для Murky Station. Мы выбрали то, что я могу назвать «методом луковицы». Нужно создать многослойные кольца, дающие ощущение движения к центру (или к цели). По сути, мы используем внешний слой как место старта игрока, а каждая подзадача располагается внутри следующего слоя, пока игрок не достигнет основной цели (в так называемом «центре»). Такой подход очень полезен при работе над уровнями типа песочницы, особенно когда игрок может двинуться практически в любое место.

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

Можно видеть, что внешний слой луковицы — это место спауна игрока (показано зелёным) на надземном переходе, где можно полностью осмотреть депо. Отсюда игрок может изучить маршруты патрулей, расположение вагонов, а возможно и места целей. Кроме того, переход может использовать игрок со снайперской винтовкой для пометки охранников в разных коридорах, помогая передавать точную информацию о позициях охраны игрокам на уровне земли.


Следующий слой — это проникновение в депо через забор по периметру. Забор здесь нужен для того, чтобы направить игрока и показать ему наглядные границы «безопасной зоны» (в которой нет патрулирующих охранников). Следующий слой — это обыск вагонов, чтобы обнаружить, где спрятана основная цель, после чего выполняется прорыв через двери хранилища внутри сами поездов. Такими слоями луковицы необходимо правильно управлять, чтобы передать игроку необходимые ощущения. Если сделать слишком много слоёв, то можно запутать игрока или он может забыть, что делает, если слишком мало — то задача покажется ему чересчур простой и он не получит ощущения завершённости.

Самое важное — мобильность игрока!


Мобильность — это ключевой фактор, позволяющий игрокам выразить себя и принимать оптимальные решения при прохождении уровня. Я считал, что в случае Murky Station очень важно обеспечить использования различных стилей игры — от медленной и методичной до быстрой и грязной. Я совершенно не хотел заставлять игроков играть жёстко заданным способом и создавать предсказуемые и линейные маршруты прохождения. Чтобы сделать это, я потратил первую неделю разработки уровня на прототипирование и тестирование различных идей дизайна, которые могли бы максимально увеличить количество маршрутов и вариантов выбора.


Упрощённый вид сверху маршрутов в зоне вагонного депо

Стало очевидным, что мы обязательно должны позволить игрокам проходить сквозь и под поездами, потому что они занимают бОльшую часть пространства уровня. К сожалению, старые модели и графика поездов не были рассчитаны на прохождение под ними, но благодаря царящей на уровне ночи все подробности оказываются скрыты. Над проектом работали только мы вдвоём, поэтому я быстро изучил основы Maya и исправил нижнюю часть поездов, убрав коллизии и отредактировав модели для улучшения читаемости.


Следующая сложность была такой — необходимо научить игрока, что он может прятаться под поездами и находиться там в безопасности. До этого момента игроки в Payday никогда раньше не имели возможности забираться под поезда, поэтому нам нужно было привлечь к этому внимание, а также показать им, что это безопасное место. Сделав эти места тёмными и скрытыми, мы смогли создать иллюзию безопасности, но также и усложнили процесс их поиска для игроков.

Чтобы решить эту проблему, мы добавили жёлтые полосы и тусклое красное освещение под колёсами, привлекающее внимание игрока. Сочетание этих элементов затем использовалось в других частях уровня как визуальный «словарь», позволяющий показать игрокам то, что им необходимо исследовать.


Ещё одним способом добавления новых маршрутов на уровне было создание вентиляционной системы в нижних туннелях. Уровень предназначен для стелса, поэтому мы создали более компактные пространства. Вентиляционные ходы позволяют игрокам безопасно наблюдать за патрулями, искать цели и перемещать добычу. Для прототипирования таких ходов я построил из модулей вентиляционную систему, позволявшую выполнять быстрое строительство и тестирование. Довольно забавно, что в первой итерации ходов они оказались слишком маленькими, поэтому тела игроков проходили сквозь пол. Мне удалось переработать модули и в результате мы выбрали высоту, достаточную для перемещения стоя, а не только ползком. Здесь мы снова использовали жёлтую полосу, указывающую на вход в вентиляцию на стене.

Модификация поездов и ходов — это один из факторов. повлиявших на успех карты; он придал новым игрокам уверенности при исследовании депо и нижних клаустрофобных туннелей. Итак, изучив различные способы движения и предоставив игрокам больше вариантов выбора, мы можем перейти к построению системы рандомизации.




Рандомизация целей для повышения реиграбельности


RNG — одна из фундаментальных основ Payday, поэтому каждое принимаемое нами решение необходимо было рассматривать сквозь призму RNG. Мы были совершенно уверены, что рандомизация должна быть значимой, а не просто использоваться ради самой себя. Важно задаться следующими вопросами: стоит ли менять расположение каждой кружки на уровне? Получили ли мы что-то, поменяв местами все вагоны и здания? Было ли создание третьей точки входа ценным для уровня? Возможно, однажды мы полностью рандомизируем каждый объект в здании, вплоть до малейшей кружки, но, по-моему, в играх наподобие Payday такие аспекты не оправдывают себя и часто разрушают запланированный дизайн.

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

Так как же мы добавили RNG в Murky Station? Проанализировав свои цели, мы начали выбирать те варианты RNG, которые мы могли успеть реализовать за срок в один месяц. Кроме того, я расставил для них свои собственные приоритеты (от низкого до высокого).

  • Проникновение в депо
    • рандомизация точек проникновения (низкий)
  • Нахождение поезда с бомбой
    • рандомизация конфигураций вагонов (высокий)
  • Проникновение в поезд
    • рандомизация панели для смены сторон (низкий/средний)
  • Вскрытие хранилища
    • 4 различчных типов дверей/ключей хранилищ (высокий)
  • Поиск ключей хранилищ
    • Карта поддерживает до 40 точек, в которых можно спрятать ключи (средний/высокий)
  • Кража частей ЭМИ-бомбы
    • 2 точки побега, для каждого прохождения выбирается одна (средний)

В основном я сосредоточил усилия на рандомизации конфигураций поездов, дверей хранилищ и расположения ключей. Эти цели были критически влияли на способ перемещения игрока по основному пространству и на то, как он будет вести себя в одной и той же зоне при различных прохождениях. Чтобы достичь этих целей, я разбил свои подзадачи на удобоваримые точки интереса и разделил их сделанные самостоятельно заготовки (см. рисунок ниже). Благодаря этому можно было написать скрипт для одной заготовки и телепортировать его в любое количество точек. Такой подход повысил управляемость написания скриптов рандомизации и снизил количество багов, которые бы возникали при построении всего вручную.

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




Разобравшись с дверями хранилищ и ключами, можно было приступить к планированию процесса размещения их на уровне. Перед их размещением необходимо убедиться, что каждое место удовлетворяет определённым условиям. Основная цель заключается в создании сложности для игрока и мотивации быть творческим при работе с окружающим пространством. Благодаря тому, что я создал схему со множеством интересных узких мест и путей, было достаточно очевидно, где их можно расположить. Сбор ключей — это одна из самых рандомизированных целей в Murky Station — иногда все ключи находятся в разных уголках карты, а иногда все лежат рядом. Позже мы подчистили скрипт, чтобы избежать слишком сильных точек или ужасных вероятностей RNG, но в целом эта система стала огромным успехом уровня.

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

Вот, как выглядит верхнее депо, и как распределены ключи. В нижних туннелях расположено такое же количество ключей.


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

В результате у нас получилось примерно 600 конфигураций вагонов, 2000 комбинаций дверей хранилищ и 256 конфигураций подзадач. Кроме того, при каждом прохождении случайным образом выбирались один или два выхода, что коренным образом меняло принимаемые игроками решения. Также это влияло на то, как они будут двигаться по уровню и пользоваться преимуществами широкого выбора вариантов движения.

Поверх этого мы использовали нелинейные цели: по сути, игроки могут выполнять несколько целей одновременно, а в некоторых случаях и в другом порядке. На уровне Murky Station игроки одновременно могут искать ключи, обыскивать вагоны, помечать охранников, смотря на них сверху, и собирать дополнительные трофеи. Это позволяет четырём игрокам удобно разделиться, чтобы покрывать больше пространства и играть независимо друг от друга. В хорошо скоординированной команде два игрока могут заниматься поиском в вагонах ЭМИ-бомбы, в то время как другие ищут ключи хранилищ. Я считаю, что очень важно дать возможность каждому игроку внести свой вклад в общую цель.

Примечание: вы можете задаться вопросом — как при всей этой рандомизации отдел QA мог выполнять тестирование. Короткий ответ: ему и не пришлось. Мы сами должны были эффективно строить уровень, чтобы гарантировать 90% его надёжности, а затем отлавливать как можно больше граничных случаев. В команде разработчиков Payday авангардом защиты отдела QA является создающий уровень дизайнер; тщательное тестирование собственной работы — это его задача! Благодаря способу построения описанных выше систем в каждом примере достаточно было поддерживать всего одну заготовку. Это дало нам возможность экспериментировать при настройке уровня, ведь мы знали, насколько мала вероятность, что она повлияет на наши заготовки. Поэтому благодаря умному построению уровня мы смогли снизить количество аспектов, которые нужно тестировать QA, и ускорили разработку.

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


Патрули охраны и RNG


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

Так как мы не хотели, чтобы RNG патрулей вышел из под контроля, нам нужно было внимательно отнестись к их перемещениям в пространстве. Для этого требуется внимательность и множественные итерации. Сдвинь баланс слишком далеко в одном направлении, и получишь пустые области без охраны, сдвинься слишком далеко в другом — охраны станет слишком много, а возможность маневрирования пропадёт. Меньше всего нам нужна вероятность цепной реакции на смерть. Она возникает, когда вы убиваете одного охранника, после чего тело сразу замечает другой, находящийся в десяти метрах… что вынуждает вас убить и этого охранника, которого тотчас замечает следующий, и так далее. В Payday 2 у игроков есть предел: они могут убить не больше четырёх охранников, после чего включается тревога (на всех уровнях). На уровнях нам активно приходилось управлять количеством пересечений маршрутов и частотой встречи охранников.

В первом тестовом прогоне Murky Station у меня получилось хорошее покрытие уровня охранниками, но возник недостаток: в некоторых частях случайным образом могло скопиться до восьми охранников. После игрового тестирования и изменения дизайна я решил разбить патрули на небольшие циклы и добавить больше точек. Это увеличило покрытие карты охраной, а патрули стали более согласованными. Также это снизило максимальные скопления примерно до четырёх охранников и значительно снизило количество вероятных цепных реакций на смерть.

Места патрулей в первом прогоне:


Места патрулей во втором прогоне (новые маршруты обеспечивают то же покрытие уровня и уменьшают вероятность скоплений):


Новый взгляд на старую механику


На большинстве наших стелс-уровней используются случайные статичные камеры позволяющие игрокам применять свои навыки избегания или саботажа. У игроков есть множество механик для обращения с камерами, но при обсуждении вариантов для Murky Station мы наткнулись на кирпичную стену. Из-за «коридорного» стиля карты и окружающих структур у нас осталось очень мало вариантов размещения камер. Из-за этого камеры больше не изменяли уровень в положительную сторону. Также мы обнаружили их несогласованность с дизайном уровня, потому что игрок должен искать определённый вагон. Если на него будут направлены камеры. то игрок слишком быстро сможет найти его, что отрицательно скажется на сложности поисков.


Как же нам справиться с этими проблемами? Мы не могли отказаться от камер, поэтому приступили к мозговому штурму и поиску ресурсов, которые можно использовать. Важно было сохранить нетронутой основной функционал камер и продолжить движение к фундаментальной основе уровней — рандомизации. Мы нашли созданную для одного из предыдущих уровней модель дрона и начали прототипировать новые идеи. Полученный в результате дизайн обеспечивал необходимое нам покрытие, а также создавал перед игроками новые сложности.



Все поезда могут спаунить до двух дронов, каждый из которых летает по периметру поезда и сканирует пространство на наличие тел и игроков. На всём уровне случайным образом каждый раз активизируются для выполнения сканирования три-четыре дрона. Цикл занимает примерно 30 секунд, после чего они возвращаются в свои поезда и деактивируются. Цикл продолжается таким образом через каждые несколько минут, пока уровень не будет пройден.

На высоких уровнях сложности спаунится большее количество дронов и они становятся неуничтожимыми.

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

(GIF ускорен примерно в восемь раз; сложность Hardest позволяет показать маршруты и перемещение дронов)


Мысли в заключение


Над уровнем Murky Station было очень интересно работать, и даже сейчас я иногда играю на нём. Если проанализировать цели игроков и их взаимное влияние в пространстве кооперативного прохождения, вы начнёте видеть крупную картину и сможете понять, как хорошо спланированный уровень с управляемыми элементами RNG может оставаться свежим и реиграбельным. Я нахожу очень интересными эксперименты с разными видами RNG, особенно когда они сочетаются с дизайном уровня. Надеюсь, моя статья дала вам представление о том, как мы строим уровни с RNG и почему мы выбрали его в качестве основных столпов дизайна.

Благодарю за чтение, вот моя контактная информация:

Twitter: @generalvivi

Email: generalvivi [at] gmail. com

Веб-сайт: www.generalvivi.com

Кроме того, у меня есть спидран (1 минута) уровня, чтобы вы могли оценить его, а также прохождение на сложности Hardest (10 минут) от одного из про-игроков сообщества.

Самое быстрое прохождение, 2018 год (осторожно, громкий звук)



Десятиминутное видео геймплея, демонстрирующее большую вариативность ограбления.

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+12
Комментарии2

Публикации

Истории

Работа

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн