Doom Engine

El código fuente para la versión Doom de Linux fue lanzado al público en 1997 bajo una licencia que garantiza los derechos de uso del motor mientras no sea para uso comercial, y fue relanzado bajo la licencia GNU en 1999.

Esta limitación tiene su ventaja: puede mostrarse fácilmente un "Modo Mapa", el cual representa las paredes y la posición del jugador, tal como se muestra en la imagen de la derecha.

Las texturas altas y bajas son usadas para llenar los huecos cuando sectores adyacentes tienen diferente altura con respecto al suelo o al techo: por ejemplo las texturas bajas son usadas para escalones.

Finalmente, hay una lista de objetos en el nivel que en Doom son conocidas como cosas ("things").

Estas son usadas para situar al jugador, monstruos, powerups, etc. Cada cosa tiene una coordenada en 2D, como ocurre con los vértices.

En cada rama del árbol hay una línea divisoria la cual particiona el nodo en dos subnodos.

Las hojas del árbol son polígonos convexos, donde no es útil dividir el nivel.

Todas las paredes en Doom son dibujadas verticalmente, es por eso que no es posible mirar arriba y abajo adecuadamente.

Esto se hace incrementando la resolución vertical, y luego colocando una "ventana" en ese espacio.

En cuanto el motor gráfico llega a una pared sólida (de un lado) en alguna coordenada x en particular, no se necesitan dibujar más líneas en esa área.

Cada posición x en el visplano tiene una línea vertical particular de textura que debe ser dibujada.

En el rango horizontal donde el cuadrado más cercano es dibujado 2 visplanso se necesitan para el suelo circundante.

DOOM contiene un límite estático respecto al número de visplanos que puede manejar, si se excede de ese número el programa colapsara y devolverá un mensaje en DOS: "No more visplanes!".

Debido al modo en que trabaja, el sistema depende de los segs hayan sido renderizados en orden por el motor gráfico en general.

Hay un detalle final en las texturas medias en líneas de 2 lados, usadas en barras transparentes por ejemplo.

Una disposición simple mostrando como Doom representa los niveles internamente.