Подводные камни при разработке подводных лодок в World of Warships

<?the_title()?>

Команда разработчиков World of Warships поделилась своим опытом введения нового класса кораблей в игру.

World of Warships, выпущенная нами в 2015 году — это самый крупный проект студии. До сих пор мы держим планку лучшей игры про флот, ежемесячно обновляя World of Warships и добавляя огромное количество контента как «вглубь», так и «вширь», чтобы нашей аудитории всегда было интересно.

Успех «Кораблей» дал дорогу консольной World of Warships: Legends и мобильной World of Warships: Blitz, создав своего рода игровую серию с рядом фирменных особенностей. Размеренный темп, где тактическое мышление побеждает скорость реакции, потрясающие и достоверные модели кораблей… но в самом сердце геймплея — система классов, которые играются совершенно по-разному и делают комбинаторику World of Warships такой обширной.

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

Есть ещё один класс кораблей, которого у нас в игре не было — подводные лодки. Игры серии Silent Hunter, фильм Das Boot, мемуары очевидцев и другие произведения прочно формируют образ подводной лодки в бою: крохотный тесный кораблик, в котором кроется смертельная угроза как для противника, как и для экипажа, напряжённое наблюдение за целью в перископ, расчёт торпедной атаки, гул от разрывов глубинных бомб — всё это прочно закрепилось в сознании людей, небезразличных к флоту.

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

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

Игровой процесс и тестирование

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

Из очевидного, пришлось значительно усилить динамику и скорость. Иначе дни в минуты не превратить. Впрочем, тут для нашей игры ничего нового — у нас все скорости завышены по сравнению с настоящими.

Забавная проблема возникла с торпедами: раньше реальная глубина их хода не имела значения для коллизии. Скажем, большинство торпед в игре просто поражало любой корабль, в силуэт которого было попадание, а ряд особых глубоководных не поражал определённые классы (например, у нас есть торпеды, которые никогда не могут попасть в эсминец и будут просто проходить под ним). И выглядело это нормально, и для игрока достаточно понятно. А подводная лодка ведь перемещается по вертикали, поэтому специально для нового класса мы сделали честную коллизию торпед в 3D.

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

Первый нормальный прототип игрового процесса мы выпустили в рамках PvE ивента в честь Хеллоуина примерно год назад. Там подводные лодки уже умели погружаться и всплывать, была механика кислорода, глубинные бомбы. Он подтвердил, что тема игрокам крайне интересна, а класс, в принципе, глобально в игру вписывается, но этого явно было недостаточно, да и проблем повылезало много.

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

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

Увеличили запас кислорода (он расходуется у подлодки на перископной глубине и при полном погружении, ограничивая время нахождения под водой), но и пополнение замедлили. Это убрало частые «нырки», которые постоянно происходили в хеллоуинском ивенте, и скорректировало темп геймплея, сделав его более размеренным и тактическим.

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

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

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

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

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

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

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

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

В рамках PvE ивента игроки на подлодках сражались против ботов и эсминцы были вооружены глубинным бомбами, которые действовали по заложенной логике и сбрасывали бомбы в нужный момент.

Когда же мы начинали первый этап тестирования, механика работала следующим образом: находясь в 4–6 километрах от подводной лодки, игрок на эсминце получает информацию о её предполагаемом местоположении.

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

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

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

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

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

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

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

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

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

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

  • Игры проводятся не круглосуточно, а в большой восьмичасовой прайм-тайм с 12:00 до 20:00 UTC. Все регионы могут играть, но при этом мы не слишком сильно распыляем участников — это положительно сказывается на матчмейкинге.
  • Доступны корабли только одного уровня, две игровых карты и две подлодки, которые игрок получает последовательно (одну — на старте, вторую — играя на разных классах). Небольшое количество контента помогает сосредоточиться на самом главном — качестве игрового процесса.
  • В матчмейкере выставлено жёсткое ограничение по подводным лодкам и эсминцам на команду, так как именно к этим классам проявляется максимальный интерес. Недостающие крейсеры, линкоры и авианосцы, если требуется, заполняются ботами.

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

Информационное сопровождение мы усилили существенно: на нашем сайте можно найти несколько объёмных статей и Q&A по новому классу, чтобы игроки совершенно точно знали, как играть на нём, как играть против и зачем он добавляется в игру.

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

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

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

Как происходит моделирование?

Подводные лодки — самые маленькие корабли в игре, поэтому на их моделирование требуется порядка 2–2,5 месяцев.

Подвижные части подводной лодки

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

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

Внешний вид подводной лодки в доке и в бою

С появлением подлодок появилась необходимость отрисовывать подводный мир, чтобы он выглядел объёмно, атмосферно и красиво. Теперь можно увидеть, как лучи света, переливаясь, проходят сквозь воду.

Для этого разработчики применили распространённую художественную технику и рисуют световые лучи в пост-процессинге — уже после расчёта изображения подводного мира.

Каустики в игре World of Warships
Пост-эффект световых лучей

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

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

Лучи и блики в Warld of Warships из под воды
Вид из-под воды

Звук

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

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

А когда на подлодке закончится кислород, к «техническим» звукам сирены будут подмешиваться «человеческие», чтобы создать эффект присутствия и сигнализировать игроку, что у него проблемы. Это можно услышать в примере.

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

Понравилась статья? Поделиться с друзьями:
Пишет статьи о разработке игр. Не инди, — работает рендеринг-программистом в крупной ААА студии в Санкт-Петербурге. Большой поклонник игр Naughty Dog.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *