Monday, December 10, 2018

Source Ports, IWADs, and PWADs


This article was written under the assumption that the reader is entering the classic Doom community with little or no knowledge of its associated software.

The 1993 release of Doom was run through an executable program / application (.EXE). When you start it up, it looks for and then loads its associated .WAD file. WAD is an acronym - "Where's All the Data?" - and it contains all of the game's resources from music files to sound clips, sprites, textures, and the maps themselves. The longevity of the community stems from the ability of its members to:
  • create their own WAD files
  • make and edit new maps
  • share these WADs, especially over the internet
  • load it in the .EXE alongside the WAD that came with the game
The last operation patches the original's data as it is loaded, replacing and adding resources without having to permanently alter anything. For this reason, user-created WADs are typically referred to as PWADs (P = Patch) and the commercial files are called IWADs (I = Internal / Initial).

The original .EXEs were limited to running in DOS but the release of the source code allowed knowledgeable individuals to modify it. Intrepid coders have added myriad features to the Doom engine in the intervening years, not to forget the fact that it's been ported to just about every operating system imaginable. People refer to these branching executables as source ports. Some of the WADs being made today will play in the original .EXE but plenty of others require the use of a port. In order to get the most out of the community, then, you will need:
  • An IWAD
  • A Source Port

Most of the PWADs being made for the game today are for Doom II. I believe this to be a result of the sequel's expanded bestiary and player toolkit. A significant minority are still being designed for The Ultimate Doom, though. The two major IWADs come with these two releases. They can be purchased for a relatively low price considering the size of the community content that you are effectively buying into. Final Doom is another "game" but its mechanical featureset is essentially identical to Doom II. It does have two additional IWADs, TNT: Evilution and The Plutonia Experiment. TNT and PLUTONIA are rarely utilized as initial WADs but they are still used for some significant projects due to their prestige. You can play their mods with Doom II, depending on the source port, but you'll encounter missing graphical assets where the authors piggybacked off the ones that were part of the IWAD.

I recommend grabbing them off GOG or Valve's Steam platform but there is an open source alternative for people who for whatever reason will not pay but still want to play. FreeDoom replaces the original assets with legally distinct but functionally similar resources in order for people to be able to use it to play user created content and still have it make some semblance of sense. I am mentioning FreeDoom because I don't want you to feel pressured into buying the IWADs to enjoy this stuff when there is a free alternative, even if it won't fit aesthetically alongside many of the available mods. I think that the original campaigns are definitely worth the money if you can afford such a luxury.

There are a broad variety of source ports available and each one has its own perks for users with specific interests. I recommend downloading GZDoom. It is capable of loading the vast majority of PWADs and includes support for Heretic, Hexen, and Strife all in one convenient package. If you're interested in gameplay modifications then it also has the advantage since, again, most of them are made using GZDoom's featureset. I will defer any multiplayer opinions to people who possess far more experience in utilizing those specific ports, e.g. Doomkid. The only one that I have ever used is Zandronum when playing co-op with my son.

GZDoom is offered in a "portable" format which means that it's provided ready to go in a .ZIP archive and thus does not require a formal installation process. Just unzip it to a convenient directory and it's ready to go. I would also copy all of the IWADs you have to the same location. GZDoom is capable of detecting them in known install locations, e.g. your Steam folder. If you want to just play one of the IWADs then you can run the .EXE and pick it from the launch window.


Most of the community's mapsets can be found on the /idgames archive. There are some notable exceptions but if you want to get your toes wet then /idgames is the lake to be at. You can navigate it by folders but Doomworld has two different frontends available. I link to the "classic" (legacy) archive which is more lightweight. Linguica gave it a facelift in 2017, though. The new frontend actually credits uploads to forum members when appropriate and allows for screenshots, longer reviews, and is more social (likes / shares / etc.).

Gameplay mods are largely decentralized because their authors typically treat them as ongoing projects subject to constant tweaks, revisions, and updates. Brutal Doom, the scene's poster child, has been in development since 2010. Its feature set has changed so much that its users can be nostalgic about specific releases. The lengthy time between "stable" versions of ZDoom was certainly a factor; modders took to designing around in-progress builds to take advantage of cutting-edge features. The mercurial nature of mod development coupled with the lack of "regular" source port updates created a culture that is disinterested in making frequent uploads to /idgames via a relatively cumbersome system. Because of this, the best places to look for current mods are on the ZDoom forums (where a separate forum exists for them) or the Zandronum board, followed by ModDB. Occasionally, a brave soul posts one to the Doomworld Forums themselves.

The way I typically play PWADs after downloading them is by dragging them on to the GZDoom executable. It gets a little more complex if you're using mods because, in the load order, later files supersede the early ones. If you want to try out a lot of gameplay mods and run them over mapsets then I would suggest getting familiar with a launcher application like ZDL (ZDoom Launcher). ZDL isn't actually specific to ZDoom as a source port so if you decide to check out another engine then you can apply that experience elsewhere.

Some PWAD .ZIPs include  .DEH files. These change limited but hard-coded aspects of the original executable, allowing authors to perform cosmetic changes like names displayed on the automap and the story delivered in the text screens. It also allows them to change the ways in which Doom's actors behave. If the PWAD comes with a .DEH patch then it's a safe bet that you should load it alongside the WAD. This isn't absolutely true but it's unlikely to hurt anything. If the .ZIP includes multiple .DEH files, though, then I would double-check the package for documentation to see what each one does.