Внешне стрельба в видеоиграх, особенно в шутерах от первого лица, выглядит примерно одинаково. Но поскольку тут задействована физика, возникают вопросы – как именно снаряд попадает в цель, есть ли на самом деле виртуальный снаряд, который достигает цели на определённой скорости, каков процесс, что приводит в конечному результату, или это работает иначе?Всем нравятся острые ощущения. Некоторые люди прыгают с парашютом, другие же взбираются на горы, а те кто дорожит своей жизнью – играет в видеоигры. Великолепно в них то, что вы можете пережить ситуации, которые вряд ли когда-нибудь увидите или даже захотите увидеть в реальной жизни, однако вы сможете ощутить какого это. Конечно же они зачастую совсем не реалистичны и обычно сильно преувеличены. В действительности военные могут месяцами находится в ожидании, прежде чем что-нибудь произойдёт. Но всё же что может быть более будоражащим, чем симуляция ситуации, где вы всё время находитесь на грани смерти.Обычно игры бывают жестокими ни по какой-то одной причине, а в случае с шутерами это связано с созданием чувства остроты. Однако для этого существует множество систем позволяющих создавать симуляции. Обратимся к Counter-Strike, оригинальной части серии, и к Golden Eye 007, по нынешним стандартам, они слегка примитивные. Тогда в играх использовалась геометрия для обсчёта всех объектов (персонажи, декорации, стены). Таким образом математические вычисления могут быть использованы в качестве того, произойдёт ли соприкосновение объектов.В большинстве более старых игр, а также и в некоторых новых, где реалистичность не так важна, используется метод называемый – Hitscan. Это своего рода версия рей-кастинга, для разработки игр, или дословно «метода бросания лучей». Это термин из математики и рендеринга, где проецируется линия, которая может тянутся бесконечно. Но если луч упирается во что-то, или если он программно может упереться во что-то, то он возвращает значение, оно показывает куда попала бы пуля.Поведение пули больше напоминает лазер, но поскольку лазерного оружия ещё не изобретено, то это не совсем реалистично. С учётом этого, анимация, которая показывает сделанный выстрел и место попадания пули, по сути оставляет точку соприкосновения, будь она на стене или на персонаже. Именно так это и работало в шутерах от первого лица на рассвете их популярности.Лучи несут в себе определённые ограничения. От выстрела нельзя увернуться. Если точно навестить и нажать на спусковой крючок, то этим всё и закончится. Времени между нажатием кнопки и попаданием, просто не существует. Также погодные условия не могут на это повлиять. Это переключатель где вы можете попасть или промахнуться, не существует никаких других факторов. Не стоит забывать, что шутеры от первого лица, несмотря на то, что они всегда были на передовой игровой индустрии, были немного проще. Но даже если вы сегодня сделаете игру, в которой будет такой способ перемещения пуль, то это может не иметь значения, если игра окажется хорошей.Так что, развитие баллистики в играх можно прекратить? Ни в коем случае. Чтобы другие условия в игре начали играть свою роль, это понадобится если нужно сделать хардкорный шутер, вам потребуется пуля работающая не как переключатель, а как фейдер. Должна существовать некая серая зона, где вы можете избежать попадания этой пули. Возможно чудесным образом другой игрок встанет между вами и пулей, пока та летит от ружья к вам, или погода будет очень ветреная, или же из ружья так часто стреляли, что она потеряла точность при стрельбе. Поэтому здесь должно быть задействовано больше систем, чем просто проецирование луча в точку попадания и выведения результата. Чтобы это реализовать разработчики начали использовать фактические снаряды, имеется ввиду система в которой пуля действительно существует, по крайней мере в виртуальной среде.Таким образом у пули появляется своя геометрия, она ведёт себя как объект в мире и на неё влияют все остальные системы в игре, как и на любой другой объект. Конечно же предыдущий метод рей-кастинг, может также использоваться, когда сама пуля проецирует луч, который возвращает значение для каждого отдельного кадра, что создаёт новую точку соприкосновения для каждого кадра. Также расчёты точки соприкосновения могут происходить с помощью мультисемплинга или интерполяции, как это используется во многих других системах или даже в графических программах.Пока ваша пуля перемещается от кадра к кадру, для неё определяется каждый последующий кадр, а в промежутке между двумя кадрами высчитывается наличие столкновения. Собственно столкновение может произойти или не произойти. Если его не будет, то вычисление кадра за кадром продолжится, пока пуля не остановится. Однако на пулю могут воздействовать другие эффекты, помимо возможности столкновения. Допустим в игре есть ветер, который может слегка сместить пулю в полёте. Если так и есть, то реалистичность значительно поднимается. В такой ситуации вам приходится самостоятельно компенсировать это влияние.Это было невозможно, когда рей-кастинг был исключительным методом расчёта попадания пули. Однако в системе, которая постоянно обновляется, по мере продвижения пули каждую долю секунды, можно делать и другие расчёты. Например, если ваши снаряды будут не пулями, а краской. Невозможно сделать игры Splatoon, где боеприпасы не являются жидкостью. В ней нет ничего похожего на поведение пули. Эту игру не смогли бы сделать 20 лет назад, даже несмотря на то, что шутеры от первого лица в тот момент уже жили собственной жизнью.Тогда просто быть шутером, просто быть трёхмерной игрой, в которой есть подобное соперничество и всё это правда работает, уже одно это очень впечатляло. Но теперь когда вы знаете как работает баллистика в играх и какой путь она прошла, вы можете догадываться, какой она может стать в будущем. Многие игры станут куда более реалистичными, когда новые расчёты для пуль будут применяться в каждой игре. А большая реалистичность означает большую сложность.В шутерах завтрашнего дня, нам придётся учитывать значительно больше в процессе прохождения игры. Но в то же время не перестанут выходить игры, работающее по старой схеме отслеживания лучей, потому что честно говоря, иногда в старые игры играть веселей чем в новые.