Популярная механикаСтиль жизни
Адмирал на час
Продолжаем рассказывать, как устроена World of Warships, одна из самых эпичных военно-морских игр. Ее создателям из питерского филиала Wargaming.net удалось столкнуть в масштабном морском бою более двухсот кораблей первой половины XX века. Степень реалистичности впечатляет: не только внешний вид, но и поведение кораблей в бою максимально приближены к реальности.
Большинство игроков World of Warships играют из-за морских артиллерийских дуэлей. Тут есть где развернуться – от адреналиновых краткосрочных кровавых перестрелок между эсминцами и крейсерами до сверхдальних медленных 20-километровых перестрелок между линкорами. Вряд ли кому из нас довелось в жизни участвовать в подобных баталиях, но, читая книги, я представлял их примерно так. Чтобы разобраться, насколько все это похоже на реальную жизнь, я смотался на денек в Санкт-Петербург к разработчикам.
Боги войны
По какой кривой летят снаряды? Большинство ответит – по параболе, но будут правы только частично. По параболе снаряды летают в безвоздушном пространстве. Программируется это просто и надежно, но очень уж далеко от исторических реалий корабельных сражений. Поэтому в World of Warships траектории полетов другие. В реальном морском бою снаряд, выпущенный на максимальную дальность, в полете успевал замедлиться, потерять горизонтальную скорость и прилетал к цели практически вертикально, всем своим весом обрушиваясь прямо на вражескую палубу. В отличие от бортов, палуба обычно слабобронированная, так что прилетевший сверху снаряд имел все шансы с легкостью ее пробить и взорваться внутри, нанеся значительный урон кораблю.
На средних дистанциях снаряд прилетал уже не отвесно сверху, а под определенным углом, чаще попадая в бронированные борта (а если в палубу, то вскользь). За время полета скорость снаряда успевала упасть, да и при попадании под углом шансы на пробитие снижались. Это приводило к интересной особенности: зачастую на определенном расстоянии от противника корабль мог чувствовать себя в относительной безопасности. Ну и на малой дистанции снаряд прилетал в борт почти перпендикулярно и на большой скорости, вследствие чего имел отличные шансы пробить броню и влететь прямо в кают-компанию, безнадежно испортив настроение членам экипажа.
Таким образом, корабль мог получать от противника значительный урон на малой и большой дистанциях, но быть практически неуязвимым на средней. При боевом противостоянии двух кораблей эта дистанция (по-научному зона свободного маневрирования) была у каждого своя. Ключевую роль в поединке начинала играть скорость. Кто имел преимущество хотя бы в пару узлов, мог выдерживать ровно ту дистанцию, которая безопасна для него и невыгодна для противника, и безнаказанно наносить урон, не получая сдачи. Это являлось важнейшим элементом тактики морских сражений, и было бы несправедливо опустить такие нюансы в игре.
Словом, от параболических траекторий практически сразу было решено отказаться, ведь они не позволяют правильно воспроизвести ни углы, ни скорости снарядов. Законы баллистики должны быть более сложными и правдоподобными: сложными, как учебник тригонометрии для десятого класса, и правдоподобными, как предвыборные обещания кандидата в президенты.
Гнем параболы
Для начала попробовали искусственно погнуть параболы, чтобы придать им более подходящий вид. Чем не вариант: выдать гейм-дизайнерам плоскогубцы и напильники, и пусть гнут траектории, как захотят, настраивая, под какими углами и с какими скоростями должны прилетать снаряды в зависимости от дистанции. Но где взять все эти углы и скорости, чтобы они соответствовали правильным значениям? И сколько месяцев понадобится, чтобы аккуратно подогнать псевдопараболы для десятков и сотен разнообразных орудий, добиваясь для каждой пары кораблей достоверных зон свободного маневрирования и корректных вероятностей нанесения урона? И сколько еще доработок придется внести из-за того, что текущих «винтиков» не хватило, чтобы корректно настроить траектории для всех кораблей? Нет, этот вариант запросто мог завести в тупик. Требовалось что-то более изящное и простое. Обсудив сложившуюся ситуацию, разработчики пришли к выводу, что наиболее приемлемое решение – запрограммировать «честную» баллистику, чтобы снаряды в игре вели себя в точности так же, как и в настоящих боях. Тогда и подгонять вручную ничего не придется: добавив к честной баллистике приближенные к реальности законы пробития брони и нанесения урона (ведь мало попасть снарядом в корабль – надо его еще и пробить), можно автоматически получить все исторические особенности и нюансы артиллерийских боев применительно к конкретным кораблям.