|This article does not cite any references or sources. (February 2007)|
Hitscan is a term that is used mainly in computer games, most commonly in first person shooters. It refers to a calculation performed by a game to find the point at which a given line intersects a game object, and is therefore most often used to provide a crude but efficient simulation of a bullet or projectile hitting a target after being fired from a weapon.
Hitscan weapon is often used colloquially to refer to a projectile weapon which uses unmodified hitscan information to dictate whether or not it has hit its target — deploying the weapon calls the hitscan function, and if an object is detected in the path of the projectile, a hit is registered. Since the effect is immediate, the projectiles effectively travel at infinite speed and have a linear or otherwise simple trajectory — a practical but very crude simulation of a bullet's speed and accuracy. 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. As another example, the assault rifle 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.
The primary advantage is the 'cheapness' of the simulation, it uses relatively simple mathematics to calculate hits. Although bullets do not move at 'infinite speed' via perfectly straight trajectories in life, they move fast enough that a hitscan solution is 'good enough' to simulate their behaviour for the layman. It leaves the question of where a weapon has hit to just one function, streamlining the programming of weapons.
In terms of game design, it readily ties cause (the player presses a 'fire' button, executing a hitscan function) to effect (the hitscan returns a result, the player sees the weapon's effect at that location). It also simplifies the rules of the game, in that there is no need to lead the target (to aim slightly ahead of a moving target in order to compensate for the time it takes for the projectile to reach it).
Visually representing the firing effect of a hitscan weapon can be difficult - since the weapon hits its target instantaneously, any bullet or projectile that comes from the weapon is merely a 'ghost', and where it lands may not necessarily represent its actual hit. In particular, a projectile bullet effect will always lag behind the effect of its hit, a problem which can be compounded by internet latency in online multiplayer gaming.
The hitscan method also precludes ballistics, as it cannot simulate any kind of movement other than a straight line, such as a parabolic arc or atmospheric resistance (including wind direction).
With advances in processing and internet bandwidth, it has become more practical to simulate the ballistic nature of real-world firearms in real-time games by using a more realistic "projectile" model, spawning bullets as actual game objects with mass and velocity and continuously simulating them until they reach their target.
- Pistol, shotguns, chaingun, zombies' weapons and the Spider Mastermind's chaingun presented in Doom gaming franchise
- All bullet weapons in the Call of Duty franchise, except for the mounted Barrett M82 sniper rifles and M134 Minigun, and bullet-time scenes.
- Insurgency: Modern Infantry Combat
- Machinegun, shotguns and railgun in the Quake series.
- Shock rifle (primary fire), minigun, sniper rifle and lightning gun in Unreal Tournament
- Battlefield 1942 and Battlefield Vietnam use the hitscan method; their successors, Battlefield 2 and Battlefield 2142, dispensed with this.
- All bullet-based weapons of Team Fortress 2 which fire bullets use hitscan to test for hits, but use the particle system to draw the bullets on-screen.
- Most bullet weapons in Halo: Reach, along with several other weapons throughout the series.