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.
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.
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.
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.]