Doom monster
A Slightly Condensed Genealogy of DOOM Source Ports
By James 'Quasar' Haley
Lead Programmer, Team Eternity

Team TNT Goes BOOM

As already mentioned, most modern ports stem from the v0.2 release of DosDOOM. The largest and most organized effort to stem from this port was Team TNT's BOOM engine. Headed by Ty Halderman, staffed with at least half a dozen programmers including Lee Killough and Jim Flynn, and including well- organized beta-testing and mapping teams, the BOOM Team was by all standards the Microsoft of DOOM port development. BOOM's primary purpose was to fix as many bugs in DOOM and remove as many of the engine's limits as was practically possible. In only a few months of work, notorious problems such as visplane overflow, a limit on sidedefs in view, a limit on sprites in view, a savegame buffer limit, and many, many more were utterly eliminated. But this was not all. The BOOM team also managed to seamlessly integrate dozens of new, highly- sought after editing features, and squeezed almost every last bit out of the WAD level format to allow for thousands of generalized line triggers and sector types. Lee Killough also dedicated much of his time to optimizing the DOOM engine. One of his modifications to the WAD code actually improved the speed of the game over 300%.

As mentioned earlier, changes made to DOOM in both the original Linux porting process as well as during Bernd Kreimeier's editing had left a number of problems in the source, especially for demo and map compatibility. Although it was unknown to the community for several years, it was later revealed that John Carmack gave the BOOM team limited, temporary access to the original DOS DOOM source, in part to help remedy these problems. So BOOM is actually a hybrid between DosDOOM v0.2 and the original MS-DOS DOOM source.

This huge effort resulted in a very popular source port, and the new BOOM editing features swiftly started to become a de facto standard. A port might have tons of cool stuff, but if it didn't implement BOOM editing features, people probably weren't editing for it at the time.

Unfortunately, the BOOM team began to shatter after the v2.01 release of their engine, largely due to tension between Ty Halderman and Lee Killough, some of which is permanently recorded in the changelogs and CVS log entries in the BOOM source code. The fabled Phase II of the engine, which was to include features such as 3D mapthing clipping, scripting, and possibly even room-over- room, would never come to be.

The Proliferation

Meanwhile, as BOOM was developing, many other source ports were also beginning to bloom. Chief amongst them was DosDOOM itself, now backed up by its own dedicated team. DosDOOM headed in a different direction than BOOM, and focused largely on gameplay enhancements. It had many wacky features like making zombies randomly explode (an idea taken from the DOOM instruction manual, where it says that people who went through the portals would suffer "random full-body explosion" later on). It was also far ahead of its day with features like mouselook and jumping. DosDOOM was initially very popular, and it rivaled BOOM for size of user base at its height. However, it began to decline rapidly thereafter, with some versions suffering severe usability problems.

DOOM Legacy also emerged immediately after the release of DosDOOM v0.2. Its development was parallel with that of DosDOOM, and the two ports cooperated to some extent at times. Legacy's primary goals in the beginning seemed to have been very much like BOOM's -- providing a stable and compatible DOOM engine. Boris of the DOOM Legacy team even mentions a high v1.9 demo compatibility rate in his changelog. Slowly, however, Legacy shifted along with DosDOOM toward a more modern-feature-oriented strategy. Despite their common goals, though, the two ports fell into disagreement, and there was at least one infamous flaming incident between their authors.

JDS, and an OGRE in Our Midst

Once the decline of DosDOOM was well underway, Ty Halderman made a couple of interesting proposals to try to save both source ports. A merger was to occur between DosDOOM and BOOM. Many people were very outspoken about this on both sides of the issue. Also, Ty tried to found a community-driven committee called the Joint Doom Standards group, or JDS. This idea was widely supported and hailed as a necessity to maintain coherence in DOOM editors and maps, and was supported by former members of the BOOM team, DosDOOM, and DOOM Legacy. Unfortunately, it didn't manage to get on its feet.

Nor did the merger between DosDOOM and BOOM, which became a project known as OGRE, or Open Gaming Resource Engine. OGRE was to be a DOOM- compatible, but totally general, 3D game engine. A membership list was started, which at its height contained several hundred names, including John Carmack himself. The project started out with a noble idea and a lot of posturing, but quickly burned out. Once the website had not been updated for two or three months, everyone knew that the effort was dead. DOOM source port unification would never occur.

Back | To Part 2