Today's hot first-person 3-D shoot-'em-ups
It's 1980, and you're playing Atari Battlezone. Looking through your computer's monitor, you track down and destroy enemy tanks and flying saucers. The landscape is a sickly green color, and you keep running into pyramid- and box-shape roadblocks. The little red status bar at the top of the screen doesn't change: It's a clear red strip taped inside the CRT. And those beeps and buzzes are actually the sound track.
Cut to 1995. You're playing LucasArts' Dark Forces or maybe Bungie's Marathon. These are the new breed of games. Like Battlezone, they're
first-person 3-D games
. But in the 15 years that have elapsed since Atari's venture, things have changed a little. Instead of
simple vector graphics
, these games employ texture-mapped
scenery. They handle thousands of colors with ease. Their professionally scored sound tracks employ up to 16 MIDI instruments, digital explosions, and speech. And instead of requiring a special-purpose arcade machine, these modern marvels run on a home computer costing less than $1500.
The Force Is with You
Dark Forces takes place in the
universe created by George Lucas. The story is straightforward: You are Kyle Katarn, a mercenary hired by the Rebellion to find and help defeat the Empire's newest warriors, the Dark Troopers. Along the way, you must battle your way through 14 levels populated with Imperial forces bent on your destruction.
Games such as id Software's Castle Wolfenstein and Doom were the early masters of this genre, and Dark Forces represents a natural evolution -- so natural, in fact, that we were surprised to learn that the LucasArts team that programmed the core game engine had never worked on a 3-D game before -- not even such earlie
r LucasArts games as X-Wing or Rebel Assault.
Under project leader Daron Stinnett, the Dark Forces design team undertook a type of clean-room approach, experimenting with and mastering the techniques required in 3-D action games without taking much from other LucasArts products. They did, however, take key components from previous LucasArts games, such as the iMuse music engine and the Landru cut-scene engine, but the majority of the engine is unique to Dark Forces.
This engine, appropriately code-named Jedi, spends over 50 percent of its time blasting textures onto the wall, floor, and ceiling surfaces of the game's various levels. Some textures are as large as 256 pixels square -- thus, the engine must smoothly render a 32-KB block of memory at 30 frames per second as you move around through 64,000 possible angles of rotation.
But to be able to blast these textures at 30 fps, the developers had to make some compromises. Unlike the X-Wing and Rebel Assault engines, Jedi does not allow curve
d or sloping surfaces. And with the exception of Kyle Katarn's spaceship, which appears in only a few scenes, there are no 3-D objects other than the walls, ceilings, and floors. Objects such as enemy soldiers are simply bit maps that the engine rescales as you approach or retreat.
The developers created the objects as 3-D models and then rendered them into bit maps from various angles. They did most of them in 45-degree intervals, which requires eight views to represent an object. The Jedi engine can support up to 32 angles for each object. The additional angles make the object's rotation appear to be smoother but at the cost of requiring more bit maps and thus more room on the CD and in memory.
Objects such as shields and keys don't even bother with the pretense of 3-D. The engine renders them as the same bit map no matter how you move. Clever use of these components -- textured surfaces, bit-mapped objects with different angled views, and bit-mapped objects with one view -- lets the designers p
resent the marvelously
illusion of a 3-D world.
Despite a lack of 3-D-game programming experience, the developers were able to create the core Jedi engine in less than two staff-years of coding. Of course, developing the music, graphics, and general game play took another 30 staff-years.
One of their key concerns during the development of Jedi was portability. The original Dark Forces was targeted to DOS-based machines with a 486 or Pentium microprocessor. The team coded in ANSI C, avoiding any compiler-specific features.
Programmers writing high-performance software generally write the code in C and compile it. They profile the result to look for bottlenecks. The first step to eliminate bottlenecks is to implement the algorithms more efficiently. Developers may be tempted to hand-optimize the code to get additional performance.
The Dark Forces team did that before backing out and returning to the original C in most instances. They found that a Pentium-aware compiler was
far more capable than a human at reordering instructions to keep the Pentium busy. And according to Stinnett, these optimizations had no effect on 486 performance. Of course, those who try to run Dark Forces on a 386 will pay a performance penalty. The Pentium-ordered code will be significantly slower than if it had been optimized for the 386.
Power to the Mac
Translating the Jedi engine for the Mac presented several challenges. One of the more difficult was a self-imposed limit. The PC version of Dark Forces requires 8 MB of RAM, and LucasArts wanted the Mac version to have the same requirement. The challenge is that on an 8-MB PC running DOS, an extended-memory application such as Dark Forces has about 7.5 MB to play with. But because the Mac OS has to run a GUI, much less memory is available, depending on what extensions are installed. After examining some Mac setups, the team decided that an 8-MB Mac could reasonably be expected to have 4.5 MB free, so that was their target.
Aaron Giles, the lone Mac developer on the Dark Forces team, says that the temptation for Mac programmers is to "load everything into memory." But that would not work here. Therefore, one of his main programming challenges was to efficiently manage swapping components of the game in and out of memory.
Because LucasArts had invested much more effort in the game content than in the game engine, the goal was to bring that content essentially unchanged from the PC. That forced the game to take another memory hit, because the team had to add a MIDI module to the Mac version that could support the same instruments and mixing capabilities as the PC -- eating up about 400 KB of the ever-shrinking memory. To keep this memory hit to a minimum, the game loads only the instruments it needs at any particular point in the game.
To satisfy the demanding Mac crowd, the developers implemented Dark Forces in 640- by 480-pixel graphics rather than the PC version's 320 by 200 pixels. In essence, the Power Mac
is being asked to move five times as much data through the microprocessor and still play as smoothly as a Pentium. And it can do this.
Running a Marathon
Marathon, from Bungie Software Products, is available only for the Mac. It is a network-playable game that can run on a 68020, though a 68040 is recommended, and a native Power Mac version exists. The scenario is similar to Doom -- you are on a space station inhabited by beasts who enjoy shooting at you. Like Doom, and unlike Dark Forces, Marathon provides multiplayer network support (see the sidebar
"A Real Opponent"
Even though Marathon is a Mac-only game, Bungie went to the same lengths as LucasArts by writing the game in portable ANSI C. The company has successfully run the code through numerous Mac compilers, such as Metrowerks and MPW C. It has also compiled on a number of unspecified non-Mac compilers. The effort has proven so successful that Bungie is considering licensing its core game engine.
like LucasArts, Bungie chose to use the Mac's native sound support rather than develop its own. Sound effects can play on any Mac, but playing background music requires the use of QuickTime 2.0. Bungie developed software to create what it calls active-panning stereo sound. As the orientation of the player relative to the sound source changes, the sound levels in the speakers change accordingly, getting louder in one ear and softer in the other. Marathon 2 will take full advantage of it.
Texture-mapping surfaces was as much of a performance challenge for Bungie as it was for LucasArts. According to Doug Zartman, director of public relations at Bungie, texture-mapping floors and ceilings is especially difficult. In fact, for 680x0 Macs, the floor/ceiling texture mapping can be turned off in Marathon, resulting in a significant speedup.
Because you can install the game on a hard drive (Dark Forces runs the main executable file from the hard drive but leaves most of the game on the CD-ROM), you can ch
ange the way components operate. Just as with Doom, third-party editors allow you to customize every level and creature in the game. But unique to Marathon is the physics model, which lets the characteristics of the game be changed. For example, you can edit the physics model so that the recoil from your weapon will send you flying.
Cheats are common to many games. These let you get weapons and lives without earning them or reach certain levels without having to fight your way through aliens. But the only "cheats" in Marathon involve changing the physics model.
Game developers are a tight-lipped cabal. At least one company, id Software (the maker of Doom), makes it a policy not to talk to the press. Interplay (Descent) and Apogee (Rise of the Triad) didn't even bother to return repeated fax, voice, and E-mail messages. Nobody wants to give another company a competitive advantage.
The two companies we did talk to were always careful with how far they would go
in revealing their secrets. We did manage to get Bungie's Jason Jones to admit there is actually one cheat in Marathon. But we had to promise not to tell.
One thing is clear: The next generation of games will be pushing the envelope harder and further. Bungie's Marathon 2 will feature improved graphics and a more- realistic sound environment. The next major game from LucasArts, Rebel Assault 2, will have cut scenes featuring real actors and will let you fly the fabled Millennium Falcon.
The adventure has only just begun.
ATARI BATTLEZONE (part of Microsoft Arcade)........$40
fax: (206) 936-7329
LucasArts Entertainment Co.
San Rafael, CA
fax: (415) 721-3344
Bungie Software Products Corp.
fax: (312) 563-0545
The Future of Eyeglasses
photo_link (58 Kbytes)
Virtual i-O's i-glasses ($799) are a relatively inexpensive way to add some realism to 3-D games that support stereo headsets (e.g., Descent). (Virtual i-O, Seattle, WA; (206) 382-7410)
screen_link (90 Kbytes)
screen_link (52 Kbytes)
Used to create levels
-- Metrowerks and MPW C:
Used to compile ANSI C
-- Adobe Photoshop:
Used to create graphics
-- Sound Edit Pro:
Used to edit sounds
Rex Baldazo is a technical editor for BYTE. You can contact him
on the Internet or BIX at