Engine bug

From DoomWiki.org

Revision as of 08:18, 22 December 2008 by Who is like God? (talk | contribs) (Key: Article moved)


A Doom engine bug is a limitation or an oddity present in the Doom engine. For errors in map design, even those related to a specific item below, see the article about that map.

Note that playing with a source port may, while removing some or even the majority of the bugs listed below, introduce other bugs which are not listed here (although details may be present in the article about the source port in question).

Key

This table classifies anomalies in a very broad way; see the individual articles for details.

  • Canonicity — A bug is verified only when a current or former id Software programmer has called it a bug in a public medium. An unverified bug may still be undisputed if it is generally accepted as an error or issue by the fan community under a consensus involving thorough playtesting and research on the corresponding phenomenon and any associated binaries or source code. A bug is disputed if it can be argued to be a harmless and possibly intentional feature.
  • Cause — The general category of underlying problem:
    • Most bugs are due to algorithms which fail to account for all possible inputs, apply conditional statements in an illogical sequence, or have unforeseen consequences in particular game situations.
      • A few of these arise from simple typos in the source code.
    • Improperly constructed linedefs, with orphaned tags or incorrectly placed textures, can also induce various strange behaviors.
    • The Doom engine includes few safeguards against overflow conditions.
    • Line-of-sight calculations, rendering algorithms, and the BSP tree are also susceptible to roundoff errors.
    • The engine imposes a number of static limits on Thing placement and map construction, which sometimes fix one problem by creating another.
  • Fatal bugs are those where the engine crashes (often with the Venetian blind effect) or else exits the game in a controlled fashion, usually with an error message. Y* means that termination is possible, but not inevitable. N* means that the program keeps running, but that rendering or character behavior may be sufficiently compromised that meaningful gameplay becomes impossible.
  • Fixed in 1.9 — Some bugs appear only in versions of Doom prior to v1.9.
  • A bug has a workaround if it can be avoided by reasonable compromises in map design, such as when matching every linedef tag to at least one sector, but not when removing invulnerabilities from every level containing a sky texture, or also by convenient precautions and other measures taken by the program user, such as when increasing the mouse sensitivity through the configuration file directly, instead of using the menu. S means that the bug can be avoided only by making one's map smaller or less complex.
  • A bug is a loophole if it can be abused to the player's advantage (especially during speedruns or deathmatches).
Phenomenon Canonicity Cause Fatal? Fixed in
1.9?
Workaround? Loophole?
(0,0) respawning bug Undisputed Algorithm N N N Y
AASTINKY and AASHITTY Undisputed Algorithm N N N N
All-ghosts effect Undisputed Overflow N* N N N
Armor percentage rollover Undisputed Static limit N* Y S N
Barrel explosions which do no damage Undisputed N N N N
Barrel suicide Undisputed Algorithm N Y N Y
Blast damage has unlimited vertical range Undisputed Algorithm N N N Y
Broadcast packet meltdown Verified N* Y N
Bullet puffs do not appear in outdoor areas Algorithm N N N
Chaingun makes two sounds firing single bullet Undisputed Algorithm N N N N
Crushed barrels leave behind a pool of blood Undisputed Algorithm N N Y N
Crushed monsters block player movement Algorithm N Y N N
Demo desyncing caused by bouncing lost souls Undisputed Algorithm N N N N
Demo desyncing caused by menu access Undisputed N N N N
Drawsegs overflow Undisputed Static limit N N S N
Elastic collisions with walls N N N Y
Fast doors make two closing sounds Undisputed Algorithm N N N N
Fast doors reopening with wrong sound Disputed Algorithm N N N N
Flawed collision detection Undisputed Algorithm N N N
Floors and ceilings moving silently Undisputed N N N Y
Frag count rollover N N N N
Gamma correction resets palette N N N Y
Ghost monsters Undisputed Algorithm N N N N
Hall of Mirrors effect (limit) Undisputed N N S N
Hall of Mirrors effect (missing texture) Undisputed Linedef N N Y N
Health percentage hysteresis in sector type 11 N N N N
Hitscan attacks hit invisible barriers in large open areas N
IDCLEV idiosyncrasies N N N N
IDMUS requests invalid music Y N N N
Invulnerability colormap bug Disputed N N N N
IRQ 2 does not work Verified Y
Items respawn with pickup flag off Verified N Y
Kill percentage flag used for -nomonsters and respawning Disputed Algorithm N* N N Y
Lift heights not preserved in saved games Undisputed N N N N
Linedefs can be activated regardless of player's Z position Undisputed Algorithm N N N Y
Long wall error Undisputed Roundoff N N S N
Lost soul charging backwards Disputed Algorithm N N N Y
Lost soul clipping problems Undisputed Algorithm N Y N N
Lost soul colliding with items Undisputed N N N Y
Lost soul limit Undisputed Static limit N N N Y
Lost soul target amnesia Disputed Algorithm N N N N
Lump size limit Static limit N S N
Mancubus fireball clipping Undisputed N N N N
Map size limit (blocks) Undisputed Static limit Y N S N
Map size limit (integer overflow) Static limit N N N N
Medusa effect Undisputed N* N Y N
Menu error with high mouse sensitivity Undisputed Y N Y N
Moiré error Undisputed N* Y S N
Monsters attacking across tall ledges Disputed Algorithm N N N N
Monsters fleeing Disputed Algorithm N N N
Monsters open locked doors Undisputed Roundoff N N N Y
Monsters stuck in doortracks, walls or hanging off lifts Undisputed Algorithm N N N Y
Moving platforms limit Undisputed Linedef Y N S N
Network game crashes with 3 or 4 players Verified Y Y N
Network play locks up when using a sound card Verified Y Y N
Noclip bug Undisputed N N N Y
Non-Newtonian motion of corpses Disputed Algorithm N N N Y
Ouch face Verified [1] Typo N N N N
Phantom fireball explosions Disputed N N N
Picked up a medikit that you REALLY need! Undisputed Typo N N N N
Player starts missing Undisputed Y N Y N
Player corpses walking Undisputed Overflow N* N Y N
Player stuck on ledge after restoring savefile N* N N N
Projectiles explode on impact with "sky" Algorithm N N N N
Projectiles triggering linedefs Verified N Y N Y
PS/2 mouse bug Verified Y
Ranged attacks blocked by decorations Disputed Algorithm N N N Y
Retriggering an open door after loading a savegame causes crash Verified Algorithm Y Y N N
Rocket passes through the player who fired it Disputed Algorithm N N N Y
Savegame buffer overflow Undisputed Static limit Y N S N
Savegame slots 5 and 6 corrupt other files Verified N Y N
Screen melt effect during Doom II cast sequence N N N N
Segfault/lightning flash near very tall structures Undisputed Overflow Y* N S N
Silent BFG trick Undisputed Static limit N N N Y
Skill level cannot be selected in some network games Verified N Y
Sky hack Undisputed Algorithm N N N N
Sky never changes in Doom II Undisputed Algorithm N N N N
Sleeping Sergeant of Doom II MAP02 Undisputed Typo N N N
Slime trails Undisputed Roundoff N N N N
Sludge Visplane not changing to other visplane in Doom 2 Lvl 13: The Factory when walked over Disputed N N N N
Some game options not preserved in saved games Undisputed N N N N
Sound cutoffs Disputed Static limit N N N N
Sound effects behave differently on level 8 Disputed Algorithm N N N N
Sounds changing pitch on slow computers N N
Spawn fog in wrong location Undisputed Typo N N N N
Spawn spots not preserved in saved games Undisputed Y* N N Y
Spechits overflow Undisputed Static limit Y N S N
Spider paralysis Undisputed Algorithm N N N Y
Sprites flickering across ledges or lifts Disputed N N N N
Stairs that can be ascended, but not descended Disputed N N Y N
Status bar face hysteresis Disputed Algorithm N N N N
Straferunning Undisputed Algorithm N N N Y
Switches and lifts deactivated when restoring a saved game Verified N Y N N
Tag 666 idiosyncrasies Undisputed Algorithm N N Y N
Tag 667 idiosyncrasies Undisputed Algorithm N* N N N
Targets not preserved in saved games Undisputed N N N Y
Teleporters in Final Doom don't set the Z coordinate Undisputed Algorithm N N N N
Turning resolution is lowered when recording demos Undisputed Static limit N N N N
Tutti-frutti effect Undisputed Linedef N N Y N
Venetian blind crash Undisputed Overflow Y N N N
Visible sprites limit Undisputed Static limit N N S N
Visplane overflow Undisputed Static limit Y N S N
Voodoo doll Undisputed N* N Y N
Wallrunning Undisputed Algorithm N N N Y
Weapon sprite offset N N N N
Wrong sound for exit switches N N N N
Wrong sound origin for button "popouts" N N N N
Wrong sound origin for switch/button presses N N N N
Z_Malloc error Verified Y

See also