Плавильный котел: бой в Skyforge

в 14:00, , рубрики: Allods team, game development, skyforge, Блог компании Mail.Ru Group, дизайн, игры

Всем привет! Меня зовут Дмитрий Бородин, я работаю гейм-дизайнером в команде боя на проекте Skyforge. В Allods Team я уже более четырех лет, и это время не прошло даром — я узнал много нового и интересного из самых разных областей геймдева. В основном же моя работа была связана с реализацией боя в игре, и сейчас я расскажу о том, как мы делали его в Skyforge.

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

Основной вклад в комбат ММО вносят 3 составляющие:

  1. Классы — связанные наборы умений, которые игрок будет использовать в бою.
  2. Мобы — враждебные игроку монстры.
  3. Интерфейс и камера.

Про каждый из этих пунктов надо рассказывать основательно в отдельных статьях, и я расскажу про первый — про классы.

Больше комбата, веселого и разнообразного

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

Плавильный котел: бой в Skyforge - 1

Первые же эксперименты были вполне жизнеспособны — в основном мы использовали проверенные, хорошо зарекомендовавшие себя механики. Через некоторые время игры PvE ожидаемо становилось типичным для MMO монотонным гриндом: выдели моба, жми 1-2-1-3-4, при необходимости повтори. Становилось все более заметно, что что-то не так: от дня к дню разработчики, так или иначе задействованные в плейтестах, начинали все больше скучать в бою. И, хоть это можно было бы списать на то, что они просто не получали реальной награды за бой, мы решили, что если хотим сделать действительно круто, то нужно все серьезно менять. Так началась череда крупных изменений, в которые был вовлечен практически весь проект.

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

Консольное влияние

В процессе наших экспериментов мы стали все внимательнее присматриваться к реализации комбата в таких играх, как God of War, Devil May Cry, Darksiders. В какой-то момент мы решили таки засучить рукава и переделать весь наш комбат на подобный экшен-вариант.

Прежде чем приступать к масштабным переделкам, было решено разобраться в одной из ключевых особенностей комбата в этих играх — комбоударах, которые представляют собой определенные последовательности активации способностей, имеющие дополнительный эффект. Мы посмотрели, как это реализовано в Mortal Kombat, Tekken, Street Fighter, оценили разницу в подходах и их результаты. Решали, как будем адаптировать комбо для ММО: сделать так же как в файтинге нельзя из-за разницы в специфике жанров и их многочисленных технических особенностей. После редизайна «на бумаге» пошли многочасовые собрания с художниками, на которых мы искали пути реализации наших задумок, устраивавшие всех. Затем мы с интересом смотрели в игре, что же у нас получилось. В итоге остановились на варианте комбоударов, которые состоят из разных «базовых» атак, выполняемых при нажатии левой кнопки мыши, и специальных атак, которые выполняются нажатием правой кнопки мыши после нужной базовой атаки. У паладина появились 4 базовые атаки, которые заканчивались ударом, подбрасывающим противника в воздух. Места трех специальных атак — после первой, второй и третьей базовых — заняли соответственно «Печать света», состоящая из двух быстрых взмахов меча и наносящая урон врагам в прямоугольной области перед паладином, «Карающая молния», поражающая одного противника мощным нисходящим ударом, и «Небесная кара», при выполнении которой паладин совершает удар в землю и наносит урон всем вокруг. Мы не стали располагать еще одну специальную атаку после четвертой базовой, так как необходимость сделать, не прерываясь, пять ударов подряд уже слабо вязалась с той динамикой боя, которой мы хотели добиться.

Плавильный котел: бой в Skyforge - 2

Чтобы комбоудары хорошо игрались, нужно приложить немало усилий. Необходимо, чтобы игрок четко ощущал, когда они начинаются, когда заканчиваются, на какой в данный момент стадии находятся и что сейчас следует нажать, чтобы выполнить нужную последовательность ударов. Иначе при исполнении длинной серии возникал неприятный эффект — игрок со временем начинал про себя считать, сколько базовых атак он сделал, а также соблюдал субъективно неприятные паузы между нажатием ударов. Назвав этот эффект «метрономом», мы сразу стали с ним активно бороться. В процессе этой борьбы появилась специальная интерфейсная фича — «комбохелпер». Она помогала ориентироваться в комбоударах, прямо в процессе боя показывая, какие элементы игрок применил, выстраивая в ряд соответствующие иконки одновременно с их исполнением. Но наибольших результатов мы добились, изменяя продолжительность ударов и время, в которое клиент будет принимать команды на следующий удар. Мы ускоряли базовые атаки, а последние удары в серии делали заметно более медленными. Так, раньше каждый удар паладина выполнялся в течение примерно одной секунды, а теперь на самый долгий заключительный удар приходится целых 1,5 секунды, в то время как самая быстрая базовая атака выполняется всего за 450 миллисекунд. Команды на следующий удар теперь можно отдавать гораздо быстрее, и процесс стал заметно более комфортным, так как исчезла необходимость все время делать паузы между ударами. Мы добились такого результата, что даже решили отказаться от ранее сделанного «комбохелпера» — он стал нам просто не нужен.

Трудности и проблемы

В процессе работы стало понятно, что на дальнобойные классы комбо ложатся очень странно как с визуальной стороны, так и просто с точки зрения здравого смысла. И действительно, почему сразу нельзя запустить во врага нужным эффектом, а обязательно перед этим каждый раз применять какие-то другие атакующие умения? Было принято решение не натягивать на дальнобойные классы идеологию комбо силой, а использовать альтернативные атрибуты экшен-комбата вроде заряжаемых умений, прицельных выстрелов и прочих механик. Например, у лучника мы используем 3 типа стрел, переключение между которыми осуществляется с помощью правой кнопки мыши. Для стрельбы выбранным типом стрел используется заряжаемое умение, в процессе зарядки которого надо удерживать левую кнопку мыши — игрок как будто натягивает тетиву. Это умение содержит в себе 3 разных типа выстрела, а используемый тип выстрела определяется моментом, в который игрок отпускает клавишу зарядки умения. Таким образом, на двух кнопках мыши у лучника располагается целых 9 умений. Также комбо не обязательно должны быть на мышке — у того же лучника есть «Выстрел в прыжке», похожий на всем известный Rocket Jump, и выполняется он с помощью рывка назад, вслед за которым надо прыгнуть, используя пробел.

Еще стоит отметить, что для ММО не подходит распределение эффектов от комбо из экшенов, откуда эти серии ударов и были переняты. Суть в том, что в тех же God of War или Devil May Cry на среднем уровне сложности практически любые осмысленные последовательности активирования способностей приводят к примерно одному и тому же результату, пусть даже в процессе игры может складываться совершенно противоположное впечатление. При прочих равных, игрок проходит игру со скоростью, на которую почти не влияют используемые им способности, хотя одни из них могут быть длинными и сложно исполняемыми комбоударами, а другие — простыми однотипными ударами. Попытка сделать нечто подобное у нас привела к тому, что игроки применяли те комбо, которые им нравились визуально или просто получались сами собой, что, в общем-то, как раз соответствует тому, что делают игроки в экшенах. При этом через некоторое время интерес к бою терялся. Уже самый быстрый анализ причин быстро привел нас к, казалось бы, лежащему на самой поверхности выводу: игрок теряет интерес к комбату через 8–10 часов, что в принципе соответствует времени прохождения рассматриваемых нами экшенов. Для этих игр, конечно, нет ничего страшного в том, что игроку под конец наскучивает драться с мобами, но для ММО столь ранняя потеря интереса к комбату станет фатальной. Поэтому в Skyforge мы сделали комбо более хардкорными, чем в обычном экшене: игрок должен часто принимать решения, какой именно комбоудар ему нужно использовать в данный момент, и эти его решения будут сильно влиять на исход сражения. Комбо паладина приобрели строгую специализацию: «Печать света» выгодна, если задевает двух-трех врагов, находящихся перед героем, «Карающая молния» наносит максимальный урон одиночной цели, «Небесная кара» помогает разобраться с большим количеством окруживших врагов, ну а базовые атаки отвечают за восстановление классового ресурса.

Минус хилер, плюс саппорт

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

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

Плавильный котел: бой в Skyforge - 3

PvE также страдает от наличия роли хилера. Описанное двойное усиление хоть и выделяет танков среди остальных ролей в группе, но сам танк, по сути, почти не ощущает этого. Для него его «танковость» часто сводится к бинарной ситуации: или его с хилером совокупных характеристик хватает для того, чтобы сводить к нулю урон от босса, или нет. Если нет, то прохождение босса, скорее всего, представляется невозможным. Если да, то мы сталкиваемся с очередной проблемой, порожденной хилерами — потенциально бесконечной выносливостью группы игроков в бою с боссом. Имея бесконечную выносливость в бою, можно иметь сколь угодно малый урон, чтобы победить любого противника, просто на это уйдет больше времени. Чтобы победить бесконечную выносливость в PvE, разработчики часто внедряют странные механики типа «энрейджа», когда через некоторое время боя босс вдруг начинает наносить в разы больше урона, не оставляя хилерам шансов компенсировать его лечением. Без подобных механик первые убийства боссов стабильно совершаются группами, в которых большую часть составляют именно хилеры, а сам бой длится огромное количество времени.

Потому мы решили отказаться от роли хилера в Skyforge. Нет, как таковая возможность лечиться в бою, хоть и ограниченно, никуда не делась, но не будет роли, посвященной исключительно этой механике. Вместо хилеров мы сделали роль саппорта — своеобразного режиссера боя, который также будет незаменимым членом любой группы. В бою саппорт принимает важнейшие решения, от которых зависит исход сражения. Он может помогать членам группы выполнять самые разные задачи в нужные моменты времени, защищая союзников и ослабляя противников, раздавая оффенсивные бонусы и создавая на поле боя дополнительные точки интереса. Только сам саппорт решает, что из этого необходимо в данный момент. Благодаря его действиям группа способна на то, что без него сделать в принципе не может. Например, у одного из наших саппортов, хранителя света, умение «Неприкосновенная преграда» может сделать всю группу неуязвимой на несколько секунд. «Золотой шар» выстроит в ряд всех врагов, рядом с которыми пролетит. Умение «Реликвия странника» установит на землю предмет, при использовании которого союзник может моментально переместиться к хранителю. Хранитель может и сам переместиться к заранее установленной реликвии, повторно применив способность. Также стоит отметить, что набор умений некоторых саппортов при желании позволит им, играя в группе, не взаимодействовать с врагами напрямую, полностью сконцентрировавшись на поддержке союзников. Так, базовые атаки хранителя света могут быть направлены на союзника, и тогда вместо нанесения урона они будут увеличивать исходящий урон цели.

Плавильный котел: бой в Skyforge - 4

Не доверяй и проверяй

Чтобы быть уверенными в том, что в долгом процессе разработки мы сохраняем трезвый взгляд и не уходим слишком уж далеко от того, чего ждут от нас игроки, во всех наших экспериментах с комбат-системой мы активно используем UX-тестирование (от английского User eXperience, что можно перевести как «опыт взаимодействия»). Для этого у нас есть специальная UX-лаборатория, куда мы приводим самых разных людей: почти не знакомых с играми, опытных ММО-геймеров, любителей шутеров, консольных игроков — словом, стараемся получить как можно более разнообразную обратную связь.

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

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

Плавильный котел: бой в Skyforge - 5

Может ли новичок применять в бою комбо этого класса? Не слишком ли игрока отвлекает панель способностей и датчик ресурса? Заметна ли способность вот этого моба? А понятна ли она? В ответах на эти и подобные вопросы нам очень помогали и помогают исследования в UX-лаборатории.

Вместо заключения

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

В следующих статьях мы обязательно продолжим наш рассказ о том, как мы делали бой для Skyforge, ну а пока я откланяюсь и предложу задавать вопросы в комментариях — по возможности ответим!

Автор: Gector

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js