m (→External links: clean up) |
|||
(One intermediate revision by the same user not shown) | |||
Line 10: | Line 10: | ||
; AM_* |
; AM_* |
||
− | : |
+ | : [[Automap]] code |
; D_* |
; D_* |
||
− | : |
+ | : Initialisation/general code |
; F_* |
; F_* |
||
− | : |
+ | : "Finale" (end of game) and "[[screen melt]]" code. |
; G_* |
; G_* |
||
− | : |
+ | : Main game loop/control |
; HU_* |
; HU_* |
||
− | : |
+ | : [[Heads-up display]] |
; I_* |
; I_* |
||
− | : |
+ | : System-specific code |
; M_* |
; M_* |
||
− | : |
+ | : Miscellaneous (includes the menu) |
; P_* |
; P_* |
||
− | : |
+ | : Game logic/behaviour |
; R_* |
; R_* |
||
− | : |
+ | : [[Doom rendering engine|Rendering engine]] |
; S_* |
; S_* |
||
− | : |
+ | : [[Sound]] code |
; ST_* |
; ST_* |
||
− | : |
+ | : [[Status bar]] |
; V_* |
; V_* |
||
: General graphic rendering |
: General graphic rendering |
||
; WI_* |
; WI_* |
||
− | : |
+ | : End-of level "intermission" screen |
; W_* |
; W_* |
||
− | : |
+ | : [[WAD]] file loading |
; Z_* |
; Z_* |
||
− | : |
+ | : [[Zone memory|Zone memory allocation system]] |
The following are common prefixes for functions, although they do not denote a particular subsystem, and there are no files with these prefixes: |
The following are common prefixes for functions, although they do not denote a particular subsystem, and there are no files with these prefixes: |
||
; A_* |
; A_* |
||
− | : |
+ | : Action functions invoked in sprite movement frames (these are the functions used in [[Dehacked]] "code pointers") |
; PIT_* |
; PIT_* |
||
: Callback functions passed to P_BlockThingsIterator (see p_maputl.c) |
: Callback functions passed to P_BlockThingsIterator (see p_maputl.c) |
||
Line 53: | Line 53: | ||
== External links == |
== External links == |
||
* [http://www.doomworld.com/10years/ports/ports01_1.php Doomworld - 10 years of Doom] - some history of the Doom source release. |
* [http://www.doomworld.com/10years/ports/ports01_1.php Doomworld - 10 years of Doom] - some history of the Doom source release. |
||
− | * {{idgames|id=8802| |
+ | * {{External Link|site=idgames|id=8802|text=Doom source code}} (Original [[Licences#Source code release|DOOM Source Licensed]] version) |
− | * {{idgames|id=14576| |
+ | * {{External Link|site=idgames|id=14576|text=Doom source code}} (Revised [[Licences#GNU_General_Public_License_.28GPL.29|GPL]] version) |
==See also== |
==See also== |
Revision as of 04:53, 23 March 2020
The Doom source code was released on December 23, 1997, initially under a not-for-profit license. Later, permission was granted to re-release the source code under the GNU GPL on 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.
Because of legal issues regarding the DMX sound library developed by Paul Radek which was used for Doom, the release was of the source code to the Linux port of Doom. Despite this, within several months, several ports had been made back to DOS. As a result, many source ports exist.
Source code structure
The source code can be divided into sections. Files and functions within the source code have one- or two-letter prefixes to denote their subsystem.
- AM_*
- Automap code
- D_*
- Initialisation/general code
- F_*
- "Finale" (end of game) and "screen melt" code.
- G_*
- Main game loop/control
- HU_*
- Heads-up display
- I_*
- System-specific code
- M_*
- Miscellaneous (includes the menu)
- P_*
- Game logic/behaviour
- R_*
- Rendering engine
- S_*
- Sound code
- ST_*
- Status bar
- V_*
- General graphic rendering
- WI_*
- End-of level "intermission" screen
- W_*
- WAD file loading
- Z_*
- Zone memory allocation system
The following are common prefixes for functions, although they do not denote a particular subsystem, and there are no files with these prefixes:
- A_*
- Action functions invoked in sprite movement frames (these are the functions used in Dehacked "code pointers")
- PIT_*
- 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.
External links
- Doomworld - 10 years of Doom - some history of the Doom source release.
- Doom source code (Original DOOM Source Licensed version)
- Doom source code (Revised GPL version)
See also
- Heretic/Hexen source code