Difference between revisions of "ZDoom"

From DoomWiki.org

[checked revision][checked revision]
m (+featured article)
(fmtg, italics, use wp, add wls)
 
(42 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{InfoboxSourcePort
+
{{InfoboxSoftware
 
|title = ZDoom
 
|title = ZDoom
 
|logo = [[File:ZDoom_logo.png]]
 
|logo = [[File:ZDoom_logo.png]]
Line 5: Line 5:
 
|caption = Advanced features on display in ''[[Knee-Deep in ZDoom]].''
 
|caption = Advanced features on display in ''[[Knee-Deep in ZDoom]].''
 
|standard = [[Doom]], [[Boom]], [[Heretic]], [[Hexen]], [[Strife]], [[UDMF]]
 
|standard = [[Doom]], [[Boom]], [[Heretic]], [[Hexen]], [[Strife]], [[UDMF]]
|developer = [[Randy Heit]], [[Christoph Oelckers (Graf Zahl)]], [[Braden Obrzut (Blzut3)]]
+
|developer = [[Marisa Heit (Randi)]], [[Christoph Oelckers (Graf Zahl)]], [[Braden Obrzut (Blzut3)]]
 
|baseparent = [[ATB Doom]], [[NTDOOM]]
 
|baseparent = [[ATB Doom]], [[NTDOOM]]
|released = 1.11 (1998-03-06)
 
 
|programming language = {{wp|C++}}
 
|programming language = {{wp|C++}}
 
|status = Discontinued
 
|status = Discontinued
 +
|initialversion = 1.11
 +
|initialdate = 1998-03-06
 
|platform = Windows, Linux, Solaris, Mac OS X
 
|platform = Windows, Linux, Solaris, Mac OS X
 
|language = English (US), French, Italian
 
|language = English (US), French, Italian
Line 17: Line 18:
 
|repourl = [https://github.com/rheit/zdoom/ GitHub]
 
|repourl = [https://github.com/rheit/zdoom/ GitHub]
 
}}
 
}}
'''ZDoom''' is an advanced [[source port]] with [[Boom]] compatibility; complete support for [[Heretic]], [[Hexen]], [[Strife]], and [[Chex Quest]]; as well as many additional {{Cat|new features}}, including [[slope]]s, [[uncapped framerate]], and z-clipping. It was originally based on a merger of the [[ATB Doom]] and [[NTDOOM]] source ports.
+
'''ZDoom''' is a discontinued advanced [[source port]] that was popular for many years because of its rich feature-set. It had [[Boom]] compatibility; complete support for [[Heretic]], [[Hexen]], [[Strife]], and [[Chex Quest]]; as well as many additional new features, including [[slope]]s, [[uncapped framerate]], and [[z-clipping]]. It was originally based on a merger of the [[ATB Doom]] and [[NTDOOM]] source ports.
  
The port was maintained by [[Randy Heit]], [[Christoph Oelckers (Graf Zahl)|Graf Zahl]], and [[Braden Obrzut (Blzut3)|Blzut3]]. The large number of editing features supported by ZDoom have made it a port of choice for several independent game projects, notably [[Foreverhood]], [[Action Doom 2: Urban Brawl]], [[Chex Quest 3]], and [[Harmony]]. ZDoom has also served as a popular code base to build upon, with numerous other source ports derived from it or using portions of its code.  Many in the Doom community use [[Wikipedia:Beta testing|development versions]] of the port before they are officially released as stable builds.
+
The large number of editing 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]]. ZDoom also served as a popular code base to build upon, with numerous other source ports derived from it or using portions of its code.
  
Development ceased in January 2017, further development being restricted to [[GZDoom]] and [[QZDoom]].
+
ZDoom was created by [[Marisa Heit (Randi)]] soon after the [[Doom engine]] source code was released in 1997, and by 1999 many foundational features had been added.{{cite web|author=[[Corwin Brence (WildWeasel)|WildWeasel]]|url=https://www.doomworld.com/24years/lifetime.php|title=Marisa "Randi" Heit - Espi Award for Lifetime Achievement|publication=Doomworld|publishdate=10 December 2017}} Others also made significant contributions over the years, including [[Christoph Oelckers (Graf Zahl)]] and [[Braden Obrzut (Blzut3)]].
  
==Features==
+
Although Heit officially ceased the project in January 2017,{{cite web|author=[[Marisa Heit (Randi)|Randi]]|url={{zdforums|t=54883|ZDoom is Dead. Long live ZDoom}}|publication=ZDoom forums|publishdate=7 January 2017}} the ZDoom legacy continues to thrive in several forks, notably [[GZDoom]] and [[Zandronum]].
 +
 
 +
== Features ==
 +
* New gameplay options, including crosshairs, [[free look]], [[jumping]], [[swimming]], and [[crouching]].
 +
* Options for the [[HUD]], including an alternative layout.
 +
* A [[console]] that allows the user to enter commands and edit variables.{{cite web|url={{zdoomwiki|title=Console|linkonly=1}}|publication=ZDoom Wiki}}
 +
* High screen resolutions, including [[widescreen]], with optimizations for modern processors.
 
* Implementation of [[Heretic]], [[Hexen]], and [[Strife]]'s editing features, including [[ACS]], [[hub]]s, terrain effects, the Hexen map format, and more.
 
* Implementation of [[Heretic]], [[Hexen]], and [[Strife]]'s editing features, including [[ACS]], [[hub]]s, terrain effects, the Hexen map format, and more.
 +
* A large array of extensions to [[ACS]], including new operations, functions, and a more advanced bytecode format.
 +
* Created the [[DECORATE]] [[content definition language]] for [[actor]]s, states, [[weapon]]s, [[Artifact|inventory]], and more.
 +
* Support for all [[Doom engine]] games.
 +
* Removal of most [[vanilla Doom]] [[static limits]].
 +
* Improvements to vanilla Doom's [[flawed collision detection]].
 
* Support for almost all of [[Boom]]'s editing features.
 
* Support for almost all of [[Boom]]'s editing features.
 
* Support for several [[MBF]] extensions, including friendly monsters and loading [[DeHackEd]] patches from within [[WAD]] files.
 
* Support for several [[MBF]] extensions, including friendly monsters and loading [[DeHackEd]] patches from within [[WAD]] files.
 
* Support for [[UDMF]].
 
* Support for [[UDMF]].
* Support for [[FraggleScript]] with permission of [[Simon Howard (Fraggle)]].
+
* Many supported sound and image formats.{{cite web|url={{zdoomwiki|title=Sound format|linkonly=1}}|publication=ZDoom Wiki}}{{cite web|url={{zdoomwiki|title=Image format|linkonly=1}}|publication=ZDoom Wiki}}
* A large array of extensions to [[ACS]], including new operations, functions, and a more advanced bytecode format.
 
* Support for all [[Doom engine]] games.
 
* Removal of most [[vanilla Doom]] [[Static limits|limitations]].
 
* High screen resolutions, with optimizations for modern processors.
 
* [[Translucency]] in regular, additive, subtractive, and reverse subtractive varieties.
 
* A [[console]].
 
* Additional control options including crosshairs, [[free look]], [[jumping]], [[swimming]], and [[crouching]] configurable via [[Quake]]-style key bindings.
 
 
* Choice of multiple MIDI devices, including [[OPL emulation]], [[DMXGUS|Gravis Ultrasound emulation]], [[TiMidity]]++ and [[FluidSynth]] among others.
 
* Choice of multiple MIDI devices, including [[OPL emulation]], [[DMXGUS|Gravis Ultrasound emulation]], [[TiMidity]]++ and [[FluidSynth]] among others.
* Many supported sound and image formats (see {{zdoomwiki|title=supported data formats}} for a complete listing).
+
* Runs under {{wp|Windows 98}}, {{wp|Windows NT|NT}}, {{wp|Windows XP|XP}}, {{wp|Linux}} and {{wp|macOS|Mac OS X}}.
* Enhanced texture definition lump allowing use of any graphics used by the game as patches, and allowing effects such as scaling, blending, rotating, and mirroring.
 
* [[DECORATE]] — a simple yet powerful [[content definition language]] for [[actor]]s, states, [[weapon]]s, [[Artifact|inventory]], and more.
 
 
* UDP Internet and LAN networking inherited from [[Linux Doom]].
 
* UDP Internet and LAN networking inherited from [[Linux Doom]].
* Walking over/under monsters and other things.
 
* Runs under Windows 98, [[Wikipedia:Windows NT|NT]], [[Wikipedia:Windows XP|XP]], [[Wikipedia:Linux|Linux]] and [[Wikipedia:Mac OS X|Mac OS X]].
 
 
* Support for [[Doom Connector]] and [[Player Connector]] network games.
 
* Support for [[Doom Connector]] and [[Player Connector]] network games.
 
* [[Portal]]s, [[3D floor]]s, [[3D middle texture]]s, [[slope]]s and [[colored lighting]].
 
* [[Portal]]s, [[3D floor]]s, [[3D middle texture]]s, [[slope]]s and [[colored lighting]].
 
* [[Decal]]s on walls for scorch marks and blood splatter.
 
* [[Decal]]s on walls for scorch marks and blood splatter.
 +
* [[Flat and texture mixing]].
 +
* [[Translucency]] in regular, additive, subtractive, and reverse subtractive varieties.
 +
* Enhanced texture definition lump allowing use of any graphics used by the game as patches, and allowing effects such as scaling, blending, rotating, and mirroring.
 +
* Support for [[FraggleScript]] with permission of [[Simon Howard (Fraggle)]].
 
* Support for custom player skins compatible with [[Doom Legacy]].
 
* Support for custom player skins compatible with [[Doom Legacy]].
* A [[chasecam]] and many [[camera]] effects, including [[Duke Nukem]]-style security [[camera]] and Unreal-style [[skybox]]es. Cameras can replace the player view, allowing for scripted cutscenes or alternative gameplay, such as mimicking a sidescroller.
+
* Walking over/under monsters and other things.
 +
* A [[chasecam]] and many [[camera]] effects, including ''[[Duke Nukem 3D]]''-style security [[camera]] and ''{{wp|Unreal (1998 video game)|Unreal}}''-style [[skybox]]es. Cameras can replace the player view, allowing for scripted cutscenes or alternative gameplay, such as mimicking a sidescroller.
 
* Support for using the features of every [[Doom engine]] game in all of them — for example, a Doom map can feature Strife conversations, Hexen scripting and actors that use Heretic codepointers.
 
* Support for using the features of every [[Doom engine]] 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]] (.pk3) or 7z (.pk7) files, making the use of the traditional WAD file format optional except for map lumps.
 
* Support for loading resources directly from [[ZIP]] (.pk3) or 7z (.pk7) files, making the use of the traditional WAD file format optional except for map lumps.
 
* [[ENDOOM]] and animated start up screen support
 
* [[ENDOOM]] and animated start up screen support
 +
* Quality {{wp|pseudorandom number generator|random number generation}} using the popular {{wp|Mersenne Twister}} library,<ref>[https://github.com/coelckers/gzdoom/blob/4bcea0ab783c667940008a5cab6910b7a826f08c/src/common/engine/m_random.cpp#L35-L38 GitHub comment block]</ref> but in a restricted manner to conserve memory<ref>[https://github.com/coelckers/gzdoom/blob/4bcea0ab783c667940008a5cab6910b7a826f08c/src/common/thirdparty/sfmt/SFMT.h#L103-L106 GitHub comment block]</ref>
  
==List of supported games==
+
== List of supported games ==
 
=== Classic Doom-engine IWADs ===
 
=== Classic Doom-engine IWADs ===
 
* Doom v1.2 or later, including Ultimate Doom
 
* Doom v1.2 or later, including Ultimate Doom
Line 61: Line 68:
 
* Strife, including both demo versions
 
* Strife, including both demo versions
 
* Chex Quest
 
* Chex Quest
 +
 
=== Stand-alone mods ===
 
=== Stand-alone mods ===
 
* Action Doom II: Urban Brawl
 
* Action Doom II: Urban Brawl
Line 67: Line 75:
 
* Hacx v1.2 or v2.0
 
* Hacx v1.2 or v2.0
 
* Harmony
 
* Harmony
 +
* Hedon
 +
* Rise of the Wool Ball
 
In addition, ZDoom offers aliases that allow use of free IWAD projects [[Freedoom]] and [[Blasphemer]] as alternatives instead of replacements. See {{zdoomwiki|IWAD|list of supported games}} for further information.
 
In addition, ZDoom offers aliases that allow use of free IWAD projects [[Freedoom]] and [[Blasphemer]] as alternatives instead of replacements. See {{zdoomwiki|IWAD|list of supported games}} for further information.
  
==Ports based on recent versions of ZDoom==
+
== Ports based on recent versions of ZDoom ==
 
These ports support most or all of the features listed above.
 
These ports support most or all of the features listed above.
*[[GZDoom]]
+
* [[GZDoom]], ZDoom's successor
*[[Zandronum]] and its predecessor, [[Skulltag]]
+
* [[Zandronum]] and its predecessor, [[Skulltag]]
*[[QZDoom]], ZDoom's successor
+
* [[QZDoom]], Experimental port
  
==Ports based on older versions of ZDoom==
+
== Ports based on older versions of ZDoom ==
 
These ports are not necessarily compatible with recent ZDoom mods.
 
These ports are not necessarily compatible with recent ZDoom mods.
*[[bZdoom]]
+
* [[bZdoom]]
*[[csDoom]]
+
* [[csDoom]]
*[[Odamex]]
+
* [[Odamex]]
*[[ZDaemon]]
+
* [[ManDoom]]
*[[ZDaemonGL]]
+
* [[ZDaemon]]
*[[ZDoomGL]]
+
* [[ZDaemonGL]]
 +
* [[ZDoom Community Build]]
 +
* [[ZDoomGL (v1)]]
 +
* [[ZDoomGL (v2)]]
 +
 
 +
== External links ==
 +
* [https://zdoom.org/ ZDoom.org]
 +
* [https://forum.zdoom.org/ ZDoom Forums]
 +
* [https://zdoom.org/zdkb/ ZDoom Knowledge Base]
 +
* {{Zdoomwiki|Main Page|ZDoom Wiki|linkonly=yes}}
 +
* {{Zdoomwiki|ZDoom version history|ZDoom version history|linkonly=yes}}
 +
* Compiled development builds [https://devbuilds.drdteam.org/zdoom/ for Windows] and [https://devbuilds.drdteam.org/zdoom-mac/ for Mac] at [[DRD Team]]
 +
* [https://github.com/doomtech/zdoom-old ZDoom source repository for historical ZDoom releases]
 +
* [[Zdoom (IRC channel)|ZDoom IRC channel]]
 +
* {{zdforums|t=54921|ZDoom Official Discord Server}}
  
==External links==
+
== References ==
*[https://zdoom.org/ ZDoom.org]
+
<references />
*[https://forum.zdoom.org/ ZDoom Forums]
 
*{{Zdoomwiki|Main Page|ZDoom Wiki|linkonly=yes}}
 
*{{Zdoomwiki|ZDoom version history|ZDoom version history|linkonly=yes}}
 
*Compiled development builds [https://devbuilds.drdteam.org/zdoom/ for Windows] and [https://devbuilds.drdteam.org/zdoom-mac/ for Mac] at [[DRD Team]]
 
*[https://github.com/AlexMax/zdoom-old ZDoom source repository for historical ZDoom releases]
 
*[irc://irc.esper.net/zdoom ZDoom IRC channel] (considered deprecated)
 
*[https://forum.zdoom.org/viewtopic.php?f=48&t=54921 ZDoom Official Discord Server]
 
  
==Sources==
+
== Sources ==
*{{ZDoom|title=ZDoom}}
+
* {{ZDoom|title=ZDoom}}
  
 
{{s-start}}
 
{{s-start}}
Line 101: Line 118:
 
{{s-cond}}
 
{{s-cond}}
 
{{s-bef-cond|before=[[ATB Doom]]}}
 
{{s-bef-cond|before=[[ATB Doom]]}}
{{s-ttl|rows=6|title=ZDoom}}
+
{{s-ttl|rows=8|title=ZDoom}}
 
{{s-aft-cond|after=[[bZDoom]]}}
 
{{s-aft-cond|after=[[bZDoom]]}}
 
{{s-bef-cond|before=[[Heretic]]}}
 
{{s-bef-cond|before=[[Heretic]]}}
Line 108: Line 125:
 
{{s-aft-cond|after=[[GZDoom]]}}
 
{{s-aft-cond|after=[[GZDoom]]}}
 
{{s-bef-cond|before=[[Linux Doom]] 1.10}}
 
{{s-bef-cond|before=[[Linux Doom]] 1.10}}
 +
{{s-aft-cond|after=[[ManDoom]]}}
 +
{{s-bef-cond|before=[[NTDOOM]]}}
 +
{{s-aft-cond|after=[[RZDoom]]}}
 +
{{s-bef-cond|rows=3|before=[[Strife]]}}
 
{{s-aft-cond|after=[[Skulltag]]}}
 
{{s-aft-cond|after=[[Skulltag]]}}
{{s-bef-cond|before=[[NTDOOM]]}}
 
 
{{s-aft-cond|after=[[ZDaemon]]}}
 
{{s-aft-cond|after=[[ZDaemon]]}}
{{s-bef-cond|before=[[Strife]]}}
+
{{s-aft-cond|after=[[ZDoomGL (v1)]]}}
{{s-aft-cond|after=[[ZDoomGL]]}}
 
 
{{s-end}}
 
{{s-end}}
  
 
{{featured article}}
 
{{featured article}}
[[Category:Source ports]]
+
[[Category:Source ports by name]]
 
[[Category:ZDoom|*]]
 
[[Category:ZDoom|*]]
 
[[Category:Boom compatible]]
 
[[Category:Boom compatible]]
 +
[[Category:MBF-compatible]]
 
[[Category:Doom ports]]
 
[[Category:Doom ports]]
 
[[Category:Heretic ports]]
 
[[Category:Heretic ports]]

Latest revision as of 15:20, 9 February 2024

ZDoom
ZDoom logo.png
KDiZD final boss.png

Advanced features on display in Knee-Deep in ZDoom.

Standard Doom, Boom, Heretic, Hexen, Strife, UDMF
Codebase ATB Doom, NTDOOM
Developer(s) Marisa Heit (Randi), Christoph Oelckers (Graf Zahl), Braden Obrzut (Blzut3)
Initial release 1.11 (1998-03-06, 26 years ago)
Latest release 2.8.1 (2016-02-22, 8 years ago)
Development status Discontinued
Written in C++
Target Platform Windows, Linux, Solaris, Mac OS X
Available in English (US), French, Italian
License Doom Source License, 3-point BSD, others
Website https://zdoom.org/
Source Repository

(Git)

GitHub

ZDoom is a discontinued advanced source port that was popular for many years because of its rich feature-set. It had Boom compatibility; complete support for Heretic, Hexen, Strife, and Chex Quest; as well as many additional new features, including slopes, uncapped framerate, and z-clipping. It was originally based on a merger of the ATB Doom and NTDOOM source ports.

The large number of editing 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. ZDoom also served as a popular code base to build upon, with numerous other source ports derived from it or using portions of its code.

ZDoom was created by Marisa Heit (Randi) soon after the Doom engine source code was released in 1997, and by 1999 many foundational features had been added.[1] Others also made significant contributions over the years, including Christoph Oelckers (Graf Zahl) and Braden Obrzut (Blzut3).

Although Heit officially ceased the project in January 2017,[2] the ZDoom legacy continues to thrive in several forks, notably GZDoom and Zandronum.

Features[edit]

List of supported games[edit]

Classic Doom-engine IWADs[edit]

  • Doom v1.2 or later, including Ultimate Doom
  • Doom II; development versions even support the modified IWAD included as a bonus with Doom 3: BFG Edition
  • Final Doom
  • Heretic
  • Hexen
  • Strife, including both demo versions
  • Chex Quest

Stand-alone mods[edit]

  • Action Doom II: Urban Brawl
  • The Adventures of Square
  • Chex Quest 3
  • Hacx v1.2 or v2.0
  • Harmony
  • Hedon
  • Rise of the Wool Ball

In addition, ZDoom offers aliases that allow use of free IWAD projects Freedoom and Blasphemer as alternatives instead of replacements. See list of supported games at the ZDoom wiki for further information.

Ports based on recent versions of ZDoom[edit]

These ports support most or all of the features listed above.

Ports based on older versions of ZDoom[edit]

These ports are not necessarily compatible with recent ZDoom mods.

External links[edit]

References[edit]

  1. WildWeasel (10 December 2017). "Marisa "Randi" Heit - Espi Award for Lifetime Achievement." Doomworld.
  2. Randi (7 January 2017). ZDoom is Dead. Long live ZDoom. ZDoom forums.
  3. Console. ZDoom Wiki.
  4. Sound format. ZDoom Wiki.
  5. Image format. ZDoom Wiki.
  6. GitHub comment block
  7. GitHub comment block

Sources[edit]

Source code genealogy
Based on Name Base for
ATB Doom ZDoom bZDoom
Heretic csDoom
Hexen GZDoom
Linux Doom 1.10 ManDoom
NTDOOM RZDoom
Strife Skulltag
ZDaemon
ZDoomGL (v1)