Difference between revisions of "GZDoom"

From DoomWiki.org

[checked revision][checked revision]
(Undo revision 156125 by 177.197.193.57 (talk))
(Added VKDoom)
 
(91 intermediate revisions by 20 users not shown)
Line 1: Line 1:
{{InfoboxSourcePort
+
{{InfoboxSoftware
 
|title = GZDoom
 
|title = GZDoom
 
|developer = [[Christoph Oelckers (Graf Zahl)|Graf Zahl]]
 
|developer = [[Christoph Oelckers (Graf Zahl)|Graf Zahl]]
 
|baseparent = [[ZDoom]]
 
|baseparent = [[ZDoom]]
|programming language = [[Wikipedia:C++|C++]]
+
|logo = [[File:GZDoom Logo.png|200px]]
 +
|programming language = {{wp|C++}}
 
|status = Active
 
|status = Active
|platform = Windows and Linux
+
|initialversion = 0.9.1
|license = [[Wikipedia:GNU GPL|GPL v3]] since version 3.0.0.{{cite web|author=[[Christoph Oelckers (Graf Zahl)|Oelckers, Christoph]]|title=GZDoom 3.0.0 Released|publication=ZDoom.org|url=https://forum.zdoom.org/viewtopic.php?t=56132|publishdate=29 April 2017|accessdate=30 April 2017}}{{cite web|author=[[Christoph Oelckers (Graf Zahl)|Oelckers, Christoph]]|title=Removed FMod as the last remaining piece of code that is not GPL compatible|publication=GitHub|url=https://github.com/coelckers/gzdoom/commit/c219811a542e0d6aae38b920ae9e257c5c2286c1|publishdate=16 April 2017|accessdate=28 April 2017}}{{cite web|author=[[Christoph Oelckers (Graf Zahl)|Oelckers, Christoph]]|title=Removed all Doom Source license and all default Raven copyright headers and replaced them with GPLv3. Also fixed the license in a few other files|publication=GitHub|url=https://github.com/coelckers/gzdoom/commit/96d328de9baaf4c9ed3244846a394b60e912ab6c|publishdate=17 April 2017|accessdate=28 April 2017}}<br />Previously [[Doom Source License]], 3-point BSD, {{zdoomwiki|License|others|linkonly=1}}.
+
|initialdate = 2005-08-30
|website = [http://gzdoom.drdteam.org/ http://gzdoom.drdteam.org/]
+
|platform = Windows, Linux, MacOS
 +
|license = {{wp|GNU GPL|GPL v3}} since version 3.0.0.{{cite web|author=[[Christoph Oelckers (Graf Zahl)|Oelckers, Christoph]]|title=|publication=[[ZDoom forums]]|url={{zdforums|56132|GZDoom 3.0.0 Released}}|publishdate=29 April 2017|accessdate=30 April 2017}}{{cite web|author=[[Christoph Oelckers (Graf Zahl)|Oelckers, Christoph]]|title=Removed FMod as the last remaining piece of code that is not GPL compatible|publication=GitHub|url=https://github.com/coelckers/gzdoom/commit/c219811a542e0d6aae38b920ae9e257c5c2286c1|publishdate=16 April 2017|accessdate=28 April 2017}}{{cite web|author=[[Christoph Oelckers (Graf Zahl)|Oelckers, Christoph]]|title=Removed all Doom Source license and all default Raven copyright headers and replaced them with GPLv3. Also fixed the license in a few other files|publication=GitHub|url=https://github.com/coelckers/gzdoom/commit/96d328de9baaf4c9ed3244846a394b60e912ab6c|publishdate=17 April 2017|accessdate=28 April 2017}}<br />Previously [[Doom Source License]], 3-point BSD, {{zdoomwiki|License|others|linkonly=1}}.
 +
|website = [https://zdoom.org/ https://zdoom.org/]
 
|repotype = {{wp|Git (software)|Git}}
 
|repotype = {{wp|Git (software)|Git}}
|repourl = [https://github.com/coelckers/gzdoom GitHub]
+
|repourl = [https://github.com/ZDoom/gzdoom GitHub]
 
}}
 
}}
'''GZDoom''' is a [[ZDoom]]-based port which is maintained by [[Christoph Oelckers (Graf Zahl)]]. It was first released on [[Timeline of source port releases#2005|August 30, 2005]] and runs in Linux and Windows. Its development was temporarily halted on April 14, 2010, with development resuming in 2014.
+
'''GZDoom''' is a {{wp|Fork (software development)|fork}} of the [[ZDoom]] [[source port]] created by [[Christoph Oelckers (Graf Zahl)]], who still oversees its development. First released in 2005, it has versions for Windows, Linux, and MacOS.
 +
 
 +
GZDoom remains a popular port due to both its unprecedented modding capability and graphical optimizations for modern hardware. In particular, the [[ZScript]] language unique to GZDoom, combined with [[ACS]] and [[DECORATE]] inherited from ZDoom, enables a high level of [[gameplay mod]]ding and special mapping features.
 +
 
 +
Many maps and mods, plus some [[total conversion]]s and stand-alone games, have been exclusive to GZDoom. This includes over a dozen [[Cacowards|Cacoward]] winners.
  
 
==History==
 
==History==
 +
GZDoom started as a new renderer for [[PrBoom]], but this early version was never publicly released.{{cite web|author=[[Christoph Oelckers (Graf Zahl)|Oelckers, Christoph]]|title=|url={{dwforumsp|1529367|How do you learn how to build source ports?}}|publication=[[Doomworld Forums]]|publishdate=4 December 2015|accessdate=17 December 2015}} In 2005, Graf Zahl ported his renderer to the [[ZDoom Community Build]], and this marked the first official release of GZDoom. The port was from then on tied to the ZDoom codebase.
 +
 
On January 19, 2008, development of the port was put on hold until another official release of ZDoom is made, due to highly extensive changes to the ZDoom renderer (which consequently require extensively changing the {{wp|OpenGL}} rendering code for compatibility) coming more frequently than Graf Zahl could catch up. An official release of ZDoom was made on February 14, 2008, and version 1.1.0 of GZDoom was released shortly afterward incorporating the changes from that version.
 
On January 19, 2008, development of the port was put on hold until another official release of ZDoom is made, due to highly extensive changes to the ZDoom renderer (which consequently require extensively changing the {{wp|OpenGL}} rendering code for compatibility) coming more frequently than Graf Zahl could catch up. An official release of ZDoom was made on February 14, 2008, and version 1.1.0 of GZDoom was released shortly afterward incorporating the changes from that version.
  
Line 20: Line 29:
 
In 2014, work on GZDoom's renderer resumed. Upon release of 2.0 on August 2, 2014, OpenGL 2.x support was dropped, as the renderer was rewritten to use OpenGL 3.x and OpenGL 4.4, albeit in compatibility mode. After some time of having dual 1.9.x and 2.1.x releases, support for OpenGL 2.0 was reinstated with GZDoom 2.2.0 in 2016, but with fewer features than before in that legacy mode.
 
In 2014, work on GZDoom's renderer resumed. Upon release of 2.0 on August 2, 2014, OpenGL 2.x support was dropped, as the renderer was rewritten to use OpenGL 3.x and OpenGL 4.4, albeit in compatibility mode. After some time of having dual 1.9.x and 2.1.x releases, support for OpenGL 2.0 was reinstated with GZDoom 2.2.0 in 2016, but with fewer features than before in that legacy mode.
  
Beginning in December 2016, following ZDoom's official halt in development<ref>https://forum.zdoom.org/viewtopic.php?f=1&t=54883</ref>, GZDoom's development is now detached from ZDoom and the port is the first-level upstream for other forks (namely [[QZDoom]] and [[Zandronum]]), without looking back at ZDoom.
+
Beginning in December 2016, following ZDoom's official halt in development,{{cite web|author=[[Marisa Heit (Randi)|Randi]]|url={{zdforums|t=54883|ZDoom is Dead. Long live ZDoom}}|publication=ZDoom forums|publishdate=7 January 2017|accessdate=19 December 2021}} GZDoom's development is now detached from ZDoom and the port is the first-level upstream for other forks (namely [[QZDoom]] and [[Zandronum]]), without looking back at ZDoom.
  
The current primary direction of development is ZScript, with several other things developed by contributors (for example, OpenGL renderer enhancements by dpJudas).
+
The current primary direction of development is ZScript, with several other things developed by contributors (for example, OpenGL renderer enhancements by [[Magnus Norddahl (dpJudas)|dpJudas]]). Starting with version 4.3.2, support for the [[WAD]] files from the [[Doom Classic Unity port]] was added.
  
 
==Features==
 
==Features==
* All ZDoom features
+
* [[ZDoom#Features|All ZDoom features]]
* Rudimentary support for [[Doom Legacy]] (To run existing Legacy mods like [[Nimrod|Ni'mRoD:IXNAY on the HOMBRE]])
+
* Rudimentary support for [[Doom Legacy]] (To run existing Legacy mods like [[Ni'mRoD - IXNAY on the HOMBRE]])
 
* [[ZScript]]
 
* [[ZScript]]
 +
* Support for the [[DEHEXTRA]] standard
 +
* Support for the [[MBF21]] standard
 +
* Support for the [[DSDHacked]] standard
 
* OpenGL renderer, allowing the following features:
 
* OpenGL renderer, allowing the following features:
 
** Full [[3D floor]]s (including [[slope]]s)
 
** Full [[3D floor]]s (including [[slope]]s)
 
** Reflective floors
 
** Reflective floors
** Dynamic lights, brightmaps, glowing flats, custom [[Wikipedia:GLSL|hardware shaders]]
+
** Dynamic lights, brightmaps, glowing flats, custom {{wp|GLSL|hardware shaders}}
** ''{{wp|Quake II}}''/''{{wp|Half-Life}}''-style [[skybox]]es in addition to regular ZDoom skyboxes
+
** ''{{wp|Quake II}}'' and ''{{wp|Half-Life (video game)|Half-Life}}''-style [[skybox]]es in addition to regular ZDoom skyboxes
 
** Optional High-quality (HQnX) rescaling filters for graphics, sprites and textures
 
** Optional High-quality (HQnX) rescaling filters for graphics, sprites and textures
 
** MD2, MD3 and DMD model support
 
** MD2, MD3 and DMD model support
* Polygonal, true-3D software renderer and truecolor software renderer by dpJudas and Eruanna
 
  
==Trivia==
+
When the [[QZDoom]] codebase was merged into GZDoom, the latter gained several new features developed by [[Magnus Norddahl (dpJudas)]] and [[Rachael Alexanderson (Eruanna)]]. These include:
* GZDoom was originally based on [[PrBoom]], with some added code from Doom Legacy. This version was never released.{{cite web|author=[[Christoph Oelckers (Graf Zahl)|Oelckers, Christoph]]|title=How do you learn how to build source ports?|url=https://www.doomworld.com/vb/post/1529367|publication=[[Doomworld Forums]]|publishdate=4 December 2015|accessdate=17 December 2015}}
+
* Polygonal, 3-point perspective truecolor software renderer (“Softpoly”)
 +
* Truecolor support for the classic 2-point renderer
 +
* Postprocessing framework  (SSAO, bloom, blur, custom post process shaders, etc.)
 +
* Vulkan renderer backend
 +
* HDR monitor support
 +
* ZScript {{wp|just-in-time compilation}}
 +
* Proper windowed mode support (i.e. you can freely resize the game window)
 +
* Correct ZDoom software light mode for the hardware renderer
 +
* High resolution correct version of the software fuzz, for both software and hardware renderers
 +
* Improved dynamic light math, shadowmaps and spotlights
 +
* Materials (Classic, normal and specular maps and PBR textures), but not environment maps
 +
 
 +
==Notable exclusives==
 +
[[File:SquareE1A4.png|thumb|[[The Adventures of Square]]]]
 +
These are notable creations exclusive to GZDoom.
 +
 
 +
===Games===
 +
These are [[total conversion]]s and stand-alone games.
 +
* [[The Adventures of Square]]
 +
* [[Ashes 2063]]
 +
* [[Hedon]]
 +
* [[Total Chaos]]
 +
 
 +
===Gameplay mods===
 +
These acclaimed [[gameplay mod]]s can be used with the vast majority of classic Doom maps.
 +
* [[Corruption Cards]]
 +
* [[Guncaster]]
 +
* [[Hideous Destructor]]
 +
* [[Painslayer]]
 +
* [[Project Brutality]]
 +
* [[SWWM GZ]]
 +
* [[Voxel Doom]]
 +
 
 +
===Maps===
 +
These are [[Cacowards|Cacoward]]-winning maps. Some are [[partial conversion]]s with custom weapons or monsters.
 +
* [[Ar Luminae]]
 +
* [[Bastion of Chaos]]
 +
* [[Dark Universe]]
 +
* [[Infraworld - Coma Moonlight]]
 +
* [[Mandrill Ass Project]]
 +
* [[Putrefier]]
 +
* [[Verdant Citadel]]
 +
* [[Winter's Fury]]
  
 
==External links==
 
==External links==
* [http://gzdoom.drdteam.org/ GZDoom website]
+
* [https://zdoom.org/ Official ZDoom website], which is also the official site for GZDoom
* [https://devbuilds.drdteam.org/gzdoom/ Compiled development builds] for Windows at [[DRD Team]]
 
 
* {{zdoomwiki|page=Category:GZDoom_features|title=GZDoom documentation}}
 
* {{zdoomwiki|page=Category:GZDoom_features|title=GZDoom documentation}}
  
Line 52: Line 104:
 
{{s-port}}
 
{{s-port}}
 
{{s-cond}}
 
{{s-cond}}
{{s-bef-cond|rows=6|before=[[ZDoom]]}}
+
{{s-bef-cond|rows=10|before=[[ZDoom]]}}
{{s-ttl|rows=6|title=GZDoom}}
+
{{s-ttl|rows=10|title=GZDoom}}
 
{{s-aft-cond|after=[[GZ3Doom]]}}
 
{{s-aft-cond|after=[[GZ3Doom]]}}
 
{{s-aft-cond|after=[[GZDoom for OS X|GZDoom&nbsp;for&nbsp;OS&nbsp;X]]}}
 
{{s-aft-cond|after=[[GZDoom for OS X|GZDoom&nbsp;for&nbsp;OS&nbsp;X]]}}
 +
{{s-aft-cond|after=[[GZDoom Vintage]]}}
 +
{{s-aft-cond|after=[[Freedoom For Android]]}}
 +
{{s-aft-cond|after=[[LZDoom]]}}
 
{{s-aft-cond|after=[[QZDoom]]}}
 
{{s-aft-cond|after=[[QZDoom]]}}
 
{{s-aft-cond|after=[[ScoreDoom]]}}
 
{{s-aft-cond|after=[[ScoreDoom]]}}
 
{{s-aft-cond|after=[[Skulltag]]}}
 
{{s-aft-cond|after=[[Skulltag]]}}
 
{{s-aft-cond|after=[[Tower of Babel (source port)|Tower of Babel]]}}
 
{{s-aft-cond|after=[[Tower of Babel (source port)|Tower of Babel]]}}
{{s-end}}
+
{{s-aft-cond|after=[[VKDoom]]}}
  
[[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 10:35, 21 December 2023

GZDoom
GZDoom Logo.png
Codebase ZDoom
Developer(s) Graf Zahl
Initial release 0.9.1 (2005-08-30, 18 years ago)
Latest release 4.11.3 (2023-10-26, 4 months ago)
Development status Active
Written in C++
Target Platform Windows, Linux, MacOS
License GPL v3 since version 3.0.0.[1][2][3]
Previously Doom Source License, 3-point BSD, others.
Website https://zdoom.org/
Source Repository

(Git)

GitHub

GZDoom is a fork of the ZDoom source port created by Christoph Oelckers (Graf Zahl), who still oversees its development. First released in 2005, it has versions for Windows, Linux, and MacOS.

GZDoom remains a popular port due to both its unprecedented modding capability and graphical optimizations for modern hardware. In particular, the ZScript language unique to GZDoom, combined with ACS and DECORATE inherited from ZDoom, enables a high level of gameplay modding and special mapping features.

Many maps and mods, plus some total conversions and stand-alone games, have been exclusive to GZDoom. This includes over a dozen Cacoward winners.

History[edit]

GZDoom started as a new renderer for PrBoom, but this early version was never publicly released.[4] In 2005, Graf Zahl ported his renderer to the ZDoom Community Build, and this marked the first official release of GZDoom. The port was from then on tied to the ZDoom codebase.

On January 19, 2008, development of the port was put on hold until another official release of ZDoom is made, due to highly extensive changes to the ZDoom renderer (which consequently require extensively changing the OpenGL rendering code for compatibility) coming more frequently than Graf Zahl could catch up. An official release of ZDoom was made on February 14, 2008, and version 1.1.0 of GZDoom was released shortly afterward incorporating the changes from that version.

On April 14 2010, Graf Zahl announced on the Doomworld forums that development of GZDoom had halted. He stated his reasons as having no time to work on it, and that he was frustrated by numerous complaints about the port's lack of compatibility with ATI video cards. Graf Zahl took down the website and all its subfolders, making GZDoom temporarily unavailable except from its mirrors. The site has since been restored.

In 2014, work on GZDoom's renderer resumed. Upon release of 2.0 on August 2, 2014, OpenGL 2.x support was dropped, as the renderer was rewritten to use OpenGL 3.x and OpenGL 4.4, albeit in compatibility mode. After some time of having dual 1.9.x and 2.1.x releases, support for OpenGL 2.0 was reinstated with GZDoom 2.2.0 in 2016, but with fewer features than before in that legacy mode.

Beginning in December 2016, following ZDoom's official halt in development,[5] GZDoom's development is now detached from ZDoom and the port is the first-level upstream for other forks (namely QZDoom and Zandronum), without looking back at ZDoom.

The current primary direction of development is ZScript, with several other things developed by contributors (for example, OpenGL renderer enhancements by dpJudas). Starting with version 4.3.2, support for the WAD files from the Doom Classic Unity port was added.

Features[edit]

When the QZDoom codebase was merged into GZDoom, the latter gained several new features developed by Magnus Norddahl (dpJudas) and Rachael Alexanderson (Eruanna). These include:

  • Polygonal, 3-point perspective truecolor software renderer (“Softpoly”)
  • Truecolor support for the classic 2-point renderer
  • Postprocessing framework (SSAO, bloom, blur, custom post process shaders, etc.)
  • Vulkan renderer backend
  • HDR monitor support
  • ZScript just-in-time compilation
  • Proper windowed mode support (i.e. you can freely resize the game window)
  • Correct ZDoom software light mode for the hardware renderer
  • High resolution correct version of the software fuzz, for both software and hardware renderers
  • Improved dynamic light math, shadowmaps and spotlights
  • Materials (Classic, normal and specular maps and PBR textures), but not environment maps

Notable exclusives[edit]

These are notable creations exclusive to GZDoom.

Games[edit]

These are total conversions and stand-alone games.

Gameplay mods[edit]

These acclaimed gameplay mods can be used with the vast majority of classic Doom maps.

Maps[edit]

These are Cacoward-winning maps. Some are partial conversions with custom weapons or monsters.

External links[edit]

References[edit]

  1. Oelckers, Christoph (29 April 2017). GZDoom 3.0.0 Released. ZDoom forums. Retrieved 30 April 2017.
  2. Oelckers, Christoph (16 April 2017). "Removed FMod as the last remaining piece of code that is not GPL compatible." GitHub. Retrieved 28 April 2017.
  3. Oelckers, Christoph (17 April 2017). "Removed all Doom Source license and all default Raven copyright headers and replaced them with GPLv3. Also fixed the license in a few other files." GitHub. Retrieved 28 April 2017.
  4. Oelckers, Christoph (4 December 2015). How do you learn how to build source ports?. Doomworld Forums. Retrieved 17 December 2015.
  5. Randi (7 January 2017). ZDoom is Dead. Long live ZDoom. ZDoom forums. Retrieved 19 December 2021.


Source code genealogy
Based on Name Base for
ZDoom GZDoom GZ3Doom
GZDoom for OS X
GZDoom Vintage
Freedoom For Android
LZDoom
QZDoom
ScoreDoom
Skulltag
Tower of Babel
VKDoom