Elastic collisions with walls

From DoomWiki.org

Revision as of 09:25, 30 January 2022 by (talk) (singular they usage)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

In the Doom engine, the player slides when moving into a solid wall. However, the code responsible can sometimes suffer a round-off error due to inaccuracies in the R_PointToAngle function and the various trigonometric lookup tables used by the simulation. Occasionally this will result in a dramatic reversal of momentum when sliding against a wall, causing the player to bounce. This problem was repaired in Boom by adding a small amount into the difference taken between the player's actual movement angle and an ideal angle for sliding which prevents the angle from wrapping unexpectedly.

In Boom[edit]

A similar but entirely intentional phenomenon occurs in Boom by design when the player is inside a sector with low friction. Icy floors tweak the behavior of wall sliding so that if the player is moving at high speed and at an angle between 45 and 135 degrees relative to the line, they will appear to stumble and hit the wall very hard, bouncing off in the reverse direction and emitting an "oof" sound. This should not be confused with the vanilla glitch discussed above.