Un fallo del motor de Doom es una limitación o una singularidad presente en el motor de Doom. Por errores en el diseño de mapas, incluso los relacionados con un tema específico a continuación, consulte el artículo sobre ese mapa.
Hay que tener en cuenta que al jugar con un source port es posible introducir otros errores que no figuran en esta lista (los detalles pueden estar presentes en el artículo sobre el source port de que se trate), aunque se quite una parte o incluso la mayoría de los errores que se indican a continuación.
Claves
Esta tabla clasifica las anomalías de una manera muy amplia, consulte los artículos individuales para obtener más detalles sobre cada uno de los errores.
Canónico
- Un error es verificado sólo cuando un programador de id Software actual o anterior lo ha calificado como un error en un medio público.
- Un error no verificado todavía puede ser indiscutible si es aceptado generalmente como un error o un problema por la comunidad de fans, en virtud de un acuerdo que involucra pruebas a fondo y la investigación sobre el fenómeno correspondiente y sus binarios asociados o código fuente.
- Un error es discutido si se puede argumentar que es una característica inofensiva y posiblemente intencional.
Causa
La categoría general del problema de fondo:
- La mayoría de los errores se deben a algoritmos que no tienen en cuenta todas las posibles entradas, aplican sentencias condicionales en una secuencia ilógica o tienen consecuencias imprevistas en situaciones de juego en particular.
- Algunos de éstos se derivan de errores tipográficos simples en el código fuente.
- La construcción incorrecta de linedefs, con etiquetas que han quedado huérfanos o texturas colocadas incorrectamente, también pueden inducir diversos comportamientos extraños.
- El motor de Doom incluye algunas salvaguardias contra condiciones de desbordamiento (overflow).
- Los cálculos de línea de visión, los algoritmos de representación y el árbol BSP también son susceptibles de errores de redondeo.
- El motor impone una serie de límites estáticos en la ubicación de las cosas y en la construcción de mapas, que a veces resuelven un problema creando otro.
Errores fatales
Son aquellos en los que el motor colapsa (a menudo con el efecto "Persiana veneciana"), o bien sale del juego de una manera controlada, por lo general con un mensaje de error.
- S* significa que la terminación es posible, pero no inevitable.
- N* significa que el programa sigue funcionando, pero que la prestación o el comportamiento de los personajes puede estar lo suficientemente comprometida como para que que jugabilidad se haga imposible.
Solucionable
Un error tiene una Solución si es posible evitarlo mediante compromisos razonables en el diseño del mapa, como hacer coincidir todas las etiquetas linedef a por lo menos un sector, pero no al retirar invulnerabilidades de cada nivel que contiene una textura de cielo, o también por las precauciones convenientes y otros medidas adoptadas por el usuario del programa, por ejemplo, aumentando la sensibilidad del mouse a través del archivo de configuración en lugar de utilizar el menú.
- S significa que el error sólo puede evitarse haciendo que el propio mapa sea más pequeño o menos complejo.
Escapatoria
Un error es un Escape (loophole) si puede ser usado como una ventaja por parte del jugador (especialmente durante Alta velocidad (speedrun) o en modo multijugador Deathmatch).
v1.9
Algunos errores aparecen sólo en las versiones de Doom anteriores a la v1.9, y han sido detallados en una tabla separada haciendo mención a la versión en dónde se corrigen.
Presentes en Doom II v1.9 para DOS
Fenómeno | Canónico | Causa | Fatal? | Solución? | Escape? |
---|---|---|---|---|---|
Indiscutible | Algoritmo | N | N | N | |
Indiscutible | Algoritmo | N | N | S | |
Discutido | Algoritmo | N | N | S | |
Discutido | Algoritmo | N | N | N | |
Indiscutible | Algoritmo | N | S | N | |
Indiscutible | Límite estático | N | N | S | |
Indiscutible | Overflow | N* | S | N | |
Verificado | Tipográfico | N | N | N | |
|
Indiscutible | Algoritmo | N | N | N |
Discutido | Algoritmo | N | N | S | |
N | N | S | |||
Indiscutible | Límite estático | N | N | N | |
Discutido | Límite estático | N | N | N | |
Indiscutible | Algoritmo | N | N | S | |
Indiscutible | Límite estático | N | S | N | |
Indiscutible | Límite estático | S | S | N | |
Indiscutible | Límite estático | S | S | N | |
Indiscutible | Algoritmo | N | N | S | |
Indiscutible | Algoritmo | N* | S | N | |
|
Indiscutible | Linedef | N | S | N |
|
Indiscutible | Algoritmo | N | S | N |
Indiscutible | Linedef | N | S | N | |
N | N | N | |||
Algoritmo | N | N | N | ||
Indiscutible | Multiple | S | N | N | |
|
Indiscutible | Overflow | S | S | N |
Indiscutible | Algoritmo | N | N | S | |
Indiscutible | Overflow | N | N | S | |
Discutido | Algoritmo | N | S | N | |
Indiscutible | Algoritmo | N | N | N | |
|
Discutido | Algoritmo | N | N | |
Discutido | Algoritmo | N | N | N | |
Algoritmo | N | N | N | ||
|
Indiscutible | Algoritmo | N* | N | N |
|
Indiscutible | S | S | N | |
Discutido | N | N | N | ||
Indiscutible | Límite estático | N | N | S | |
Indiscutible | Linedef | S | S | N | |
Indiscutible | Límite estático | N | S | N | |
|
Límite estático | S | N | ||
Indiscutible | Límite estático | S | S | N | |
|
Límite estático | N | N | N | |
S | S | N | |||
Discutido | Algoritmo | N | N | N | |
N | N | N | |||
Indiscutible | Algoritmo | N | N | N | |
Indiscutible | Overflow | N* | N | N | |
Indiscutible | Redondeo | N | N | S | |
Indiscutible | Algoritmo | N | N | S | |
Discutido | Algoritmo | N | N | ||
Indiscutible | Algoritmo | N* | S | N | |
Algoritmo | N | N | |||
Indiscutible | Algoritmo | N | N | N | |
Indiscutible | Algoritmo | N | N | N | |
Indiscutible | Algoritmo | N | N | S | |
Indiscutible | Algoritmo | S* | N | S | |
Indiscutible | Algoritmo | N | N | N | |
Indiscutible | Algoritmo | N | N | S | |
Discutido | Algoritmo | N* | N | S | |
Algoritmo | N | N | N | ||
Indiscutible | Redondeo | N | N | N | |
Discutido | Algoritmo | N | N | N | |
Indiscutible | Algoritmo | N | S | N | |
Indiscutible | Algoritmo | N* | N | N | |
Indiscutible | Algoritmo | N | N | S | |
Turning resolution is lowered when recording demos | Indiscutible | Límite estático | N | N | N |
Stairs create unknown sector types | Indiscutible | Algoritmo | S* | N | N |
Spawn fog in wrong location | Indiscutible | Tipográfico | N | N | N |
Spawn cubes miss east & west targets | Indiscutible | Algoritmo | N | S | N |
Sounds changing pitch on slow computers | N | N | |||
Sound effects behave differently on level 8 | Discutido | Algoritmo | N | N | N |
Some game options not preserved in saved games | Indiscutible | Algoritmo | N | N | N |
Sleeping Sergeant of Doom II MAP02 | Indiscutible | Tipográfico | N | N | |
Screen melt effect during Doom II cast sequence | Algoritmo | N | N | N | |
Savegame buffer overflow | Indiscutible | Límite estático | S | S | N |
Ranged attacks blocked by decorations | Discutido | Algoritmo | N | N | S |
Player face grins after restoring savefile | Discutido | Algoritmo | N | N | N |
Picked up a medikit that you REALLY need! | Indiscutible | Tipográfico | N | N | N |
Numeric overflow crash in tall areas | Indiscutible | Overflow | S* | S | N |
Non-Newtonian motion of corpses | Discutido | Algoritmo | N | N | S |
Monsters attacking across tall ledges | Discutido | Algoritmo | N | N | N |
Mancubus fireball clipping | Indiscutible | Algoritmo | N | N | N |
Lost soul colliding with items | Indiscutible | Algoritmo | N | N | S |
Long wall error | Indiscutible | Redondeo | N | S | N |
joyb_speed magic numbers | Overflow | N | S | S | |
IDMUS requests invalid music | Algoritmo | S | N | N | |
Hitscan attacks hit invisible barriers in large open areas | Algoritmo | N | |||
Gamma correction resets palette | Indiscutible | Algoritmo | N | N | S |
Frag count rollover | Overflow | N | N | N | |
Floors and ceilings moving silently | Indiscutible | N | N | S | |
Flawed collision detection | Indiscutible | Algoritmo | N | N | |
Fast doors reopening with wrong sound | Discutido | Algoritmo | N | N | N |
Fast doors make two closing sounds | Indiscutible | Algoritmo | N | N | N |
Excessive scrolling texture overflow | Overflow | S | S | N | |
Demo desyncing caused by menu access | Indiscutible | Algoritmo | N | N | N |
Demo desyncing caused by bouncing lost souls | Indiscutible | Algoritmo | N | N | N |
Chaingun makes two sounds firing single bullet | Indiscutible | Algoritmo | N | N | N |
Presentes en versiones anteriores a Doom II v1.9 para DOS
Fenómeno | Canónico | Causa | Fatal? | Solucionado | Solución? | Escape? |
---|---|---|---|---|---|---|
El juego en red se bloquea cuando se usa una tarjeta de sonido | Verificado | S | S | N | ||
Error de mouse PS/2 | Verificado | 1.666 | ||||
Error patrón de Moiré | Indiscutible | Desborde | N* | 1.4 | S | N |
Exceso de armadura (armor percentage rollover) | Indiscutible | Límite estático | N* | 1.25? | S | N |
Interruptores y elevadores desactivados al restaurar un juego guardado | Verificado | Algoritmo | N | N | N | |
Juego en red se bloquea con 3 o 4 jugadores | Verificado | S | S | N | ||
Las ranuras Savegame 5 y 6 corrompen otros archivos | Verificado | N | N | |||
Monstruos aplastados bloquean el movimiento del jugador | Verificado | Algoritmo | N | N | N | |
No funciona IRQ2 | Verificado | 1.2 | ||||
No se puede seleccionar el nivel de dificultad en algunos juegos en red | Verificado | N | ||||
Objetos reaparecen con bandera de recolección desactivada | Verificado | Algoritmo | N | |||
Problemas de recorte con Almas perdidas | Indiscutible | Algoritmo | N | 1.9? | N | N |
Proyectiles activan linedefs | Verificado | Algoritmo | N | 1.4 | N | S |
Salud limitada a 199 | Algoritmo | N | 1.25? | N | N | |
Suicidio por barril | Indiscutible | Algoritmo | N | 1.5? | N | S |
Transmisión de paquetes de difusión | Verificado | N* | 1.2 | N | ||
Volver a abrir una puerta abierta después de cargar un juego guardado causa un bloqueo | Verificado | Algoritmo | S | 1.2 | N | N |
Z_Malloc | Verificado |