Сергей Изъюров - Баллистика в компьютерных играх
Название: | Баллистика в компьютерных играх | |
Автор: | Сергей Изъюров | |
Жанр: | Статьи и рефераты, Самиздат, сетевая литература, Литература ХXI века (эпоха Глобализации экономики), Программирование игр | |
Изадано в серии: | неизвестно | |
Издательство: | Интернет-издательство «Stribog» | |
Год издания: | 2022 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Баллистика в компьютерных играх"
Приведены объяснения баллистических принципов функционирования игры World of Warships данного одним из разработчиков Сергеем Изъюровым.
Читаем онлайн "Баллистика в компьютерных играх". [Страница - 3]
Нет, этот вариант запросто мог завести в тупик. Требовалось что-то более изящное и легко настраиваемое.
Обсудив сложившуюся ситуацию, разработчики пришли к выводу о том, что наиболее приемлемое решение — запрограммировать «честную» баллистику, чтобы снаряды в игре летали в точности так, как они летали в настоящих боях. Тогда и подгонять вручную ничего не придётся: добавив к честной баллистике приближенные к реальности законы пробития брони и нанесения урона (ведь мало попасть снарядом в корабль — надо его ещё и пробить), мы автоматически получим все исторические особенности и нюансы артиллерийских боёв применительно к конкретным кораблям.
Задача получалась не из простых: ведь мало того, что придётся численно моделировать законы полёта снаряда, вылетевшего с заданной скоростью и под заданным углом. Придётся решать и обратную задачу: имея заданную дистанцию, находить требуемый угол стрельбы, при котором траектория придёт точно в точку прицеливания. А если кораблей в бою штук тридцать, у каждого от 2 до 6 башен главного калибра, не считая второстепенного, да все они одновременно начнут стрелять, — сколько траекторий придется моделировать каждую секунду? Но программисты не испугались трудностей, потому что были смелыми и отважными (не зря же наш отдел HR проводит собеседования ночью на кладбище, чтобы сразу отсеять трусливых кандидатов). Собрав волю в кулак, программисты решительно занесли руки над клавиатурами и со страшной скоростью застучали по клавишам.
Для моделирования и исследования законов баллистики была создана специальная программа. Было решено для быстрого прототипирования использовать ActionScript, а когда алгоритмы будут полностью отлажены, переписать их на С++, чтобы добиться максимальной производительности. В качестве начальных параметров для траектории задавались вес снаряда, калибр, начальная скорость и коэффициент сопротивления воздуха. Для любого существовавшего корабельного орудия первые три параметра, как правило, можно выяснить, почитав старые газеты. Что касается коэффициента сопротивления воздуха, он должен иметь какое-то разумное значение — я точно не знаю, но, наверное, где-то сэмь-восэмь (но никак не тридцать три). И быть примерно одинаковым для снарядов похожей формы — из этих соображений его и подбирали.
Чтобы проверить правдоподобность законов полёта снарядов, полученные в программе дальности стрельбы сравнивались с документальными — о них, как правило, также можно прочесть в старых газетах. Для начала наши программисты попробовали просто учесть замедление снаряда от трения о воздух. Оказалось, что этого совершенно недостаточно: результаты сильно не совпадали с требуемыми. Тогда было учтено изменение плотности воздуха с высотой. Забрезжил луч надежды. Попытались смоделировать ещё несколько неочевидных физических явлений, влияющих на полет снаряда, — всё мимо. Наконец догадались учесть изменение температуры воздуха с высотой — и вот тогда совпадение с документальными данными получилось практически идеальным. Задавая вес снаряда, калибр и начальную скорость, для большинства орудий удавалось получить совпадение дистанций стрельбы с точностью до 1 % (что меньше погрешностей исторических данных, которые к тому же зависят от износа --">