Hitscan

In the earlier days, many games relied on a technique called raycasting to render 3D environments onto 2D images (your screen). Raycasting also allows the engine to determine the first object intersected by a ray. Developers then started to question, “What if that ray originated from the muzzle of a gun to mimic a bullet?” With this idea, hitscan was born.

An example of raycasting

In most implementations of a hitscan weapon, when the player shoots a bullet, the physics engine will:

Figure out the direction the gun is pointing at,

Cast a ray from the muzzle of the gun until a defined range,

Use raycasting to determine if the ray hit an object.

If the engine determines that an object is in the line of fire, it will notify it with a message that it was “hit” with a bullet. The target then can do all the calculations needed to register the damage.

From Unity. Point A represents a gun casts a ray until its maximum point B. The ray makes contact with the cube, which the engine will tell it has been hit.

Hitscan is simple at its core, but a lot of different modifications can be made to support other logic:

If we continue the ray past the first object that it hit, we can penetrate multiple objects in a line, like the railgun in Quake

Removing the maximum range of the ray means that we can shoot out a laser that will continue forever until we hit something

Programming certain surfaces to be reflective, to bounce bullets off of

Overwatch. Genji’s deflect is an example of a reflective surface.

The main advantage of using raycasting is that it’s super fast. It’s quick to compute and does not need overhead memory or processing time to build a new physics object. That means the network engineering needed to keep many clients in sync is minimal since the server only needs to keep track of the direction of the ray. Recoil is simple to add, as the addition of a small perturbation in the aim of the gun will mimic the effect.

Thus, it’s no surprise that many games in the industry use hitscan for its shooting logic. Wolfenstein 3D and Doom are classic examples, but even recent games use this technology. Characters such as Soldier 76, McCree and Widowmaker from Overwatch have hitscan weapons, and most Call of Duty guns are hitscan as well.