ZDoom

ZDoom is a source port, originally based on ATB Doom and NTDOOM. It has since added full support for all commonly-used Boom additions, Heretic, Hexen, Strife and Chex Quest. It has added many additional features, including slopes, uncapped framerate, and z-clipping. The source code is maintained by Randy Heit and Graf Zahl. The most recent official version is 2.6.0, but many in the community use the development versions. The large number of features supported by ZDoom made it the port of choice for several independent game projects, notably Foreverhood, Action Doom 2: Urban Brawl, Chex Quest 3 and Harmony.

Features

 * Support for all of Hexen's editing features (including ACS, hubs, and new map formats).
 * Support for most of Boom's editing features
 * Support for several of MBF's editing features, including friendly monsters and loading DeHackEd patches directly.
 * Support for UDMF
 * Support for all Doom engine games: the various versions of Doom, Heretic, Hexen, Strife, Chex Quest and even Freedoom is identified as its own IWAD rather than being taken for Doom 2: Hell on Earth.
 * Removal of most vanilla Doom limits (including the visplane overflow).
 * High screen resolutions (with optimizations for modern processors).
 * Translucency (regular and additive).
 * A console.
 * Additional control options including crosshairs, free look, jumping and crouching configurable via Quake-style key bindings.
 * OPL emulation and GENMIDI support.
 * More music and sound formats: MOD, XM, IT, S3M, MIDI, OGG Vorbis, SPC, FLAC and MP3, as well as MUS.
 * Support for PNG, JPG, TGA and DDS format images.
 * Greatly enhanced texture definition lump allowing scaled textures (for high-resolution), as well as compositing multipatch texture using independent rotation, mirroring, alpha transparency level and either translations or color blending for each patch.
 * DECORATE script: a simple yet powerful actor definition language.
 * Limited UDP Internet or LAN networking inherited from Linux Doom.
 * Walking over/under monsters and other things.
 * Runs under Windows 9x, NT, XP, Linux and Mac OS X.
 * Support for Doom Connector and Player Connector network games.
 * 3D middle textures, slopes and colored lighting.
 * Decals on walls for scorch marks and blood splatter.
 * Support for custom player skins.
 * Many camera effects, including Duke Nukem-style security camera or Unreal-style skyboxes. Cameras can even replace the player view, allowing for scripted cutscenes or alternative gameplay mimicking a sidescroller.
 * Support for using features of every supported game in all of them -- for example, a Doom map can feature Strife conversations, Hexen scripting and actors that use Heretic codepointers.
 * Support for loading resources directly from ZIP or 7z files, making the use of the traditional WAD file format optional except for map lumps.
 * ENDOOM and animated start up screen support
 * The ability to "summon" monsters

Ports based on recent versions of ZDoom
These ports support most or all of the features listed above.
 * GZDoom
 * Skulltag

Ports based on older versions of ZDoom
These ports are not necessarily compatible with recent ZDoom mods.
 * bZdoom
 * csDoom
 * Odamex
 * ZDaemon
 * ZDaemonGL
 * ZDoomGL
 * ScoreDoom

1998

 * 1.11 (March 6)
 * Initial release.


 * 1.13 (May 26)
 * 1.14 (July 22)
 * Player setup menu for choosing name and color translation.
 * 8-player support.
 * Improved console commands and configuration system.
 * Heretic maps can now be loaded without crash (but they are not properly supported yet).
 * Heretic maps can now be loaded without crash (but they are not properly supported yet).


 * 1.14a (July 27)
 * Bugfix release.


 * 1.16 (December 22)
 * First version with ACS scripting support.
 * Boom-compatibility is mostly implemented.
 * Support for Doom Legacy skins.
 * Sector-based effects: colored lighting, adjustable gravity, custom amount of damage.
 * Various console and input system improvements.

1999

 * 1.17 (February 17)
 * Added support for several Hexen effects, notably polyobjects, sound sequences and parallax skies.
 * Sparks and particle fountains.
 * Railgun attack.
 * Many bugs fixed, including the invulnerability colormap bug.


 * 1.17a (February 21)
 * Bugfix release allowing to play Herian 2. Also introducing the /skins directory and the printing of formated text with ACS.


 * 1.17b (March 17)
 * Preliminary work for Heretic and Hexen support.


 * 1.17b1 (March 19)
 * Bugfix release.


 * 1.17c (May 5)
 * Improved Boom deep water effect, added MAPINFO options to control jumping and freelook.


 * 1.18 (September 6)
 * Added support for changing the scale and offsets of flats through linedefs specials.
 * Added Cajun bots.
 * Added swimmable water.
 * Added Quake-like texture warping.
 * Implemented flying.


 * 1.18a (September 12)
 * Bugfix release.


 * 1.18b (September 15)
 * Bugfix release.


 * 1.19 (November 24)
 * Added -host and -join command-line parameters.
 * First official Linux build.


 * 1.20 (November 25)
 * Bugfix release.


 * 1.21 (November 26)
 * Bugfix release.


 * 1.22 (November 12)
 * Made two linedef-only specials usable in ACS.

2000

 * 1.23 Beta (May 10)
 * Partial Heretic and Hexen support.
 * Windows build uses FMOD instead of MIDAS.

2001

 * 1.23 Beta 19 (March 9)
 * Added new camera types.
 * Added string localization.
 * Added decals.
 * Added slopes.
 * Added skyboxes.


 * 1.23 Beta 20 (March 11)
 * 1.23 Beta 23 (April 9)
 * 1.23 Beta 24 (April 12)
 * 1.23 Beta 25 (August 15)
 * Linux build now uses SDL

2002

 * 1.23 Beta 33 (February 5)
 * Many fixes and rendering optimization.
 * Increased Heretic/Hexen support
 * Improved decals.
 * Added support for the Bloodbath announcer
 * Added underwater reverb effect.
 * Added Line_Horizon effect.
 * Added scripted marines and several ACS enhancements.
 * Added support for DeePsea's tall patches.
 * Added slope things.
 * Changed license for original ZDoom source code to a "BSD-ish one".


 * 2.0 Beta 13 (August 27)
 * Further increased Heretic/Hexen support.
 * Added PNG support for screenshots. Savegames are actually PNG files now.
 * Added internal nodebuilder, made it polyobject-aware.
 * Added SNES SPC music support.
 * Added a loader for Build maps.
 * Added support for double- and quadruple-resolution flats (128x128 and 256x256).
 * Added ACS libraries.
 * Added support for up to 8 mouse buttons.
 * Added the very first version of DECORATE.
 * Removed MBF's torque simulation because of the problems it caused.

2003

 * 2.0.47 (May 14)

2004

 * Added Strife support.

2005

 * 2.0.97 (September 28)
 * Bugfix release.


 * 2.0.98 (November 3)
 * Bugfix release.

2006

 * 2.1.0 (June 21)
 * Added several things from ZDoom Community Build (unofficial 2.0.96x) and GZDoom, including custom DECORATE weapons.


 * 2.1.1 (June 25)
 * Bugfix release.


 * 2.1.2 (July 17)
 * Added custom player classes.
 * Added "replaces" keyword for DECORATE.
 * IWAD selection box now remembers the last choice.


 * 2.1.3 (July 18)
 * Bugfix release with a few enhancements to ACS, SNDINFO, S_SKIN and custom classes.


 * 2.1.4 (July 29)
 * Added partial emulation of Boom's TRANMAP by analyzing such lumps and extrapolating translucency level from them. This does not work for non-translucency effects that can be achieved with TRANMAPs.


 * 2.1.5 (September 2)
 * Added new ACS and DECORATE functions.
 * Added support for many image formats for use as textures: PNG, JPEG, PCX, TGA, DDS.


 * 2.1.6 (October 2)
 * Miscellaneous improvements and bugfixes.


 * 2.1.7 (October 31)
 * Added map marker object. Miscellaneous other improvements and bugfixes.

2007
No release this year.

2008

 * 2.2.0 (February 14)
 * Added custom damage types, with monsters being able to have different custom pain chances, custom damage factors, and custom death sequence for each damage type. Also, damage-specific player death sound.
 * Custom state labels. New states can be defined in DECORATE.
 * The SBARINFO lump for creating status bar and other HUDs.
 * Skill definition in MAPINFO, with many properties.
 * Support for ENDOOM screens and the graphical or semi-graphical startup screens from Heretic, Hexen and Strife.
 * Several things backported from Skulltag.
 * New Direct3D code for better Vista support.
 * Autoload sections in the ini.
 * GZDoom's alternate HUD.
 * Many new or enhanced ACS and DECORATE functions.

2009

 * 2.3.0 (March 1)
 * UDMF support.
 * New garbage collector to improve performances on resource-intensive maps.
 * Sound uses FMOD Ex instead of FMOD. Among the benefits, reverbs can now work on any sound card, not just those that support EAX.
 * SPC is now a first-class music format that no longer requires an external DLL to play.
 * Text-based texture definition format.
 * MD5-based recognition of maps that require certain compatibility option to work (e.g., Strain map 7 which relied on the spechits overflow bug) to apply these settings transparently.
 * Added IWAD recognition for Freedoom, Chex Quest, and Chex Quest 3.
 * New MAPINFO format (the old is still supported of course) with a more robust syntax.
 * Custom map translators for Doom-format maps, which can be specified in MAPINFO.
 * Strife dialogues now work in multiplayer.
 * Setting up slots for custom weapons no longer requires a KEYCONF lump.
 * Added the "random spawner" actor.
 * Many new ACS, DECORATE and SBARINFO features and enhancements.


 * 2.3.1 (March 15)
 * Mostly a bugfix release.
 * Adds support for LZMA and BZip2 compression.

2010

 * 2.4.0 (January 1)
 * Reimplemented and improved support for gamepads and joysticks.
 * Added compiling support for Macintosh systems.
 * Added IWAD recognition for Ultimate Freedoom, Action Doom 2, Blasphemer and Harmony.
 * A whole lot more.


 * 2.4.1 (January 24)
 * Mostly a bugfix release, but also added GAMEINFO lump so that a mod can specify which IWAD and external resource files it uses.


 * 2.5.0 (August 11)
 * Enhanced polyobject system, allowing them to move anywhere in the map (like Eternity's "dynasegs") and to give them any arbitrary shape. This is accompanied by new ACS polyobject movement functions.
 * Support for uncompressed extended nodes, also supported by Eternity Engine and PrBoom+, to create a new cross-port standard for node storage.
 * Support for using Byte Map Fonts.
 * Ability to use metadata tags in audio formats to define custom loop points.
 * Added support for the MUSINFO lump (from Risen3D and PrBoom+).
 * Improved compatibility settings to allow optionally a greater faithfulness to the vanilla Doom and vanilla Heretic.
 * ZMAPINFO as an alias for MAPINFO to avoid compatibility problems with other ports parsing this lump.
 * Full rewrite of the SBARINFO system allowing many additional features and options.
 * Added support for multi-monitor display.
 * Buddha mode, default reverbs environment setting in MAPINFO, several generalized codepointers to emulate some very specific Heretic and Hexen action functions, new functions to refine actor behavior through, enhanced poison damage system, generalized railgun codepointers, new automap options, HOM detection system, new console commands, and the usual bug fixes and minor enhancements.

2011
No release this year.

2012

 * 2.6.0 (July 02 2012)
 * There have been hundreds of bugs fixed since then as well as numerous enhancements:
 * Added Hacx IWAD support.
 * Added text-format Strife conversation system with USDF and ZSDF.
 * A textured automap is now available; automap graphics are now externalized.
 * Rewritten menu system, which can now be defined with the MENUDEF lump.
 * Externalized intermissions to MAPINFO.
 * Externalized IWAD detection and gave each IWAD its own independent config section.
 * Added FluidSynth and GUS emulator softsynths; fixed issues with TiMidity++.
 * Added VOC support and enhanced MIDI playback with support for alternative formats such as XMI and HMI.
 * Action specials: Added Ceiling_LowerAndCrushDist and Thing_SetConversation. Added console command to execute specials.
 * ACS:
 * Increased maximum script number from 999 to 32767.
 * Named scripts allow to avoid script number conflicts altogether.
 * Added StrCopy, CheckSight, SetActivator, SetPointer functions.
 * Added APROP_ScaleX/Y and APROP_Mass actor properties.
 * Added temporary dynamic strings variables with StrParam.
 * Scripts can now have up to four parameters.
 * DECORATE:
 * Added A_CheckFlag, A_FaceMaster, A_FaceTracer, A_RadiusGive, A_SetMass, A_SetScale, A_Warp and A_WolfAttack...
 * Enhanced A_AlertMonsters, A_BFGSpray, A_Blast, A_CustomBulletAttack, A_FireBullets, A_GunFlash, A_PainAttack, A_RadiusThrust...
 * Added an actor pointer manipulation system with several new codepointers...
 * Added DOHARMSPECIES, DONTCORPSE, SEEINVISIBLE and INVENTORY.UNTOSSABLE
 * Increased damage type flexibility in several ways with DeathType and PainType.
 * Added customizable fléchettes.
 * Made accuracy and stamina accessible through DECORATE expressions.
 * Added ProjectileKickback, Inventory.RestrictedTo and Inventory.ForbiddenTo class-based properties.
 * Backported VisibleToTeam, VisibleToPlayerClass and weapon DropItem feature from Skulltag, and enhanced them.
 * Added "Fast" keyword for states and deprecated the unreliable FASTER and FASTMELEE flags.
 * Added a secret hint system.
 * 3D floors support.
 * FraggleScript support.
 * Voxel support.
 * SBARINFO: Ammo 1/2 capacities added to DrawNumber, support for color names in colored text.
 * SNDINFO: Added musicalias and attenuation.
 * Compatibility: fixed issues with Eternal Doom, Happy Time Circus, Phobos, vanilla compat, Boom compat, light levels higher than 255, Heretic, Strife, MUSINFO, misnamed UDMF field.
 * Fixed loading of BMF palettes.
 * Restart console command.
 * Added PALVERS lump for specifying alternate graphics to use with a paletted render, in case the graphics you really want to use look bad without true color.
 * Custom IWADs no longer need to include a COLORMAP, as ZDoom will generate one automatically if it is missing.
 * Fixed vertical tiling of non-power-of-two textures.