A Doom source port is a source port of the Doom engine, the game engine used by the computer game Doom. The term usually denotes a modification made by Doom fans, as opposed to any of the official Doom versions produced by id Software or affiliated companies.
Contents |
Doom source release
The source code for the Doom engine was released to the public in 1997. Although Doom was originally created for MS-DOS, the original source release was for the subsequent Linux version. This was primarily due to use of a proprietary sound library in the DOS version. [1] Since the source code had to be initially ported back to DOS, the term "source port" was used. Out of custom, this term has come to be used for all Doom source modifications, even those which are not technically ports to another platform. The original purpose of source ports was cross-platform compatibility, but shortly after the release of the Doom source, programmers were correcting old, unaddressed Doom bugs and deficiencies in their own source ports, and later on added more source code features to add new game features and alter gameplay. Doom source ports have been created to allow Doom to run on many different operating systems and computer architectures, including Linux, Mac OS X, and Windows. Ports have also been created to allow Doom to run on different types of machines, including the GP32 and GP2X, two Korean handheld game systems capable of running homebrew games. Also, a British company called WildPalm has produced a port to the Nokia 7650 and 9210 cell phones. There is a port to the Sega Dreamcast, as well as the Xbox video game system. The source code was originally released under a proprietary license that prohibited commercial use and did not require programmers to provide the source code for the modifications they released in executable form. As a consequence of the source code for GLDoom, the first port to add OpenGL graphics to Doom, being lost in a hard disk crash,[2] the code was re-released in 1999 under the GNU General Public License after requests from the community. As Doom source ports have broken the limitations of the original Doom engine, the term Vanilla Doom has been coined to refer to the original Doom engine with all limitations intact. The term is a retronym coined by fans after the increase of popularity in Doom source ports. The term vanilla is used in reference to being "unmodified" like vanilla ice cream. This has been extended in a joking manner to the port named Chocolate Doom, a cross-platform port which seeks to exactly emulate vanilla Doom and its limitations.
Major source ports
These are source ports that have garnered a large following in terms of number of users or number of available modifications, or those that possess unique and interesting features, some of which have been considered technically impossible within the confines of the Doom engine at varying times.
Boom and derivations
Boom was a port of the Doom source code by TeamTNT. Boom fixed numerous software glitches and added numerous other software enhancements into the engine to such a degree that its additions have been incorporated into most modern day Doom engines (such as ZDoom and Doom Legacy). Although Boom is simpler than the other ports and is no longer updated, it is preferred by some as it has stayed relatively close to the behavior of the original games, including demo support. Some feel that some of the bug fixes and behavior changes of other ports may unbalance how maps made for the original games play, giving players certain advantages or disadvantages.
Eternity Engine
The Eternity Engine is a Windows source port licensed under the GNU General Public License. It was originally meant to power a Doom total conversion, but after that project went on hiatus (eventually being cancelled) the engine became the prime focus. The engine is based on Smack My Marine Up (SMMU). It includes such features as scripting, portals, polyobjects, and Heretic support.
Marine's Best Friend
Marine's Best Friend (MBF) is a DOS-based source port. It is based on Boom, and adds several new features including high resolution graphics, enhanced monster AI, and emulation of the pre-release beta versions of Doom. It was developed by Lee Killough in 1998 and is now discontinued. Its code was later used as the base of the source port Smack My Marine Up, which in turn was used to construct the Eternity Engine. In 2004 James Haley and Steven McGranahan ported Marine's Best Friend to Windows as WinMBF.
PrBoom
PrBoom is a Doom source port derived from the original Boom that is designed for use in Windows. It has also been ported to Linux, Sega Dreamcast, GP2X, Nintendo DS, and Rockbox.
ZDoom and derivations
ZDoom is a port of the official Doom source code targeted at Microsoft Windows and Linux. It is one of the most advanced and popular Doom ports, supporting Boom editing extensions, plus all the extensions made by the HeXen engine, as well as adding a multitude of new features not found in the original Doom. In addition, it supports Heretic, Hexen, and Strife.
csDoom
csDoom, or "Client/Server Doom", was a GPL Windows source port based on ZDoom built expressly for playing multiplayer games of Doom over the Internet. It was the first port to use client/server network code (from Quakeworld) to help facilitate smoother Internet games. The project was closed by the creator in early 2001.
GZDoom
GZDoom is a Windows source port based on ZDoom that extends its feature set to include an OpenGL renderer. It also boasts 3D floor support taken from Doom Legacy, 360 degree skyboxes, 3D model support, and other features.
Odamex
Odamex is another multiplayer-centric source port based on csDoom. Odamex includes the features of the Boom engine, and currently supports Capture the Flag mode. The goal of Odamex is to expand the base of possible players to multiple computing platforms, including Windows, Linux, Mac OS, and other operating systems. Odamex is free software, and is currently in development.
Skulltag
Skulltag is one of the multiplayer-centric Doom ports for Windows that is also based on ZDoom. In addition to client/server networking code, Skulltag includes bots for offline multiplayer games; new game modes such as Capture the Flag, Skulltag, Instagib, Invasion, and others; as well as new weapons, monsters, items, powerups, and artifacts.
ZDaemon
ZDaemon is a source port, originally based on ZDoom,[3] for both Windows and UNIX (server only at this time), purposely-built for playing multiplayer games of Doom over the Internet. While it was formerly open source under the GPL[4], the source has been closed due to cheating incidents and security issues. The game includes client/server network code for Internet play, a launcher to help users easily find games to join, a new favorites list so they can re-visit their favorite servers, and a utility for automatically finding and downloading custom WAD files needed to play on particular servers.
DOSDoom and derived
DOSDoom was one of the first Doom source ports, created by taking the original Linux release of the Doom source code and porting it back to DOS. It evolved to include several new features, which were previously unseen at the time shortly after the release of the original Doom source code, such as translucency, high resolution, and 16-bit color rendering.
Doom Legacy
Doom Legacy is a source port originally written as a fork of DOSDoom, introducing mouse-look, jumping, a console, 32 player deathmatch, skins, and, later, native Windows and Mac OS X ports. It has also evolved to support many Boom features. It also adds a few new features, notably the ability for levels to contain floors directly over floors, which means levels are not required to be strictly 2D as in the original Doom.
EDGE
Enhanced Doom Gaming Engine, or EDGE, is a port derived from DOSDoom as well. The most attractive feature of EDGE is its DDF system, which describes all game behaviour inside text files external to the executable file. As a result, it is popular among modders who use the extensibility to add many new weapons and features with many fewer of the limits present in other source ports. EDGE includes ports to many operating systems, including MS-DOS, Windows, Linux, BeOS and Mac OS X.
Chocolate Doom
Chocolate Doom is a source port which aims to reproduce the behavior of the original Doom engine as closely as possible. This includes being compatible with nearly every Doom, Doom II and Final Doom WAD, demo and savegame that works with the original executables. The port runs on many operating systems, including Linux, Mac OS X, Windows and OpenBSD.
Doomsday Engine
The Doomsday Engine is a GPL-licensed source port that runs on Linux, Mac OS X and Windows. The port also supports Heretic and Hexen. Its hardware-accelerated engine boasts support for 3D models, object and movement smoothing, shadows, dynamic lighting, and other features. It also includes XG line and sector types for editing extensions, as well as a launcher.
EDoom
EDoom is a source port to the Symbian UIQ Mobile phone OS. The original Symbian UIQ port was for the Sony/Erikson P800 (and similar) mobile phones and then further ported to the Motorola A92x/A1000 mobile phones. This port has working 8 channel sound, games can be saved and loaded, the screen can be configured for landscape right or left mode, and many of the phones buttons are configurable and usable in the game.
nxDoom
nxDoom is a source port to the Sega Dreamcast, based on DoomDC. It includes a mod list that allows selection of WAD files and DeHacked patches to play. It also has VMU saving, and has sound and music when downloaded music WAD files are loaded.
References
- ^ http://doom-ed.com/john-carmack/doom-source-code-update.html
- ^ http://pc.ign.com/articles/067/067762p1.html
- ^ Online Multiplayer Doom - ZDaemon. ZDaemon.org (April 27, 2007). Retrieved on 2007-05-07.
- ^ ZDaemon v0.99 source archive, README.TXT
External links
- The Doom Wiki has an article about: Source ports
- Doomworld -- Source ports
- A genealogy of Doom source ports
- Doom for the Dreamcast
- Nokia cell phone port, via the Wayback Machine (the page no longer exists on Wildpalm's website)


