Введение
Система столкновения снарядов в видеоиграх. Hitscan в дизайне видеоигр, чаще всего в шутерах от первого лица, — это тип системы регистрации попаданий, который определяет, был ли объект поражён, просто проверяя, направлен ли используемый предмет непосредственно на цель, а затем мгновенно применяет эффекты этого предмета (обычно урон). Например, оружие не выпускает снаряд, который игрок должен вести; урон наносится, как только прицел игрока оказывается на цели и нажата кнопка стрельбы. Внутриигровой процесс обычно реализуется путём моделирования луча, исходящего из точки применения предмета вдоль траектории "снаряда", и простого сканирования любых объектов, соприкасающихся с этим лучом. Игры могут отображать визуальный эффект снаряда, хотя технически он не оказывает влияния. В отличие от этого, оружие, использующее снаряды, выпускает реальный объект-снаряд, который движется в виртуальном пространстве с определённой скоростью и наносит урон только после фактического касания ("попадания") цели. Оружие, использующее немодифицированную информацию о попаданиях для определения, достигло ли оно цели, часто называют hitscan-оружием. Выстрел из такого оружия вызывает функцию hitscan, и если объект обнаружен на пути снаряда, регистрируется попадание. После определения, был ли что-то поражено, система выдаёт величину урона, основываясь на точке попадания луча в объект. Поскольку эффект мгновенный, снаряды эффективно движутся с бесконечной скоростью и имеют линейную или иную простую траекторию — практическое приближение к скорости и точности пули на коротких дистанциях. Метод hitscan можно модифицировать, делая некоторые поверхности отражающими, позволяя лучам hitscan продолжаться бесконечно без остановки или проникать одновременно через несколько объектов по одной линии. Для повышения реалистичности программисты могут использовать функции hitscan немного по-разному, например, применяя случайное отклонение к рассчитанной траектории для имитации неточности. Упрощённая версия этого реализована в шутере от первого лица DOOM: когда игрок удерживает кнопку стрельбы из пистолета, со второго выстрела стрельба становится неточной. В качестве другого примера, в Half-Life 2 пулемёт вызывает функцию hitscan в середине анимации "огнёмётной стрельбы", создавая небольшую задержку между развёртыванием оружия и поражением цели, чтобы лучше приблизить поведение к реальной баллистике.
Hitscan in video game design, most commonly in first person shooters, is a type of hit registration system that determines whether an object has been hit or not simply by scanning if the item used was aimed directly at its target and then applies the effects of the item (usually damage) instantly. A weapon, for example, does not launch a projectile the player needs to lead, damage is applied as soon as the player's crosshair is on a target and the fire button is pressed. Internally, this is most commonly done by simulating a ray from the origin of the item along the trajectory of the "projectile" and simply scanning for any objects touching the ray. Games might still show a visual of a projectile although it technically has no effect. In contrast, a projectile based weapon would launch an actual projectile object that moves through the virtual space at a certain speed and will apply damage only once it has actually touched ("hit") a target. A projectile weapon which uses unmodified hitscan information to dictate whether or not it has hit its target is often called a hitscan weapon. Shooting the weapon calls the hitscan function, and if an object is detected in the projectile's path, a hit is registered. Once it's determined if something was hit or not, the system will then give a damage output based on where the ray hit the object. Since the effect is immediate, the projectiles effectively travel at infinite speed and have a linear or otherwise simple trajectory—a practical approximation of a bullet's speed and accuracy over short distances. The hitscan method is modifiable by making some surfaces reflective, making the hitscan rays go on forever with no stop, or able to penetrate multiple objects at the same time in the same line. To improve the realism, programmers may use hitscan functions in slightly different ways; for example, applying a random perturbation to the calculated path to simulate inaccuracy. A simplified version of this occurs in the first person shooter DOOM; when the player holds down the fire button with the pistol, it fires inaccurately from the second shot. As another example, the submachine gun in Half Life 2 calls a hitscan function in the middle of a 'blazing gun' animation, creating a small amount of lag between weapon deployment and the hitting of the target to better approximate real life ballistics.
Преимущества
Основным преимуществом является простота симуляции, использующей относительно простую математику для вычисления попаданий. Хотя пули не движутся с бесконечной скоростью по идеально прямым траекториям, они движутся достаточно быстро, чтобы решение с мгновенным определением попадания (hitscan) обычно было разумным приближением. Это сводит вопрос о месте попадания оружия к одной функции, упрощая программирование оружия. С точки зрения игрового дизайна, это позволяет легко связать причину (нажатие игроком кнопки "огонь", запуск функции hitscan) с эффектом (hitscan возвращает результат, игрок видит эффект оружия в этой точке). Как сильно упрощенная модель реальной баллистики, она делает игры более доступными, поскольку не требует прицеливания немного впереди движущейся цели для компенсации времени полета снаряда. Хотя эта модель менее реалистична, она не требует понимания особенностей обращения с реальным оружием для игры, и укрепляет интуитивное понимание того, что в точку прицеливания будет произведено попадание.
Недостатки
Визуальное представление эффекта стрельбы из оружия с мгновенным попаданием может быть затруднено: поскольку оружие поражает цель мгновенно, любая пуля или снаряд, выпущенный из оружия, является лишь "иллюзией", и место его попадания не всегда соответствует фактическому поражению цели. В частности, визуальный эффект пули как снаряда всегда будет запаздывать от момента попадания, что может усугубляться задержкой в онлайн-многопользовательских играх. Сложно изменить траекторию снаряда после его вылета из оружия под воздействием ветра и гравитации. Поскольку оружие выпускает луч, который почти мгновенно достигает цели, каких-либо существенных изменений траектории не происходит. Например, при стрельбе по быстро движущемуся объекту на большом расстоянии. При использовании технологии мгновенного попадания, игрок, точно наведённый на цель, поразит её. Однако, в реалистичном игровом движке пришлось бы учитывать опережение цели. Невозможно реализовать баллистику снаряда или траекторию полёта снаряда при использовании технологии мгновенного попадания. Существуют игры, использующие как мгновенное попадание, так и баллистику снарядов, но не одновременно. В качестве альтернативы, некоторые игры могут определять попадание с помощью технологии мгновенного попадания, а затем отображать анимацию с баллистикой снаряда. Благодаря развитию вычислительных мощностей и пропускной способности интернета, стало более целесообразным моделировать баллистические свойства реального оружия в реальном времени, используя более реалистичную модель "снаряда", создавая пули как полноценные игровые объекты с массой и скоростью, и непрерывно моделируя их движение до достижения цели.