Doom Wiki
Doom Wiki


En Doom II, hay tres imágenes de fondo utilizadas para mostrar el cielo en diferentes secciones del juego. La primera imagen de cielo (SKY1) se utiliza para los niveles que van del 1 hasta el 11, el segundo (SKY2) para los niveles del 12 al 20, mientras que el tercero (SKY3) se usa para los niveles 21 al 32.

Debido a un error en la forma en que se determina la imagen que se muestra, el cielo nunca cambiará como resultado de una transición entre los niveles. Por ejemplo, si un jugador fuera a jugar a través de los 32 niveles de Doom II sin tener que recargar una partida guardada, el cielo nunca cambiaría desde el cielo nublado marrón (SKY1) que se encuentra en MAP01.

Ya que las transiciones entre las texturas de cielo se rompe durante el juego, un jugador puede conseguir tener el cielo correcto para cualquier nivel posterior a MAP11 solamente mediante el uso del cambio de nivel tramposo idclev, mediante la recarga de un juego previamente guardado o bien iniciando el juego desde la línea de comandos con los parámetros de línea de comandos -warp, -record, -playdemo o -timedemo. Sin embargo, a causa del error, los niveles siguientes alcanzados durante esa sesión de juego mostrarán el cielo que tenía cargado el nivel de acceso. Debido a que es inusual que alguna persona pueda jugar el juego completo en una sola sesión, el efecto del error no se nota tan fácilmente.

Una manera fácil de demostrar este error en Doom II es saltar a MAP11 y completar el nivel. Cuando se inicia MAP12, el cielo seguirá siendo el mismo cielo marrón usado para MAP01-MAP 11. Si se salta a MAP12 directamente (por medio del truco idclev, el parámetro -warp o cargando una partida guardada), se muestra el fondo correcto del cielo "horizonte de la ciudad".

Aspectos técnicos[]

El código que establece el cielo se encuentra en g_game.c, en la función G_InitNew. Esta se llama cuando se inicia un nuevo juego, por ejemplo, usando el truco idclev, eligiendo un nuevo juego desde el menú o cuando se carga un juego guardado. Sin embargo, esta función no se llama al comienzo de cada nivel, sólo en el arranque inicial del juego.

El problema surge porque el código es una extensión al código usado para establecer el cielo por Doom. En el original Doom, esto no fue un problema, ya que cada episodio tiene un fondo de cielo separado, y los jugadores no progresan entre los episodios sin iniciar un nuevo juego.

Sin embargo, en el código fuente de Doom liberado, se añadió código adicional a G_LoadLevel para establecer el cielo. Debido a esto, la mayoría de los source ports tampoco presentan el error. También se soluciona en el ejecutable incluido en la id Anthology con Final Doom.

Véase también[]