Doom Wiki
Advertisement
Doom Wiki

El código fuente de Doom fue lanzado 23 de diciembre 1997, inicialmente bajo una licencia sin fines de lucro. Más tarde, se le concedió permiso para volver a liberar el código fuente bajo la GNU GPL en el 3 octubre de 1999.

Antes de la liberación, el código fuente fue ordenado por Bernd Kreimeier, que realizó una limpieza de los archivos del código fuente; la liberación original incluye una lista de cambios con sus contribuciones. También se incluyeron varios archivos de documentación. El plan original para la liberación del código fuente involucraba un libro que Kreimeier era escribir en el motor de Doom; sin embargo, debido a la disminución de la relevancia de la comunidad de jugadores de Doom, finalmente se pensó que no era una idea comercializable y el proyecto fue abandonado. A continuación, el código fuente fue liberado al público.

Debido a problemas legales con respecto a la biblioteca de sonido DMX desarrollada por Paul Radek que se utilizó en Doom, la liberación fue del código fuente al puerto Linux de la condenación. A pesar de ello, dentro de varios meses, varios puertos se habían hecho volver a DOS. Como resultado, existen muchos source ports.

Estructura del código fuente

El código fuente se puede dividir en secciones. Los archivos y funciones dentro del código fuente tienen prefijos de una o de dos letras para denotar su subsistema:

AM_* Código del Automapa
D_* Inicialización / código general
F_* "Finale" (final de la partida) y el código del fundido de pantalla
G_* Bucle de juego principal / de control
HU_* Panel de avisos
I_* Código específico de sistema
M_* Varios (incluye el menú)
P_* Lógica del juego / comportamiento
R_* Motor de renderizado
S_* Código de sonido
ST_* Barra de estado
V_* Representación gráfica general
WI_* Pantalla intermedia de fin de nivel
W_* Carga de archivos WAD
Z_* Sistema de asignación de zonas de memoria

Los siguientes son los prefijos comunes para las funciones, aunque no denotan un subsistema particular y no hay archivos con estos prefijos:

A_* Funciones de acción invocadas en los frames de movimiento de sprites (éstas son las funciones utilizadas en "punteros de código" DeHackEd)
PIT_* Funciones de devolución de llamada se pasan a P_BlockThingsIterator (ver p_maputl.c)
T_* Funciones "Pensador" establecidas para ser llamado cada tic de reloj para algún propósito (por ejemplo, plataformas móviles o luces parpadeantes)

Doom Classic

En Doom 3: BFG Edition se incorporó el port "Doom Classic" que permite jugar también a The Ultimate Doom y Doom II en máquinas con versiones de 32 y 64 bits de Windows, en la Xbox 360 y en la PlayStation 3. Se introdujeno algunos cambios realizados al código fuente y al empaquetado. Los más destacados son:

  • Los errores introducidos en el código de LinuxDoom por la "limpieza" y los cambios de Bernd Kreimeier están ausentes.
  • MUS2MIDI y TiMidity se incorporan para la reproducción MIDI, en lugar de utilizar DMX.
  • Algunos límites estáticos se han planteado, en particular visplanes y drawsegs para dar cabida a los niveles de Doom II: No Rest for the Living.
  • Varios #defines se han sacado de sus archivos originales e introducidos en Precompiled.h o defs.h (ambos archivos nuevos).
  • Los agregados Master Levels for Doom II y No Rest for the Living son manejados como packs de misiones igual que TNT: Evilution y Plutonia.
  • El archivo de idioma francés está todavía presente pero vacío, el francés se retira de la enumeración en language_t.
  • El código está disponible bajo las licencias GPLv3 o posterior.

Nota: esto no se debe confundir con el port iOS también llamado Doom Classic.

Lista

Enlaces externos

Advertisement