Doom source code

1,359 bytes added, 21:36, 17 March 2018
See also: +license, +strife code
The '''Doom source code''' was released [[Timeline#1997|December 23, 1997]], initially under a not-for-profit license. Later, permission was granted to re-release the source code under the GNU [[Wikipedia:GPL|GPL]] in on [[Timeline#1999|October 3, 1999]].
Before release, the source code was tidied up by [[Bernd Kreimeier]]; the source release includes a changelog of his contributions. Several documentation files are also included. The original plan for the source code release involved a book Kreimeier was to write on the Doom engine; however, due to Doom's decreasing relevance in the gaming community, it was eventually judged not to be a marketable idea, and the project was abandoned. The source code was then released to the public.
: Callback functions passed to P_BlockThingsIterator (see p_maputl.c)
; T_*
: "[[Thinker]]" functions set to be called each clock [[tic]] for some purpose (eg, moving platforms or flickering lights)
A detailed list of files and their purposes can be found in [[Doom source code files]].
==Doom Classic==
''[[Doom 3: BFG Edition]]'' incorporates the "Doom Classic" port allowing to play [[The Ultimate Doom]] and [[Doom II]] on 32- and 64-bit Windows, on the [[Xbox 360]] and on the [[PlayStation 3]]. There are a few changes done to the source code and packaging here. Notably:
* Bugs introduced in the LinuxDoom code by Bernd Kreimeier's cleanup and changes are absent
* [[MUS|MUS2MIDI]] and [[TiMidity]] are incorporated for MIDI playback, instead of using [[DMX]]
* A few [[static limits]] have been raised, notably [[visplane]]s and [[drawseg]]s to accommodate for [[No Rest for the Living]]'s levels
* Several #defines have been moved out of their original files and into either Precompiled.h or defs.h (both new files)
* The [[Master Levels]] and No Rest for the Living are handled as mission packs like [[TNT: Evilution]] and [[Plutonia]]
* The French language file is still present but emptied, French is removed from the language_t enum
* The code is available under the GPLv3 or later
Note: this should not be confused with the iOS port also named [[Doom Classic (iOS)|Doom Classic]].
== See also ==
* [[Doom Source License]]
* [[Heretic source code]]
* [[Hexen source code]]
* [[Strife source code]]
* [[Doom 3 source code]]
== External links ==
* [http Doomworld - 10 years of Doom] - some history of the Doom source release.
* {{idgames|id=8802|title=Doom source code}} (Original [[Licences#Source code release|DOOM Source Licensed]] version)
* {{idgames|id=14576|title=Doom source code}} (Revised [[Licences#GNU_General_Public_License_.28GPL.29|GPL]] version)
* [ GitHub repository for Doom]
* [ GitHub repository for Doom Classic]
==See also==
* [[Heretic/Hexen source code]]
* [[Doom 3 source code]]
[[Category:Doom engine]]