A Guide to creating levels for DOOM

With this guide I try to convey the steps needed to build a map successfully, for those new to DOOM mapping or those returning to mapping after a lengthy period of absence.




Part 1

Step 1

Step 2

Step 3

Step 4




Part 2

Preamble

Constructing and/or editing a PWAD for DOOM, DOOM2, HERETIC, HEXEN or STRIFE, is a lot easier than doing the same for any of the latest games such as Doom3, Quake4, etc. A PWAD could consist of just a single map, also referred to as a level, or perhaps several maps.





To get a handle on the mapping process a certain amount of reading is required. It is important to learn the correct nomenclature and to that end I recommend these documents:


The idTech1 engine was build at a time when computers were just becoming available for the ordinary consumer. The operating system was DOS in various releases and CPUs ran at speeds of up to 100MHz. If a system had more than 640kB it was considered advanced. With these constraints in mind, there was not much room into which a game such as DOOM could be squeezed. So the designers had to make a lot of compromises. Programming was, more or less, in its infancy and a few glitches were overlooked in the DOOM engine.


Right from the onset, because of its novelty and popularity, the DOOM program was hacked by some enterprising programmers. This eventually led to some editing utilities such as DeHacked which allowed the exe file to be modified and to the development of early lump editors, such as NewWadTool(NWT) which allowed resource handling, and map editors such as DEU for map construction, many of which are listed here.


When the source code for the DOOM game was made available by idSoftware, there was no holding back and a flood of source ports became available. A source port is an improved DOOM/2 executable, with many improvments, modifications and bug fixes, to bring a better gaming experience. Over time, many ports have fallen by the wayside but were not forgotten, as many features of those early source ports were incorporated into new ones.

DOOM source ports are split into two factions:

1. Source Ports which replicate only the original Doom/Boom formats

2. Advanced Doom Ports which have their own format but also support the original Doom format

For a full list of sourceports see the Doom WIKI.


The question may arise of 'Why?' one would want to use a source port. The simple answers is, that source ports, being developed fairly recently with modern tools, are more robust. Many glitches of the original engine have been fixed. Many additional capabilities have been incorporated, which in the case of ZDOOM is SCRIPTING and best of all DECORATE, which allows new monsters and/or weapons to be created, or in the case of ETERNITY a system of displaying complex structures with PORTALS. Or GZDoom which renders the game in OpenGL or Vulkan.

But each source port has its own followers. The best way of finding out which source port to use is by trying them all out. Each one has something different to offer. May it be strict adherence to the original DOOM play or rendering in OpenGL eyecandy.




Have fun creating your own maps.




Kappes Buur
July 2011
revised January 2019
revised August 2020
revised October 2021