Логотип igrozor

Система естественных движений в Dying Light

Мачей Биньковский, ведущий гейм-дизайнер Dying Light. Бартош Кулон, ведущий программист игры в Dying Light. Пол Милевский, PR-менеджер и координатор отдела маркетинга в Techland.



Студия?


Techland, основана в 1991. Компания начала свою работу с продаж программного обеспечения для перевода и распространения западных игра на польский рынок. Благодаря студии появились на свет такие франшизы как Call of Cuarez, Dead Island и Dying Light. В компании более 300 сотрудников. Офисы студии находятся в Вашраве и Вроцлаве (Польша) и Ванкувере (Канада).

Что?


Биньковский: Итак, когда мы сели за дизайн Dying Light мы сразу поняли, чего хотим от игры. Мы довольно рано решили, что хотим убрать те самые искусственные барьеры, которые всем надоели. К нашему сожалению, они очень часто появляются в играх от первого лица. Я говорю например о ограждениях достигающих высоты колена игрока, которые нужно обходить. Куча коробок, которые в реальный жизни любой бы разбросал бы в стороны. Но, как выяснилось, мой высоко обученный игровой персонаж не может этого сделать.

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

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

Мы стремились сделать игру с миром, открытым от А до Я. Мы хотели избежать линейности. Мы также хотели добиться сильного чувства высоты зданий. В итоге у нас было более 50 тысяч таких интерактивных «зацепов» на карте. К слову, к тому моменту это было лишь четвёртой частью того, что мы хотели создать к завершению разработки игры.


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

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

Кроме того, управлять всем этим было невозможно. Любые изменения размеров или форм зданий требовали перенастройки «зацепов». Та же история и с левел-дизайном. Приходилось работать исходя из мысли о том, какими путями мог пойти игрок. Более того, мы должны были отмечать места «зацепов» на карте, все до единого. К тому моменту мы ещё думали над выпуском нашей игры для консолей старого поколения. Нам постоянно не хватало памяти.

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

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




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

Итог:


Биньковский: Короче говоря, нам понадобился год работы над нашей системой естественных движений, чтобы она стала такой, как сейчас. Раз за разом. Тест за тестом. Пришлось делать кучу работы. Несмотря на то, что решение предыдущей проблемы было отличным, из-за него у нас появились проблемы, с которыми мы и не думали столкнуться. Мы создали что-то вроде ящика Пандоры. Почему? Потому что вскоре команды, занимающиеся различной работой в студии, постучались в дверь. У них тоже появились новые трудности. И всё благодаря нашему детищу.

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



Большинство популярных способов «обмана» игроков, которые обычно используются в левел-дизайне, нам не подходило. За шторкой, так сказать, мы должны были полностью расположить окружающий мир. Также пришлось делать много квестов с нуля. Это пришлось делать из-за того, что мы больше не могли знать, какой путь использует игрок для путешествия из точки А в точку Б. Они могли дойти до их точек назначения с разных сторон. Вероятность отклонения игроков от задуманного нами маршрута возросла. На тот момент у нас уже было встроено много дополнительных геймплейных возможностей. Сейчас же, когда забираться в недоступные места стало проще и веселее, приходилось делать это создавать такие возможности гораздо чаще.

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

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


Игрок проваливается в текстуры

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





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

Кулон: Я также помню, что нашей команде, занимавшейся искусственным интеллектом, пришлось пересмотреть пару вещей. Теперь наш игрок был слишком ловким. Настолько ловким, что враги не могли за ним угнаться. Любая опасность проходила мимо него. Поэтому нам пришлось запрограммировать различные типы врагов на лазание и более продвинутое преследование игрока. Чем больше был уровень угрозы, тем более ловким должен быть игрок. Упрощать жизнь игрока своими улучшениями мы не собирались.
Атака врагов тоже была немного переделана. До этого все наши враги пытались ударить игрока. Это была их основная атака. Но для кого-то настолько ловкого, как наш герой, удар по затылку от обычных зомби не значил ничего. Во избежание урона всё, что нужно было сделать – быстро передвинуться. В итоге ни у кого вообще не было желания драться даже с самыми простыми врагами.



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

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



В конце концов, мы пришли к идее создания сценариев появления врагов из окружающего игрока мира. И это было вполне логично – враги выходили из домов, через задние двери, из фургонов, канализационных каналов. Для DLC Dying Light: The Following, в которой местом действия был пригород, это подходило как нельзя кстати. Поля с высокой травой, леса и заброшенные дома – всё вписывалось в эту систему. В этом случае довольно полезной оказалась наша идея о поведении зомби. Это быстрые, разносящие вирус враги, которые нападают на вас из-за того, что вы издаёте слишком много шума.

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

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



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

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