Long wall error

From DoomWiki.org

Revision as of 21:47, 30 December 2008 by Janizdreg (talk | contribs) (capitalization, minor rewording, misc tweaks)


The long wall error in a custom WAD file. 2 sectors: Sector 0 is 32768 units long by 512 units wide and Sector 1 is a dummy sector with 91 equidistant units.
The long wall error in a custom WAD file. 2 sectors: Sector 0 is 32768 units long by 512 units wide and Sector 1 is a dummy sector with 91 equidistant units.

Long wall error refers to a bug which occurs when unusually long linedefs are present in a level. Such lines may appear to shift back and forward as the player moves relative to them.

The effect can only be seen on veritably long walls (greater than 1024 units) composed of a single linedef. Greater lengths accentuate the effect more. The problem can be avoided by breaking long walls into multiple linedefs.

Technical

The effect is caused by loss of precision in calculations internal to the rendering engine. Doom internally uses fixed-point arithmetic to perform calculations, for speed. As these fixed-point numbers have a limited range, incredibly long walls can cause a loss of precision, leading to the wall being rendered at the wrong location. In extreme cases (walls of greater than 10000+ units in length), collision detection stops, and things are able to pass right through a wall.

Example

  • LOGO.WAD is a deathmatch PWAD from 1994 that consists of four large rooms modelled on the letters of the Doom logo. The leftmost wall of the letter D and the rightmost wall of the letter M exhibit the long wall error; the author mentions the bug in the WAD's text file.