Разработка режима выживания в Warhammer 40,000: Space Wolf — опыт российской студии

Руководитель проекта студии HeroCraft Дмитрий Максюра о том, почему в играх нечасто появляются принципиально новые элементы.

Warhammer 40,000: Space Wolf разработана калининградской компанией HeroCraft по лицензии Games Workshop. Релиз пошаговой стратегии с элементами коллекционной карточной игры состоялся в октябре 2014 года на iOS, позже проект появился на Android. В феврале 2017 года игра вышла в ранний доступ Steam.

092319a07db810.jpg

Режим выживания в Warhammer 40,000: Space Wolf представляет собой замкнутую арену с различными топологиями, где герою и его напарникам предстоит отбивать нападение Культистов Хаоса.

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

Противники

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

Вообще, почему именно Культисты, а не Демоны или Десантники? Дело в том, что Культисты Хаоса хорошо визуально отличаются друг от друга, и мы решили, что игрокам не составило бы труда их запомнить.

b05cdb2f1e4de6.png
94e7bab9ad8dd1.jpg
Миниатюры Культистов Хаоса

Задачи

Одна из индивидуальных особенностей проекта — игровая логика намертво привязана к игровой сцене и не обладает вариативностью (если вы поиграете в миссии основной PvE-кампании, то увидите, что вариантов игровых ситуаций не так много), а случайность достигается в основном за счёт случайного набора карт в «руку» и наличия вероятностей попадания у оружия игрока и его противников.

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

Уровень

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

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

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

Проведя несколько игровых тестов, мы пришли к пониманию оптимального размера игрового поля: 11×11 клеток. Такой размер локации одновременно даёт и замкнутость (появляется тесный контакт с противником), и пространство для маневра (от него можно немного отбежать).

Схематично топологии выглядят так:

3c75ac7264f797.png

Различные варианты топологий удалось получить за счёт колонн. Почему именно колонны? Дело в том, что в миссиях основной PvE-кампании игрок не имеет возможности перепрыгивать через стены, поэтому для режима понадобился новый вид клетки, которую нельзя прострелить, но можно перепрыгнуть.

b19d453c2c7021.jpg
Ранние эскизы колонны

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

f784ec4fc6bc06.png
Модель колонны

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

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

Сама анимация тоже была оптимизирована: три меша, из которых состояла колонна, слили, что ускорило отрисовку в три раза. В итоге, с красивыми эффектами и анимациями, при запуске сцены мы получали около 600 вызовов отрисовки (draw calls), а после оптимизации это количество сократилось до 150.

5bda85821fed67.jpg
Варианты плиты на полу

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

Кстати, создавая эту локацию, мы вдохновлялись атмосферой Черно-Белого Дома — Храмом Многоликого бога из «Игры Престолов», а также Костницей в Седльце и монументом Челе-Кула.

e17528b81bf38a.png
Кадр из сериала «Игра Престолов», Храм Многоликого бога

Мы продолжали развивать вариативность:

  • Внедрили бесконечное возрождение игрока с помощью «Рун Жизни», которого раньше в проекте не было. При использовании игрок получает заполненную шкалу «Ярости», по аналогии со старыми играми типа beat«em up: герой возрождается, а все противники в зоне видимости на арене уничтожаются.​
ec8dd5149ea14c.jpg
  • В точках возрождения может появляться случайное количество противников в заданных пределах из определённого набора, либо заранее подобранный набор, выбранный случайным образом из списка.
  • У одной точки возрождения, как правило, несколько клеток: на изображении выше синими шариками в правом верхнем углу отмечены точки возрождения игрока; розовые шарики в центральной части — клетки появления аптечек, а у лестниц — области, в которых появляются противники. Например, можно создать ситуацию, когда в точке будут появляться громила ближнего боя и два стрелка, а можно сделать так, что оттуда же выбегут пять стрелков.​
  • ​Появилась возможность в качестве награды давать случайное количество любого ресурса в заданных рамках. Игроки получают детали для оружия (шестерёнки) и карту, ценность которых зависит от номера волны.
c1ce582acfbd51.png
  • Был опробован новый механизм, который позволяет менять карты в колоде конкретного противника в зависимости от волны.​

Аптечки

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

Аптечка — это соблазн сдвинуться с места. И при том, что противники наносят всё больший и больший урон, растёт и этот соблазн. Ещё возникает выбор: продолжать стоять, умирая, и использовать «Руну» для возрождения в конце, или рисковать — идти за аптечкой и не тратить «Руну» сейчас или вообще?

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

725f564d490955.png
Аптечка — светящийся символ в виде Аквилы

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

Баланс

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

Изначально было настроено по три шаблона противников (два громилы, один стрелок; один громила и два стрелка и так далее) на волну, которые были равны между собой по совокупному урону.

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

Закрытое бета-тестирование длилось две недели, баланс за это время переписывался четыре раза. Во время первых тестов режим проходила примерно половина из самых сильных игроков. Сейчас в среднем до конца последней волны доходит примерно 5%. Это именно тот результат, которого мы хотели достичь.

Награды

За успешное прохождения мы даём игрокам уникальные карты, которые позволяют накапливать особый ресурс — «Ярость». Команда долго выбирала для них название, мы даже устроили внутреннее голосование. Выбор пал на красивое слово Honored, а по-русски — «Почётные». Но игроки всё равно окрестили их «Яростные», или просто «Яшки».

caf4aac8ec656b.jpg

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

Режим выживания в Warhammer 40,000: Space Wolf сделан по всем канонам:

  • ​в нём отведена большая часть случайным событиями и величинам;
  • сложность нарастает постепенно;
  • ​игра идёт по немного другим правилам;
  • участие в нём доступно по таймеру.

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

©  vc.ru