Difference between revisions of "Chocolate Doom"

From DoomWiki.org

[unchecked revision][checked revision]
(e)
(Tags: Mobile edit, Mobile web edit)
m (Automated edit - italicize Cat3D)
 
(20 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{InfoboxSourcePort
+
{{InfoboxSoftware
 
|title = Chocolate Doom
 
|title = Chocolate Doom
 +
|standard = Bug-compatible [[Vanilla Doom]]
 
|developer = [[Simon Howard (Fraggle)|Simon Howard]], [[Fabian Greffrath]], [[James Haley (Quasar)|James Haley]], [[Samuel Villarreal (Kaiser)|Samuel Villarreal]]
 
|developer = [[Simon Howard (Fraggle)|Simon Howard]], [[Fabian Greffrath]], [[James Haley (Quasar)|James Haley]], [[Samuel Villarreal (Kaiser)|Samuel Villarreal]]
 
|baseparent = [[Linux Doom]] 1.10<br/>
 
|baseparent = [[Linux Doom]] 1.10<br/>
 
[[Heretic]] 1.3<br/>
 
[[Heretic]] 1.3<br/>
 
[[Hexen]] 1.2
 
[[Hexen]] 1.2
|logo = [[File:Chocolate Doom Icon.png|70px]]
+
|logo = [[File:Chocolatedoom2022.png]]
|screenshot = [[Image:Chocolate-doom-windows.png|200px]]
+
|screenshot = [[File:Chocolate-doom-windows.png|200px]]
 
|caption = Chocolate Doom running in {{wp|Microsoft Windows|Windows}} at 640x480 via [[aspect ratio]] correction.
 
|caption = Chocolate Doom running in {{wp|Microsoft Windows|Windows}} at 640x480 via [[aspect ratio]] correction.
|programming language = {{wp|C (Programming Language)|C}}
+
|programming language = {{wp|C (programming language)|C}}
 
|status = Active
 
|status = Active
 
|initialversion = 0.0.1
 
|initialversion = 0.0.1
Line 15: Line 16:
 
|license = {{GPL||2+}}
 
|license = {{GPL||2+}}
 
|website = [https://www.chocolate-doom.org chocolate-doom.org]
 
|website = [https://www.chocolate-doom.org chocolate-doom.org]
|ircchannel = [irc://irc.oftc.net/chocolate-doom OFTC #chocolate-doom]
 
 
|repotype = Git
 
|repotype = Git
 
|repourl = [https://github.com/chocolate-doom/chocolate-doom GitHub]
 
|repourl = [https://github.com/chocolate-doom/chocolate-doom GitHub]
Line 26: Line 26:
 
The name is a pun on the phrase ''vanilla Doom''. Originally only a Doom source port, the project has since expanded to include equivalent ports of Heretic, Hexen, and Strife. The latter involved large scale reverse engineering of the DOS Strife executables by [[James Haley (Quasar)]] and [[Samuel Villarreal (Kaiser)]], a project that subsequently led to a commercial re-release of the game in the form of [[Strife: Veteran Edition]].
 
The name is a pun on the phrase ''vanilla Doom''. Originally only a Doom source port, the project has since expanded to include equivalent ports of Heretic, Hexen, and Strife. The latter involved large scale reverse engineering of the DOS Strife executables by [[James Haley (Quasar)]] and [[Samuel Villarreal (Kaiser)]], a project that subsequently led to a commercial re-release of the game in the form of [[Strife: Veteran Edition]].
  
e
+
== Philosophy ==
 +
 
 +
Chocolate Doom's philosophy is documented in a [https://github.com/chocolate-doom/chocolate-doom/blob/master/PHILOSOPHY.md philosophy document] that describes its design. In particular, it aims for:
 +
 
 +
* [[Demo]] compatibility
 +
* [[Save game]] compatibility
 +
* [[Engine bug|Bug]] compatibility (it should be subject to the same limits as vanilla Doom)
 +
* Compatible [[configuration file]]s.
 +
 
 +
The port deliberately maintains the original [[static limits]] in order to be useful to level designers. As most ports fix [[engine bug]]s, designing a level to work for vanilla Doom usually requires using the DOS vanilla Doom executable to test the level; however, this requires an MS-DOS-based system or an emulator such as [[DOSBox]] in order to run properly. Chocolate Doom provides the same functionality under modern operating systems. Furthermore, the fact that it is much closer to the original source code means that it may be useful in the future as a tool for checking demo compatibility in other ports.
 +
 
 +
Chocolate Doom is based on {{wp|Simple DirectMedia Layer|SDL}} which makes it portable across multiple operating systems. It runs on {{wp|Microsoft Windows}} and {{wp|Unix-like|Unix-like OSes}}. Daily "bleeding edge" builds containing the latest features available from the git repository are available [http://latest.chocolate-doom.org/ on an autobuilds website] that also builds the latest version of [[Crispy Doom]].
 +
 
 +
Unlike other source ports which include in-game configuration, Chocolate Doom retains the model used in the DOS versions, and most configuration options must be changed using a separate setup tool. The setup tool mimics the appearance of the original Doom [[setup program]].
  
 
== Game support ==
 
== Game support ==
Line 63: Line 76:
 
* Chocolate Doom version 1.3.0 (released February 10, 2010) provided support for {{wp|Windows Embedded Compact|Windows CE}}, allowing it to run on various devices that run this operating system, including GPS recievers, oscilloscopes, {{wp|ARM}} based laptops and set-top boxes, {{wp|Pocket PC}} based devices (including ticket scanners) and {{wp|Windows Mobile}} phones. Support was removed with the next release.
 
* Chocolate Doom version 1.3.0 (released February 10, 2010) provided support for {{wp|Windows Embedded Compact|Windows CE}}, allowing it to run on various devices that run this operating system, including GPS recievers, oscilloscopes, {{wp|ARM}} based laptops and set-top boxes, {{wp|Pocket PC}} based devices (including ticket scanners) and {{wp|Windows Mobile}} phones. Support was removed with the next release.
 
* A number of other projects have been inspired by Chocolate Doom's philosophy, often reusing the word "Chocolate" in their name. These include:
 
* A number of other projects have been inspired by Chocolate Doom's philosophy, often reusing the word "Chocolate" in their name. These include:
** [https://github.com/InsanityBringer/ChocolateDescent Chocolate Descent], for ''{{wp|Descent (1995 video game)|Descent}}'' and ''{{wp|Descent II}}''
+
** [https://github.com/InsanityBringer/ChocolateDescent Chocolate Descent], for ''{{wp|Descent (video game)|Descent}}'' and ''{{wp|Descent II}}''
 
** [https://github.com/fabiensanglard/chocolate_duke3D Chocolate Duke 3D], for ''[[Duke Nukem 3D]]''
 
** [https://github.com/fabiensanglard/chocolate_duke3D Chocolate Duke 3D], for ''[[Duke Nukem 3D]]''
** [https://github.com/NY00123/refkeen/ Reflection Keen], a group of source ports for ''{{wp|Commander Keen in Keen Dreams}}'' as well as the [[Catacomb 3D]] and [[Wolfenstein 3D]] games, which was initially named "Chocolate Keen".
+
** [https://github.com/ReflectionHLE/ReflectionHLE ReflectionHLE] (formerly Reflection Keen), a group of source ports for ''{{wp|Commander Keen in Keen Dreams}}'' as well as the ''[[Catacomb 3D]]'' and ''[[Wolfenstein 3D]]'' games, which was initially named "Chocolate Keen".
 
** [https://github.com/Interrupt/systemshock Shockolate], for ''{{wp|System Shock}}'' (while also including an OpenGL renderer and several quality-of-life improvements)
 
** [https://github.com/Interrupt/systemshock Shockolate], for ''{{wp|System Shock}}'' (while also including an OpenGL renderer and several quality-of-life improvements)
  
Line 72: Line 85:
 
* [https://www.chocolate-doom.org/downloads/1.3.0/ Chocolate Doom 1.3.0 directory]. includes Windows CE archive
 
* [https://www.chocolate-doom.org/downloads/1.3.0/ Chocolate Doom 1.3.0 directory]. includes Windows CE archive
 
* [https://github.com/haikuports/haikuports/blob/master/games-fps/chocolate-doom/ Haiku OS port of Chocolate Doom]
 
* [https://github.com/haikuports/haikuports/blob/master/games-fps/chocolate-doom/ Haiku OS port of Chocolate Doom]
 +
* [https://github.com/chocolate-doom/chocolate-doom/releases/tag/chocolate-doom-3.0.0 Chocolate-Doom-3.0.0 release]
  
 
== See also ==
 
== See also ==
* [[Chocolate-doom (IRC channel)|#chocolate-doom]] ([[IRC]] channel)
 
 
* [[Chocolate Doom Plus]]
 
* [[Chocolate Doom Plus]]
  
Line 93: Line 106:
 
{{s-end}}
 
{{s-end}}
  
[[Category:Source ports]]
+
[[Category:Source ports by name]]
 
[[Category:Doom ports]]
 
[[Category:Doom ports]]
 
{{featured article}}
 
{{featured article}}

Latest revision as of 09:06, 9 February 2024

Chocolate Doom
Chocolatedoom2022.png
Chocolate-doom-windows.png

Chocolate Doom running in Windows at 640x480 via aspect ratio correction.

Standard Bug-compatible Vanilla Doom
Codebase Linux Doom 1.10

Heretic 1.3
Hexen 1.2

Developer(s) Simon Howard, Fabian Greffrath, James Haley, Samuel Villarreal
Initial release 0.0.1 (2005-09-07, 18 years ago)
Latest release 3.0.1 (2020-06-25, 3 years ago)
Development status Active
Written in C
Target Platform Cross-Platform
License GNU General Public License v2+
Website chocolate-doom.org
Source Repository

(Git)

GitHub

Chocolate Doom is a set of conservative source ports for Doom, Heretic, Hexen, and Strife, with a philosophy of preserving the look, feel, and bugs of the vanilla versions of each. Deliberately including very few new features and maintaining all of the limitations of the original DOS versions, Chocolate Doom is of use to level authors creating vanilla-compatible levels, as well as players seeking an authentically retro experience of the game as it was played in the 1990s.

Chocolate Doom was first started in 2005 by Simon Howard (Fraggle), who remains the project's maintainer. It is co-developed with Fabian Greffrath, who also maintains Crispy Doom, a derivative source port that closely follows Chocolate Doom development, adding features deemed out-of-scope for Chocolate Doom.

The name is a pun on the phrase vanilla Doom. Originally only a Doom source port, the project has since expanded to include equivalent ports of Heretic, Hexen, and Strife. The latter involved large scale reverse engineering of the DOS Strife executables by James Haley (Quasar) and Samuel Villarreal (Kaiser), a project that subsequently led to a commercial re-release of the game in the form of Strife: Veteran Edition.

Philosophy[edit]

Chocolate Doom's philosophy is documented in a philosophy document that describes its design. In particular, it aims for:

The port deliberately maintains the original static limits in order to be useful to level designers. As most ports fix engine bugs, designing a level to work for vanilla Doom usually requires using the DOS vanilla Doom executable to test the level; however, this requires an MS-DOS-based system or an emulator such as DOSBox in order to run properly. Chocolate Doom provides the same functionality under modern operating systems. Furthermore, the fact that it is much closer to the original source code means that it may be useful in the future as a tool for checking demo compatibility in other ports.

Chocolate Doom is based on SDL which makes it portable across multiple operating systems. It runs on Microsoft Windows and Unix-like OSes. Daily "bleeding edge" builds containing the latest features available from the git repository are available on an autobuilds website that also builds the latest version of Crispy Doom.

Unlike other source ports which include in-game configuration, Chocolate Doom retains the model used in the DOS versions, and most configuration options must be changed using a separate setup tool. The setup tool mimics the appearance of the original Doom setup program.

Game support[edit]

Chocolate Doom, as its name implies, was originally written with the intent to run the classic Doom series, and other games such as Chex Quest and Hacx that are only marginally different from Doom in game mechanics. This focus persisted throughout the 0.x and 1.x line of releases.

Heretic and Hexen[edit]

Support for the Raven Software Doom-engine games Heretic and Hexen began shortly after the Raven source code licensing situation was resolved in 2008, with the code for those games being relicensed under the GNU General Public License version 2.0. The development was done on a revision control branch named raven-branch, in parallel with the Doom-only code. Part of the goal of incorporating the code included restructuring Chocolate Doom so that common, generic code could be shared between all games, with game-specific code separated into sub-directories.

Strife[edit]

In early 2010, James Haley and Samuel Villarreal began an intensive reverse engineering project targeting the Rogue Entertainment game Strife: Quest for the Sigil, for which the source code has been lost. Working from the Doom and Heretic code and analyzing the game's internal logic with professional reverse engineering tools, a painstaking effort was made to reproduce the entire code base as accurately as possible. This development was done in a revision control branch called strife-branch, branched from and developed in parallel with raven-branch. Two beta releases were made from this branch during its development.

Chocolate Doom 2.0[edit]

Eventually, as both the Raven and Strife code matured, raven-branch and strife-branch were merged into a v2-branch in 2012, stabilizing and preparing the source code of all four games for release. This culminated in the release of Chocolate Doom 2.0.0 in December 2013.

Since the release of version 2.0.0, the name Chocolate Doom is used to refer both to the umbrella project as well as the Doom engine built from it. Chocolate Heretic, Chocolate Hexen, and Chocolate Strife refer to the engines for those games. Although developed in unison, each of these four programs constitute separate source ports in their own right.

Chocolate Doom 3.0[edit]

Chocolate Doom 3.0 was released in December 2017 as the culmination of the sdl2-branch project that ported the codebase to version 2 of the SDL library. This new release also introduced various other enhancements, such as hardware screen scaling, which replaced the software screen scaling code from earlier versions.

Extra features[edit]

In general there are few extra features included in Chocolate Doom, due to the nature and design goals of the port. The few extra features which do exist add functionality which was previously available in DOS tools. Some examples are:

  • Enhanced multiplayer support - although the gameplay is identical to that of vanilla Doom, the underlying multiplayer code has been rewritten to better support Internet play. A client-server mode is also available.
  • DeHackEd support, adding the functionality that the DOS dehacked program provided.
  • The ability to "merge" sprites and flats into the IWAD's list, adding the functionality that DeuTex and NWT provided and allowing many TCs to be played.
  • Compatibility with the Doom v1.91 turning resolution fix.
  • Mouse acceleration control, which was previously available through certain mouse drivers.
  • The ability to turn off vertical mouse movement. This was previously possible using a DOS program called "novert".
  • Compatibility with monitors that do not support the original screen resolution. Pixels are interpolated on higher resolutions to simulate 320x200, and the aspect ratio can be adjusted to 4:3.
  • OPL emulation using the Nuked OPL3 emulator.
  • Support for high quality soundtracks, due to poor MIDI support in many modern operating systems.
  • Support for gamepads - Chocolate Doom includes a number of configurations for common gamepad types. This makes it easier to play on a television set, game console, or portable device.

Trivia[edit]

External links[edit]

See also[edit]

Source code genealogy
Based on Name Base for
Linux Doom 1.10 Chocolate Doom Chocorenderlimits
Heretic 1.3 Competition Doom
Hexen 1.2 Crispy Doom
Doom Retro
Strife 1.31 Strawberry Doom
Strife: Veteran Edition