Лого vc.ru

Разбор паркур-системы хоррора Dying Light: Аспекты реализации и сложности разработки

Разбор паркур-системы хоррора Dying Light: Аспекты реализации и сложности разработки

Ведущий геймдизайнер хоррора Dying Light Мацей Бинковски и ведущий программист геймплея в проекте Бартош Кулон написали для издания Gamasutra колонку о том, как создавалась система передвижения персонажей в игре. Авторы рассказали, как обучили героев и зомби паркуру и с какими сложностями им пришлось столкнуться.

Редакция рубрики «Рынок игр» публикует перевод заметки.

Поделиться

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

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

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

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

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

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

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

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

Бартош Кулон: Я придумал систему, которая сканировала пространство в реальном времени и по нескольким критериям определяла, может ли игрок забраться на объект или как-то с ним взаимодействовать. Она сканирует пространство вокруг игрока, чтобы понять, на что он может забраться, что может перепрыгнуть, и под чем прокатиться. Затем система анализирует геометрию окружения, параметры игрока (например, скорость и положение), а потом решает, какую анимацию выбрать для движений персонажа.

Первые прототипы, конечно, выглядели уродливо, но мы сразу поняли, что у системы большой потенциал. Она съедала намного меньше памяти, так что у нас появилось пространство для манёвра. Нам казалось, что теперь-то все проблемы кончились. Оставалось лишь отполировать систему, откуда могут взяться трудности? Трудности были, и их было очень много.

Результат

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

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

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

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

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

Рука персонажа проходит сквозь стену

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

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

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

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

Бартош Кулон: Ещё, помнится мне, программистам искусственного интеллекта пришлось нелегко. Игрок теперь мог бегать, где захочет, и противники не могли за ним угнаться, они вообще не представляли угрозы. Поэтому пришлось научить зомби взбираться на те же поверхности, на которые теперь мог взбираться игрок. Чем опаснее был зомби, тем ловчее он был: мы не могли просто сделать их всех умнее.

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

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

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

Нам пришлось создать особые логичные «сценарии» появления зомби в мире: они вылезали из домов, из-за дверей, из машин или прямо из канализации. В дополнении The Dying Light: The Following, события которого происходят в сельской местности, зомби вылезают из леса, из высокой травы или из заброшенных домов. Нам также очень помогло, что по задумке зомби набегали на игрока большой толпой издалека, стоило ему произвести слишком много шума.

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

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

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

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

Если вы хотите написать материал для рубрики «Рынок игр», рассказать о разработке своей игры или кейсе её роста, присылайте материал на games@vc.ru.

Статьи по теме
Обзор стратегии продвижения популярной игры Dying Light в социальных сетях19 июня 2015, 11:03
Популярные статьи
Показать еще
Комментарии отсортированы
как обычно по времени по популярности

Dying Light кайф! Наиграл больше 160 часов в него. Надеюсь будет 2ая часть.

и 3-я, и 4-я. Очень жду продолжения :)))

После Dead Island это, конечно, значительный прыжок вперед был. Фраза "польский шутер" начала по-тиху менять свое значение.

0

Возможность комментирования статьи доступна только в первые две недели после публикации.

Сейчас обсуждают
Sasha Zivers

Ничего не заставит.

«Добро пожаловать в 2030 год»: член датского парламента о счастливой жизни без приватности и личных вещей
0
Sasha Zivers

Ну да, приравнивать жену к предментам, ок-ок. )

«Добро пожаловать в 2030 год»: член датского парламента о счастливой жизни без приватности и личных вещей
0
Sasha Zivers

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

«Добро пожаловать в 2030 год»: член датского парламента о счастливой жизни без приватности и личных вещей
0
Artem Korsunov

Сайт написан на Laravel :)

«Омоймот» — сайт для подбора мотоциклов с блогами пользователей
0
Alexander Pershin
HTML Academy

Все перечисленные задачи типовые для IT, просто взял примеры чуть шире просто программирования.

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

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

Куда пойти учиться программисту: советы опытного тимлида, преподавателя и новичка
1
Показать еще