Chocolate Doom es una portación o source port para Doom desarrollado por Simon Howard (''Fraggle'') desde el año 2005. Su nombre es una broma en referencia a la expresión "Vanilla Doom". A diferencia de otras portaciones, que tratan de corregir los errores del motor original y añadir nuevas características, Chocolate Doom intenta deliberadamente comportarse lo más fielmente posible como el original.
Chocolate Doom se basa en LibSDL que lo hace portable a múltiples sistemas operativos. Se ejecuta en sistemas operativos tanto tipo Unix como Microsoft Windows.
Está desarrollado conjuntamente con Fabian Greffrath, quien también mantiene Crispy Doom, una portación derivada que sigue de cerca el desarrollo de Chocolate Doom, agregando características consideradas fuera del alcance de Chocolate Doom.
Objetivos[]
Originalmente solo era una portación de Doom, pero desde entonces el proyecto se ha expandido hasta incluir portaciones equivalentes de Heretic, Hexen y Strife. Este último juego implicó ingeniería inversa a gran escala de los ejecutables Strife de DOS, un proyecto que posteriormente condujo a una reedición comercial del juego en forma de Strife Veteran Edition.
Los objetivos Chocolate Doom están expresados en un documento que describe la filosofía de su diseño. En particular, Chocolate Doom apunta a:
- Compatibilidad de las demo con Doom v1.9 de DOS
- Compatibilidad de guardado del juego con Doom v1.9 de DOS
- Compatibilidad de errores con Doom v1.9 de DOS (que debe estar sujeto a los mismos límites que Vanilla Doom)
- Compatibilidad con los archivos de configuración Doom v1.9 de DOS.

Chocolate Doom corriendo en Windows a 640x480 mediante la corrección de relación de aspecto.
La portación mantiene deliberadamente los límites originales de Vanilla Doom con el fin de ser útil para los diseñadores de niveles. Como la mayoría de las portaciones corrigen los errores de Doom, el diseño de un nivel a trabajar para Vanilla Doom por lo general requiere el uso del ejecutable Vanilla Doom DOS para poner a prueba el nivel. Sin embargo, esto requiere un sistema basado en MS-DOS o un emulador como DOSBox para ejecutarse correctamente.
Chocolate Doom se basa en SDL, lo que lo hace portátil en múltiples sistemas operativos. Se ejecuta en Microsoft Windows y sistemas operativos similares a Unix. Las compilaciones diarias de "última generación" que contienen las últimas características disponibles en el repositorio de git están disponibles en un sitio web de autocompilaciones que también compila la última versión de Crispy Doom.
Chocolate Doom proporciona la misma funcionalidad en los sistemas operativos modernos. Además, el hecho de que es mucho más cercano al código fuente original significa que puede ser útil en el futuro como una herramienta para comprobar la compatibilidad de demostración en otras portaciones.
A diferencia de otras portaciones que incluyen configuración en el juego, Chocolate Doom conserva el modelo utilizado en las versiones de DOS, y la mayoría de las opciones de configuración deben cambiarse utilizando una herramienta de configuración separada. La herramienta de configuración imita la apariencia del programa de instalación original de Doom.
Instalación[]
Una herramienta "Chocolate Setup" acompaña a la portación y se puede utilizar para configurarla.
La herramienta de configuración imita la apariencia del programa original de instalación del Doom, y proporciona una funcionalidad equivalente, con el apoyo de algunas de las funciones más avanzadas de Chocolate Doom. Se basa en libtextscreen, una biblioteca de Chocolate Doom que emula el modo de visualización de texto de DOS.
Menú de configuración[]
El programa de instalación está basado en menús. El menú principal proporciona opciones de configuración para varias de las características principales:
- Configure Display - cómo se muestra Chocolate Doom: si el juego debe funcionar en pantalla completa o en una ventana, y la resolución a usar.
- Configure Sound - las diversas opciones diferentes para los efectos de sonido y música.
- Configure Keyboard - qué teclas se asignan a las funciones del juego.
- Configure Mouse - qué botones se asignan a las funciones del juego, además de otras características tales como la velocidad y la aceleración del ratón, si el movimiento vertical del ratón está activado, etc.
- Configure Gamepad/Joystick - permite configurar los botones de un dispositivo de juego para asignar a las funciones del juego, etc.
- Compatibility - un pequeño conjunto de opciones de compatibilidad que se puede desactivar si no se desea la simulación minuciosamente exacta del comportamiento de Vanilla Doom.
- Multiplayer configuration - nombre del jugador y las macros de chat.
Lanzamiento de juegos[]
El programa de instalación también se puede utilizar como un lanzador básico para ejecutar los juegos, en los modos multijugador y de un solo jugador.
Otros juegos[]
Como su nombre lo indica, Chocolate Doom fue escrito originalmente con la intención de ejecutar la serie clásica de Doom, y otros juegos tales como Chex Quest y HacX que son sólo ligeramente diferentes de Doom en la mecánica del juego. Este enfoque persistió a lo largo de la línea de versiones 0.xy 1.x. Sin embargo, el proyecto ha crecido hasta incluir portaciones de Heretic, Hexen y Strife, otros juegos comerciales que se basan en el motor de Doom.
Heretic y Hexen[]
El soporte de los juegos de Raven Software basados en el motor Doom, Heretic y Hexen comenzó poco después de que se resolvió la situación de la licencia del código fuente en 2008, con el código de esos juegos licenciado bajo la GNU General Public License versión 2.0. El desarrollo se realizó en una rama de control de revisiones llamada rama-Raven, en paralelo con el código de Doom. Parte del objetivo de incorporar el código de Doom incluye la reestructuración de Chocolate para que el código común, genérico pueda ser compartido entre todos los juegos, con el código para los juegos específicos separados en subdirectorios.
Strife[]
A principios de 2010, James Haley y Samuel Villarreal comenzaron un proyecto de ingeniería inversa intensiva sobre el juego de Rogue Entertainment Strife: Quest for the Sigil, para el cual el código fuente original se ha perdido. Trabajando desde el código de Doom y Heretic y el análisis de la lógica interna del juego con herramientas profesionales de ingeniería inversa, se hizo un esfuerzo concienzudo para reproducir toda la base de código con la mayor precisión posible. Este desarrollo fue hecho en una rama de control de versiones llamado rama-Strife, ramificado desde y desarrollado en paralelo con la rama-Raven. Dos versiones beta se hicieron de esta rama durante su desarrollo.
Chocolate Doom 2.0[]
Finalmente, a medida que el código de Raven y Strife maduró, la rama-Raven y la rama-Strife se fusionaron en una rama v2 en 2012, estabilizando y preparando el código fuente de los cuatro juegos para su lanzamiento. Esto culminó con el lanzamiento de Chocolate Doom 2.0.0 en diciembre de 2013.
Desde el lanzamiento de la versión 2.0.0, el nombre Chocolate Doom se utiliza para referirse tanto al proyecto general como al motor Doom construido a partir de él. Chocolate Heretic, Chocolate Hexen y Chocolate Strife se refieren a los motores de esos juegos. Aunque se desarrollaron al unísono, cada uno de estos cuatro programas constituye portaciones separadas por derecho propio.
Chocolate Doom 3.0[]
Chocolate Doom 3.0 se lanzó en diciembre de 2017 como la culminación del proyecto rama-sdl2 que portó el código base a la versión 2 de la biblioteca SDL. Esta nueva versión también introdujo varias otras mejoras, como el escalado de pantalla de hardware, que reemplazó el código de escalado de pantalla de software de versiones anteriores.
Trivia[]
- Chocolate Doom v1.3.0 brindó soporte para Windows CE, lo que le permite ejecutarse en varios dispositivos que ejecutan este sistema operativo, incluidos receptores GPS, osciloscopios, computadoras portátiles y decodificadores basados en ARM, dispositivos basados en Pocket PC (incluidos escáneres de billetes) y teléfonos Windows Mobile. El soporte se eliminó con la siguiente versión.