Difference between revisions of "Visplane overflow"

From DoomWiki.org

[unchecked revision][checked revision]
(slight rewording of "see also" bit at end)
m (Automated edit - rm .zip to avoid legacy redirect)
(13 intermediate revisions by 7 users not shown)
Line 1: Line 1:
The '''Visplane Overflow''' is a fatal error that occurs in [[Vanilla Doom]] when there are more than 128 unique floor and ceiling surfaces (''visplanes'') on the screen simultaneously. The restriction on the number of visible visplanes was eliminated completely in [[BOOM]]. Removal of the the visplane limit is a standard feature of almost all modern [[source port]]s.  For technical information about visplanes, see the [[Doom rendering engine]] article.
+
The '''visplane overflow''' is a fatal error that occurs in [[vanilla Doom]] when there are more than 128 unique floor and ceiling surfaces (''visplanes'') on the screen simultaneously.
  
[[Category: Doom engine]]
+
Laying out a floor in a checkerboard pattern of alternating floor textures is the simplest way of triggering a visplane overflow. The demonstration level {{idgames|file=levels/doom/g-i/gridwad|title=GRID1212.wad|linkonly=1}} from April 1994 contains the earliest documented example of this (along with correspondence with id reporting the problem), although in earlier versions of the engine a [[hall of mirrors effect]] was triggered instead of a crash.
 +
 
 +
[[BSP (node builder)|BSP v2.2]] added features to detect and prevent visplane overflows, by changing how [[subsector]]s are laid out. It used a heuristic which was based on guesses about the true causes of visplanes, and which was tested against actual [[WAD]]s, in some cases positively identifying the exact location the player would need to be to cause a visplane overflow. When the exact cause of visplane overflows was found and fixed -- after the release of the Doom source code -- BSP v3.0 removed the code which attempted to guess about them, and left only the code which helped prevent them from affecting earlier versions of Doom.
 +
 
 +
''[[Hexen]]'' raised the visplane limit to 160; and ''[[Strife]]'' to 200. [[Boom]] removed the restriction altogether by replacing the visplane array with a hash of 128 linked lists of visplanes. Removal of the visplane limit is a standard feature of almost all modern [[source port]]s.  For technical information about visplanes, see [[Doom rendering engine]].
 +
 
 +
In the Classic Doom port which accompanies ''[[Doom 3: BFG Edition]]'', the visplane limit is raised to 384 so as to accommodate [[No Rest for the Living]].
 +
 
 +
==External links==
 +
*[https://web.archive.org/web/20111113012020/http://rome.ro/lee_killough/editing/visplane.shtml The Truth About Visplane Overflows], from Lee Killough's website (archived)
 +
 
 +
[[Category:Doom engine]]
 
[[Category:Errors and bugs]]
 
[[Category:Errors and bugs]]

Revision as of 04:26, 27 April 2020

The visplane overflow is a fatal error that occurs in vanilla Doom when there are more than 128 unique floor and ceiling surfaces (visplanes) on the screen simultaneously.

Laying out a floor in a checkerboard pattern of alternating floor textures is the simplest way of triggering a visplane overflow. The demonstration level GRID1212.wad from April 1994 contains the earliest documented example of this (along with correspondence with id reporting the problem), although in earlier versions of the engine a hall of mirrors effect was triggered instead of a crash.

BSP v2.2 added features to detect and prevent visplane overflows, by changing how subsectors are laid out. It used a heuristic which was based on guesses about the true causes of visplanes, and which was tested against actual WADs, in some cases positively identifying the exact location the player would need to be to cause a visplane overflow. When the exact cause of visplane overflows was found and fixed -- after the release of the Doom source code -- BSP v3.0 removed the code which attempted to guess about them, and left only the code which helped prevent them from affecting earlier versions of Doom.

Hexen raised the visplane limit to 160; and Strife to 200. Boom removed the restriction altogether by replacing the visplane array with a hash of 128 linked lists of visplanes. Removal of the visplane limit is a standard feature of almost all modern source ports. For technical information about visplanes, see Doom rendering engine.

In the Classic Doom port which accompanies Doom 3: BFG Edition, the visplane limit is raised to 384 so as to accommodate No Rest for the Living.

External links