Sponsored By

Starting a new column reprinting classic Game Developer magazine articles, this January 1994 premiere issue article goes behind the scenes of Id Software's Doom, talking to John Carmack and revealing technical specifics of the seminal game's

January 15, 2009

21 Min Read

Author: by Alexander Antoniades

[Starting a new column reprinting classic Game Developer magazine articles, this January 1994 premiere issue article goes behind the scenes of Id Software's Doom, talking to John Carmack and revealing technical specifics of the seminal game's creation.] In an era of where it often takes 20MB to put in all the advertised features, they did it in less than four. At a time where soundcard compatibility was a big problem, they added on Disney Sound Source as an afterthought for demonstrations. As many larger game companies are coming to terms with cross-platform development, to them it comes naturally. They write games that would take larger companies 30 people or more, and the whole company comprises seven people. They are the programmers at Id Software, and what they are doing could change the PC game industry forever. Wolfenstein 3D It was actually Id’s previous game, Wolfenstein 3D, that earned its accolades. The premise of Wolfenstein 3D was straight out of a B-movie, in which players battle their way out of a Nazi castle. What made Wolfenstein 3D stand out was its brilliant use of bitmapped images, digitized sounds, and blazing speed to give the illusion of a three-dimensional world. Id made use of a technique known as texture mapping that, combined with a raycasting engine written in assembly language, allowed the three-dimensional graphics to be playable on the lowest common denominator machine, at the time a 286. Perhaps, the most amazing aspect of Wolfenstein 3D had to do with its distribution. It was shareware. Using a time-honored shareware technique, the first 10 levels of Wolfenstein 3D were free. It was the additional levels that were sold directly through the distributor, a shareware game company called Apogee. This allowed people to copy the first part of the game, which was public domain, and see how well the game performed on their machines before they bought the whole game. The free teaser file spread like a virus until it was all over the world, with over 20 percent of the orders for the complete version coming in from overseas. Here is where Id has potentially made its biggest impact on the PC game industry. By releasing a state-of-the-art game through shareware, it was able to destroy the old shareware game sales record, set by Id’s own Commander Keen series, by over five times. By totaling sales of over 100,000 units by the end of 1993, Id proved that professional-quality games could be successfully marketed via shareware. To truly compare shareware to traditional distribution, six months after the release of Wolfenstein, Id released a revamped version of Wolfenstein called Spear of Destiny. As of late 1993, Spear of Destiny and Wolfenstein had sold 100,000 copies apiece and Wolfenstein sales were still going strong, but Spear of Destiny sales were slipping as it was being forced off of retail shelves by newer games. However, it’s not the sales total that makes this distribution revolutionary, but the profit margin. For example, for every game of Spear of Destiny sold, Id would get about $8.00, half the total return split with the retail distributor FormGen. In the case of a Nintendo cartridge of Wolfenstein, the return would only be about $2.00. But, by using a shareware distribution system, Id was able to recoup the total price of the game minus the actual cost or materials and having an operator to take orders. In the case of Wolfenstein, the cost of materials was less than $5.00, and the complete game cost $50. Although they did split the profit with Apogee, this gave them a profit margin any software company would envy. The Evolution of Id Id Software has come a long way from its humble roots in Shreveport, La. It was at a company that made monthly game disks called Softdisk where the majority of the Id development team met. John Romero, one of Id’s founders, was forwarded some fan letters that were sent in and tacked them up on the wall in his office. He had never given them a second thought until one day, when he was reading an article in a game magazine about a shareware game called Caverns of Kroz, he noticed a familiar address. It turned out that Scott Miller, president of Apogee, saw one of the games Romero and his colleagues had created for Softdisk and wanted it for his shareware distribution company. Miller, knowing that all mail to Softdisk would be opened at the front desk, wrote phony fan mail to the programmers under a variety of names and always ended the letters with “please write me at.” When John Romero saw the same address on all the fan mail, he realized he didn’t have as many fans as he thought. But the one real fan he did have would have a profound impact on his life. Miller knew talent when he saw it, and he wanted what was going to be the future core of the Id development team to work for him. Miller gave Romero and his team a $2,000 check, and they gave him a paragraph containing a game idea that would become the first of the Commander Keen trilogy. At this point, John Romero, John Carmack, and Adrian Carmack quit their jobs at Softdisk and formed Id Software with Apogee acting as its distributor. After a brief time in Madison, Wis., the Id team moved to its current headquarters in Mesquite, Texas. It is in this corner of suburban Dallas that Id Software has really come into its own. Joining the founding members of lead programmer John Carmack, project leader John Romero, and graphic artist Adrian Carmack, were fellow Soft-disk alums chief operations officer Jay Wilbur, creative director Tom Hall, and printed graphic artist Kevin Cloud. They formed the primary development team for Wolfenstein and Spear of Destiny, and, on completion of those two projects, reaped the rewards. The Id Domain Id’s main working environment is a series of PCs networked together, some of which run DOS. However, when it comes to programming, NeXTStep is the team’s weapon of choice. John Carmack has never regretted trudging through the snow in Madison to buy a NeXT cube. The level editor that Romero made for Doom took five human-months to make, but would have taken much longer on any other operating system. By writing in ANSI C on NeXTStep, Id Software is able to develop and test in a true programmer’s environment. Then, using a network, developers are able to send the code to a test PC running DOS and recompile what they are working on to run the game on its natural environment.

The Super Nintendo Entertainment System (SNES) version of Wolfenstein was developed mostly on the NeXT machine, using an Apple IIGS to compile and retarget the ANSI C code. For future SNES development, Id had planned to retarget the Free Software Foundation Assembler and GNU C compiler to generate 65816 code on the NeXT machine, using a ROM emulator card to upload the code compiled in NeXTStep 486 directly to the Nintendo SNES. Figure 1 shows DoomED, a good example of what Id can do in NeXTStep. It has the functionality of a simple CAD program and allows level designers to concentrate on level design instead of programming. From DoomED, the level designer can place monsters and objects (the different colored blocks on the screen), but, more importantly, can manipulate the walls, ceilings, and floors of the game environment. The editor allows bitmap combination from a group created by the graphic artists, so the level editor can improvise without having to draw new bitmaps. Although it has often been theorized that Id uses a lot of assembly language in its development, the main language used is ANSI C. “Assembly language is almost dead,” declares Carmack. “Doom has only two assembler routines: one to vertically stretch a column and the other to horizontally texture-map a row. Everything else is in C.” If all of Doom was written in assembler and the programmer could manage the overhead correctly, Carmack theorizes it would only make the game 15 percent faster. And, although the main raycasting trace in Wolfenstein was written in assembly language, Carmack says he could write Wolfenstein faster in C because of today’s better algorithm technology. Writing in ANSI C eases the strain of porting to other operating systems and recompiling the code on DOS, and NeXTStep helps clean out bugs during the development process. Carmack feels he could get Doom up and running in a window on a Macintosh over a weekend, but Id won’t write the port itself. Id is willing to work with advocates of various operating systems, and talk of Macintosh, OS/2, and UNIX versions of Doom were discussed as possibilities. The Core of Id The two people at the core of the Id development team are the biggest fans of Id games and their harshest critics. Lead programmer John Carmack is clearly the main reason behind the technical superiority of Id’s games. Talking to him about the games he’s worked on is almost anti-climactic because he always emphasizes how much better he could make them today. When the contractor Id hired to do the network drivers for Doom didn’t come through, Carmack matter-of-factly wrote a network driver and had it up and running the next day. In contrast to Carmack’s eternal pessimism regarding his past creations, project specialist John Romero is the biggest fan of Id’s games that you could ever hope to meet. His enthusiasm is infectious as he plays the latest beta making his own sound effects with his mouth to compensate for the game sound effects that haven’t been added in yet. It is this mix of diehard programmer who plays games and diehard gamer who programs that ultimately makes Id’s games as good as they are. True to form, John Carmack was already displeased with Wolfenstein by the time it was released to the public. His game engine had been completed in the first month of the six-month development cycle and, by the time the first copy of Wolfenstein was buzzing across the modems of America, he knew he could do better. While the rest of the Id development team was hard at work completing Wolfenstein, Carmack was writing the game engine that would later be licensed to a company called Raven for the game that was to become Shadowcaster. This game engine featured more than a one-point perspective and allowed objects to be taller than the player. It was around advances made in the Raven engine that the new game (tentatively titled “Green and Pissed”) was to be built. But in the making of what was to become Doom, Id Software severed its relationships with two of the parties that had been around since its beginning. In the initial development of Doom, a determination was made as to what direction Id’s games should take. This decision resulted in founding member Tom Hall leaving Id Software. Carmack and Romero felt that Hall’s creativity was coming into conflict with gameplay. As creative director, Hall was insisting on continuity in the storyline and trying to give the game a plot. As Romero would later say, “You don’t need much of a storyline if your game is good.” “The game designer shouldn’t be making a world in which the player is just a small part,” echoed Carmack. “The player’s the boss; it’s your duty to entertain him or her.” In the midst of this debate and other creative differences, Hall left Id to become project manager at Apogee. Moving On After the fallout from Hall’s departure, Id crystallized its design ideology. Id’s mission is to take cutting-edge technology and turn it into highly playable games. The plot, or lack thereof, in Doom is a good example. It involves the vague idea of starting in a space station and descending into Hell. Doom, and presumably all of Id’s future games, involves just enough of a storyline to set a mood and inject snippets of pop culture, mostly from B-movies. Perhaps it was Carmack who put it best, “We put the player in a dangerous situation and basically let the fight or flight instincts take over.” Another staff split involved Id taking over the distribution for Doom instead of using Apogee. Although the Id staff was pleased initially with Apogee, who gave Id its start in shareware games, the staff felt that Apogee wasn’t equipped to handle the onslaught of phone orders that would accompany Doom. In an ironic twist, after Id had contracted a company called Digital Magnetics to handle the phone orders, Apogee realized that Id was right about its phone order capabilities and ended up hiring Digital Magnetics as well. Id continues to deal with Apogee with ongoing projects such as Wolfenstein II, which Apogee will develop itself using a slightly souped up Wolfenstein engine. Id still recommends Apogee to potential game programmers as a good place to start. With the knowledge that Carmack had gained from working on the Raven engine, he started work on Doom. The Raven engine was much more advanced than Wolfenstein. It could render sloping floors, map texture on any side of a cube (in Wolfenstein, a cube had to be the same on all sides), allow different textures for the ceiling, and create walls at angles other than 90 degrees. Unfortunately, the technology used by the Raven engine was as advanced as it would get, so to work on Doom, Carmack had to start from scratch. Three revisions later, Carmack had a game engine with performance that met his expectations. By breaking the map down into small sectors and reordering them so that the engine was able to make use of the 486’s internal cache, the engine was optimized for fast machines. The final Doom engine has a medium detail mode option that doubles the pixel width horizontally and triples the speed of the game on slower machines. Another important addition to the Doom engine was allowing all objects to have physical characteristics, such as weight, momentum, and even sound. For example, bullets were actually physical projectiles in the Doom engine as opposed to Wolfenstein, where they were just calculations. Improved AI routines allowed monsters to interact with each other, and light sourcing gave a better sense of depth. Improved Doom Features One feature that was built in from the beginning was a multiplayer option. Id added this feature with an eye toward the future. The Doom designers felt that multiplayer games would become increasingly important as the Internet and other forms of commercial networks become part of more homes. Although Id expects less than 10 percent of players of Doom to make use of the ability, up to four players can join the same game over a Novell IPX network. Id designers felt it was important to start working on multiplayer games now, so they would have the experience when it was more crucial to their development.

fig1.jpg Figure 1. DoomED—Using CAD to Build Hell

As soon as the network option was added, however, more complications cropped up. For example, the line-of-sight checks that the monsters’ AI programming went through were slowing the game because they had to scan for every player. Another problem with the AI routines was that monsters were targeting some players, but ignoring others. These problems were fixed, but there was a minor problem that had to stay in the game. The sprites for the individual players were drawn holding a generic gun, which wasn’t a big issue when there was only one player. But, with multiple players, an opposing player couldn’t tell which of the seven different weapons another player had. To give the players this viewpoint, seven complete sets of sprites would have to be drawn for the character, and the design team felt it wasn’t that important. The graphics for Wolfenstein were drawn completely by Adrian Carmack, but for the Doom graphics, the Id team knew it was going to need help. It enlisted the aid of professional model designer. The models are placed on a revolving tray where they are secured to the base. There are eight pegs in the tray that represent the eight points of view that are needed by the game engine to render the creatures. Next, the models are animated frame by frame by moving the model and then rotating it to each specific vantage point the engine uses to display it. The images are digitized by a video camera hooked up to the NeXT machine. When each frame is captured, it is imported over the network into a PC running Electronic Arts’ Dpaint, where the photographic source is translated into the resolution of the game. The images are drawn at full brightness, and the game engine varies the contrast for light sourcing.

fig2.jpg Gregor Punchatz created a setup that would easily allow the results to be digitized.

Sound has generally been a low priority in Id’s development process, partially because there is no sound programmer on staff. Sound quality for Doom would be better than in Wolfenstein because it was recorded at 11KHz instead 7KHz. Id feels that 16-bit sound is too much for Doom or any other action game in terms of effort, disk space, and processor time. Id designers were set to support the Roland Sound Canvas and most major sound cards, when they started receiving angry letters from supporters of the Gravis UltraSound card. They thought the UltraSound card would be too hard and too much work to support, but the Id sound contractor trimmed down the Gravis code and UltraSound support was added to the final game. As good as the gameplay was in Wolfenstein, there was room for improvement. Id took advantage of what it learned from its experience with Wolfenstein to make Doom better. For example, secret doors in Wolfenstein were often indistinguishable from the walls around them, so the only way to find one was to search every wall on the level. With Doom, all secret doors have some distinguishing mark to differentiate them for the player. More weapons were added, each with it’s own unique flavor. Unfortunately the biggest weapon, the BFG 9000, had to be scaled down because it was so elaborate, it slowed the game to a crawl every time it was fired. Another enhancement was an auto-mapping mode, so players could navigate confusing passages from a two-dimensional, top-down perspective. One deliberate playability issue that rose from adding the automap feature was that monsters would not be visible, and new mapping doesn’t take place while in automapping mode. This limitation came about during playtesting because once the playtesters were in the automap mode, they tended to stay there and not play from the actual three-dimensional game screen. “The game is not a challenge to be efficiently beaten,” said John Carmack. “It’s something you’re supposed to experience.” Cracking the Doom Crib One aspect of Wolfenstein the Id designers didn’t plan for was the cottage industry of hackers who rose to the challenge of hacking Id’s code. Maybe it was Wolfenstein’s modem based roots that drove people to hack map editors, bitmap editors, and sometimes entire modified games using the PD 10 level teaser file. Apogee contended that all these mutations of the game hurt sales because people had in essence much more than 10 free levels at their disposal for free. Id designers take a different view; they don’t mind and feel that people have the right to make whatever use of the game that makes them happy. They are planning the same thing with Doom and will even release some of the technical specifications. But this time, the game will run a checksum to verify that it hasn’t been altered. If it has been altered, it will display a message that says the version being played is not the original and where to get the original. Alpha and beta leaks have plagued Id from the beginning, and Doom was no exception. In the early development stages of Wolfenstein, there was an idea to have a contest where whoever found a secret room hidden somewhere on one of the levels would win $10,000. But the first person to call up was a pirate who called during the beta testing cycle, and the whole prize idea had to be scrapped. In the early development of Doom, an alpha version of the game made it into such wide distribution that people were asking the technical support staff why the sound didn’t work on their machine. The reason, of course, was that sound hadn’t been added yet. The most disconcerting story has to do with an alpha version of the Wolfenstein SNES cartridge that was given to handful of game magazine editors and somehow made into the hand of a pirate in Hawaii who was making black market cartridges. To try to keep this kind of thing from happening, Id has now set its beta policy so that games are password protected and tightly controls the how many beta copies are distributed. Foreign markets are important to Id, and designers made a greater effort to make games more accessible. They made all the characters graphically based not font based, so Id can give the graphics files to foreign distributors to be translated, and the game doesn’t need to be recompiled. Foreign orders accounted for about 20 percent of Wolfenstein sales, and Id expects foreign orders to make up a third of Doom sales due to a better foreign distribution deal. The one snag that has lead to various rumors is that Wolfenstein has run into trouble in Germany. Id stated that Wolfenstein is banned there, not because of the Nazi content, but because of violence, and Id expects the same restriction to be placed on Doom. Despite an average of five calls a month Id receives from venture capitalists offering to make the company public and big, Id Software is dedicated to remaining private and small. Id designers feel they have the perfect size for a development team that works on one or two projects. The Id growth plan involves working with other small developers and licensors. That plan follows what happened with Wolfenstein in which Id developed a new piece of technology and a showcase game that uses it, then licensed the technology to other software companies who used Id tools and code to make games. In the case of Wolfenstein, Id licensed the technology to JAM Productions who made Blake Stone and to Apogee for Wolfenstein II. Id plans on developing more arrangements like the one it has with Cygnus Studios. Cygnus developed some games for Apogee that Id liked, so Id made an offer to Cygnus to move to Texas and work with the Id team. Cygnus is now working on a cyberpunk role-playing game using the Doom engine and all Id’s tools. When the Cygnus game is finished, Id will act as the shareware distributor. After the release of the shareware version of Doom, Id will go to work on the commercial version of Doom the same way it made the Spear of Destiny version of Wolfenstein. Doom’s commercial version will have the advantage of its experience in the shareware market and any unusual problems that occurred with the shareware version will have been fixed. This is another aspect of shareware distribution that is desirable. As irregularities crop up, usually due to the variety of hardware in the PC marketplace, they can be fixed immediately and incorporated into a new revision that can be given to the next person downloading Doom off of Id’s bulletin board system. The Future of Doom The next project was to be Doom for the SNES, but in making Wolfenstein for Nintendo, all that changed. Wolfenstein for the SNES was technically very easy, it was Nintendo that made it hard. Nintendo had Id remove the Nazi imagery and change the German Shepherds into giant rats, which wasn’t a problem. Over the next couple of months, Nintendo picked over little details and frustrated the Id team to the point that it dropped all future SNES development. The console system that Id is now looking at is the Atari Jaguar. The Id designers were very excited about it initially and were going to develop for it after they completed the SNES version of Doom. Id is betting that Atari will ship over 500,000 Jaguar consoles. After their experience with Nintendo, the Id designers decided to primarily work for the Atari Jaguar. After that, it’s off to work on the next showcase game. The subject matter hasn’t been determined yet, but the technology has. The next game engine will have true three-dimensional perspective, where detailed objects can be viewed from any distance or angle. If the Id team can keep its high standards of performance and playability, maybe it will feel compelled to take it easy for a while, but don’t bet on it. [This article was written by Alexander Antoniades, at the time associate editor of Game Developer and assistant editor of OS/2 Magazine, and was first published in Game Developer magazine, premier issue, January 1994.]

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like