Comparison of source ports
From DoomWiki.org
Below is a rough comparison of the source ports that are currently active and popular.
Contents
Comparison by general information
Name | Latest version | Latest release date (yyyy-mm-dd) | Origin |
---|---|---|---|
Chocolate Doom | 3.0.1 | 2020-06-25 (3 years ago) | Doom/Heretic/Hexen source code |
Crispy Doom | 6.0 | 2023-03-31 (12 months ago) | Chocolate Doom |
DelphiDoom | 2.0.7.733 | 2022-04-14 (2 years ago) | Doom/Heretic/Hexen source code, Chocolate Strife |
Doomsday | 2.3.1 | 2021-02-04 (3 years ago) | Doom/Heretic/Hexen source code |
Doom Legacy | 1.48.14 | 2023-12-29 (3 months ago) | DOSDoom |
Doom Retro | 5.3 | 2024-03-03 (47 days ago) | Chocolate Doom |
3DGE | 3DGE/Version | EDGE | |
Eternity | 4.02.00 | 2021-01-27 (3 years ago) | SMMU |
GZDoom | 4.11.3 | 2023-10-26 (5 months ago) | ZDoom |
Odamex | 10.4.0 | 2023-08-10 (8 months ago) | ZDoom 1.22 via csDoom |
PrBoom+ | 2.6.66 | 2023-06-20 (9 months ago) | PrBoom |
ReMooD | 0.9a | 2016-08-23 (7 years ago) | Doom Legacy 1.42 |
Risen3D | 2.2.35 | 2021-12-17 (2 years ago) | Doomsday |
Zandronum | 3.1 | 2021-12-13 (2 years ago) | ZDoom and GZDoom via Skulltag |
ZDaemon | 1.10.24 | 2023-11-21 (4 months ago) | ZDoom 1.22 via csDoom |
Name | Latest version | Latest release date (yyyy-mm-dd) | Origin |
Comparison by license, programming language, platform and supported games
Note that the "Games supported" list below refers to the latest versions of the games. Earlier versions may not function correctly or at all. The latest versions of the games are: Doom games v1.9, Heretic v1.3, Hexen v1.1, Strife v1.31 and Hacx v1.2. There is only one version of Chex Quest 1 (not including the version hidden on the CD with subtle differences). Patches for upgrading old versions are listed in the game patch article.
Also note that the Chex Quest column below refers to Chex Quest 1 and not 2 or 3.
OS availability | Games supported | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Name | License | Written in | Windows | Linux | MacOS | Chex | Doom | Heretic | Hexen | Strife | Hacx |
Chocolate Doom | GPL | C | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Crispy Doom | GPL | C | Yes | Yes | ? | Yes | Yes | - | - | - | Yes |
DelphiDoom | GPL | Delphi | Yes | - | - | Yes | Yes | Yes | Yes | Yes | - |
Doomsday | GPL | C, C++ | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - | Yes |
Doom Legacy | GPL, DSL (via Heretic) | C; (C++ in development) | Yes | Yes | Yes | Partial | Yes | Yes | C++[1] | - | - |
Doom Retro | GPL | C | Yes | - | - | Yes | Yes | - | - | - | Yes |
3DGE | GPL | C++, Lua, ASM | Yes | Yes | Yes | Yes | Yes | Yes | Planned | Planned | Yes |
Eternity | GPL | C++ | Yes | Yes | Yes | - | Yes | WIP | WIP | WIP | Yes |
GZDoom | GPL | C++ | Yes | Yes | WIP | Yes | Yes | Yes | Yes | Yes | Yes |
Odamex | GPL | C++ | Yes | Yes | Yes | Yes | Yes | Planned | - | - | - |
PrBoom+ | GPL | C | Yes | Yes | Yes | Yes | Yes | - | - | - | Yes |
ReMooD | GPL | C; (Java in development) | Yes | Yes | - | - | Yes | Partial | Planned | - | - |
Risen3D | GPL | C++ | Yes | - | - | - | Yes | - | - | - | - |
Zandronum | DSL, custom | C++ | Yes | Yes | Yes | WIP | Yes | Yes | Yes | Yes | - |
ZDaemon | DSL (closed) | C++ | Yes | Server | Yes | - | Yes | Yes | Partial | - | - |
Name | License | Written in | Windows | Linux | MacOS | Chex | Doom | Heretic | Hexen | Strife | Hacx |
OS availability | Games supported |
Comparison by features
Special features | ||||||||
---|---|---|---|---|---|---|---|---|
Name | Multiplayer | Renderer | Uncapped framerate | Limit-removing | Console | Custom content | Map Scripting | UDMF support |
Chocolate Doom | C/S | Software | No | - | - | - | ACS (Hexen), None (other games) | No |
Crispy Doom | C/S | Software | Yes | Yes | - | - | None | No |
DelphiDoom | ? | Software, OpenGL | Yes | Yes | Yes | ACTORDEF, PascalScript | ACS (Hexen), PascalScript | WIP |
Doomsday | C/S and local splitscreen | OpenGL | Yes | Yes | Yes | DED | InFine, XG | Planned |
Doom Legacy | C/S | Software, OpenGL | ? | Yes | Yes | - | FraggleScript | - |
Doom Retro | - | Software | Yes | Yes | Yes | - | None | - |
3DGE | Local only (splitscreen) | OpenGL | Yes | Yes | Yes | DDF, COAL | RTS | Yes |
Eternity | (W)LAN[2] | Software | Yes | Yes | Yes | EDF | ACS | Yes |
GZDoom | (W)LAN | Software, OpenGL | Yes | Yes | Yes | DECORATE | ACS, FraggleScript | Yes |
Odamex | C/S | Software | Yes | Yes | Yes | Yes | ACS | - |
PrBoom+ | P2P | Software, OpenGL | Yes | Yes | - | - | None | No |
ReMooD | Local only (splitscreen) | Software | No | Yes | Yes | - | FraggleScript | Planned |
Risen3D | None | OpenGL, Direct3D | Yes | Yes | Yes | DED | SCP, InFine | - |
Zandronum | C/S | Software, OpenGL | Yes | Yes | Yes | DECORATE | ACS | Yes |
ZDaemon | C/S | Software | Yes | Yes | Yes | DEHSUPP | ACS | - |
Name | Multiplayer | Renderer | Uncapped framerate | Limit-removing | Console | Custom content | Map Scripting | UDMF support |
Special features |
Comparison by compatibility
Compatibility is judged primarily by the extent to which a source port supports vanilla gameplay behavior including the original quirks and bugs of the respective games, behavior of maps even when those maps are erroneously constructed, and demo compatibility. Factors which are not considered are simple support of higher resolutions, higher sound sample rates, or additional methods of input over the original games which do not change the actual gameplay experience or engine behavior. When gameplay changes are optional or otherwise configurable, it is the best compatibility profile (which is not necessarily the default configuration) that is considered. While the scale used is somewhat subjective, a rough guideline is as follows:
- Very high compatibility is reserved for ports which perform partial emulation of a DOS machine's address space, behavior of x86-specific mathematical or logical operations, and overflow emulation based on reverse engineering of the segment layouts of the original games' executable files in order to attain as close to 100% compatibility as is possible. Almost all known vanilla demos sync, and the port will be adjusted if one is found which does not.
- High indicates that the port is very compatible, but does not go as far as those ports in the Very high category in emulation of the original games' bugs. Vanilla demo support is in the range of good to excellent.
- Average indicates that the port plays very closely to the originals, but unconditionally fixes most bugs and may make aesthetic compromises for more enjoyable play. Virtually all modifications for the original games still function as intended by their authors with ports in this category. Vanilla demo support is unlikely.
- Low indicates that the port makes significant changes to gameplay and presentation. Some vanilla-targeted modifications may not work as intended. Demo support beyond the individual port's format is usually not present to any extent.
- Very low indicates that the game is not entirely playable in the engine. This can be because support for the game is an unfinished work in progress, or that it is not a development priority.
Boom-compatibility has been a de facto standard for enhanced features in Doom ports. Yes means that the entire feature set is supported. Mostly means that some obscure and uncommonly-used features are not supported, but the port should still be able to handle correctly most existing Boom map sets. Partial indicates that support is incomplete and Boom map sets are not expected to play back correctly. No means that Boom features are not supported to any degree.
Name | Vanilla Doom accuracy |
Vanilla Heretic accuracy |
Vanilla Hexen accuracy |
Vanilla Strife accuracy |
Boom- compatible |
Demo format |
---|---|---|---|---|---|---|
Chocolate Doom | Very high | Very high | Very high | Very high | No | Doom 1.9 |
Crispy Doom | Very high | - | - | - | BEX only | Doom 1.9 |
DelphiDoom | Average | Average | Average | Average | Mostly | |
Doomsday | Average | High | High | - | Partial | None |
Doom Legacy | Very low | - | - | - | Partial | |
Doom Retro | Low | - | - | - | Yes | None |
3DGE | Low | Very low | - | - | Yes | Own (experimental) |
Eternity | High | Average | - | - | Yes | Own, Doom 1.9 and Boom 2.02 (experimental) |
GZDoom | Low | Low | Low | Low | Mostly | Own |
Odamex | High | - | - | - | Mostly | |
PrBoom+ | Very high | - | - | - | Yes | Doom 1.2, 1.9, Boom 2.02, own, misc[3] |
ReMooD | Low | Very low | - | - | Partial | None |
Risen3D | Average | - | - | - | Mostly | Own |
Zandronum | Low | Low | Low | Low | Mostly | Own |
ZDaemon | Average | Average | Very low | - | Mostly | Own |
Name | Vanilla Doom accuracy |
Vanilla Heretic accuracy |
Vanilla Hexen accuracy |
Vanilla Strife accuracy |
Boom- compatible |
Demo format |