The year is 2145. Id Software, along with the most powerful computers on earth, has been performing secret experiments in its base on Mars. Tapping into the very fabric of the universe itself - and beyond - id scientists have made discoveries that will forever change human existence. Then something went terribly wrong...
Actually, we're lying. Nothing went wrong. Indeed, every time we travel forward in time to see this titanic shooter sequel we're reminded how goddamned stunning it's going to be. Last time we traveled to Mars (or was it Texas...?) for a full hands-on with the new deathmatch modes. Now, we're unloading the other barrel, with a look at the magnificently horrific single-player campaign.
For those who've been lost in a time vortex, Doom 3 is a loose re-telling of the original Doom story, pitting a lone space marine against the encroaching forces of Hell, rather embarrassingly unleashed by some boffins tampering with forces beyond their ken. This time, however, id is aiming for a decidedly cinematic, story-driven experience, roping in sci-fi writer Matthew Costello (The 7th Guest) to flesh out the script, and using the tasty new graphics engine to render the most immersive and menacing visuals ever seen in a game.
As lead designer Tim Willits puts it: "With Doom 3 we are fortunate in that we have this totally new engine; this great technology to create the game around. It means we can deliver an atmosphere and intense, scary nature that has not been seen in a shooter before, and really set a new bar with what a game looks like and feels like."
Face To Face Before we actually played Doom 3, all that was just words. Now that we've experienced it first-hand, however, it's a very different story. Doom 3 is not just an incredible-looking game, it's the best horror film you'll ever play. From the swinging light strips and starkly cavorting shadows to the shockingly forceful demonic ambushes, the whole thing is meticulously constructed to generate an atmosphere of terror. It works bloody well too, and it wasn't long into our playtest before we were shifting our weight nervously and leaping at every stray growl - just as in the original all those years ago.
And yet in gameplay terms, Doom 3 is very much a typical first-person shooter. There's little we haven't seen here before - the weapons are all remakes of the old Doom arsenal (except for the flashlight, which doubles as a club), and most of the monsters are revisions of old favourites as well (see boxout). In fact, the most innovative device is the new interface system. Basically, it allows you to operate switches and computer interfaces simply by looking at them, your crosshair automatically switching to a cursor pointer when you hover over an interactive panel. Beyond this, Doom 3 is a bog-standard corridor shooter - on paper at least.
Let me describe a typical scene. You've entered an area of the UAC base that's been overtaken by Hell, the metallic walls and grey fittings ceding to a Dantean vision of blood-red walls and viscera-strewn caverns. All seems quiet as you locate the item you were looking for - a data stick or some such trifle, to be uploaded to a PDA-like device that holds all your mission information. However, as soon as you make to leave, you somehow awaken a demon, and right on cue all hell breaks loose. Frenzied imps spawn in a dozen places at once, emerging from pentagram-like portals in a burst of magma, pelting you with fireballs and blocking your exit.
Underworlds Apart There's nothing remotely novel going on here, and yet so intense and mesmerising is the atmosphere created that even this straightforward scene left us in a nervous sweat. It's almost like the amazing visual design renders moot any questions of originality. In his own way, Tim agrees: "I find it really funny in interviews when people ask, what's the difference between Doom 1 and Doom 3? It's like, dude, have you seen it?"
Certainly, however, there's more going on in Doom 3 than just shooting zombies. In one sequence you come across a terrified NPC trapped in a part of the base with no power - and no lights. He strikes a deal with you: he'll lead you through the darkness with his wavering, failing lamp in return for your bodyguard services. Of course you agree, as you can't hold a flashlight and a gun at the same time (though this may change in the final game), and it is really dark out there. Of course, the brutal demonic attacks begin almost immediately, and you're forced into a desperate battle to keep their attention focused on you and not the defenseless NPC, all the while struggling to stay close to the light. Again, nothing we haven't seen before (even Donkey Kong 64 featured a similar sequence almost four years ago), but effective nonetheless.
Other change-of-pace moments come through the application of the new global 'look and click' interface, as described above. One scene tasks you with removing some poisonous gas canisters from a room by picking them up remotely with a crane arm and dumping them in a disposal unit. Thus ensues a brief mini-game that works like a UFO-catcher machine in an arcade, though with rather less frustrating results.
These, however, are exceptions to the rule - moments designed to break up the move-and-shoot carnage that makes up the bulk of the game. And we can only assure you that this is no bad thing.A lot of people are concerned there's no game behind Doom 3's stunning visuals - it's just a 'tech demo' for id's new 3D engine. This, however, is totally missing the point. The new engine is the new game. Yes, it's a stunning showcase for the new rendering tech, going out of its way to create an atmospheric and immersive environment with an unprecedented level of detail. And that's exactly why it's going to be great.
Carmack-Eddon 2 In part two of PC ZONE's exclusive interview, we conclude our chat with legendary id programmer John Carmack, getting the dirt on Doom 3, basketball and the future of everything
Last month, we kept it simple. We shot the breeze with John about ragdolls and hell artifacts, how happy he is with the game and how things have changed since the olden days. But really, we were just warming up. This month, we give the world's most-famous code-jockey the reins, hanging on for grim death as he vents his views on innovation, graphics technology and manned space flight...
PCZ: So, John, id's games have signalled generational leaps in gaming technology more than once. Do you see Doom 3 as an equally big leap as Doom or Quake? JC: Yes. We had a few evolutionary steps where we had Quake II and III - obvious evolutions of Quake. Even though Quake III was a completely different rendering engine, it was still in the same paradigm, which was light-mapped worlds and single point-shaded characters.Before each new game, I take stock of where I think the hardware's going, what we've got now and what's coming out in the time until we release the game. That's what drives the decision of when it's time to write a new engine. It's not like I've got some brilliant new way of structuring things, it is driven by the external forces. And people who ignore that suffer miserably, like the people who were doing voxel engines right as 3D hardware engines were coming on. So as we went through Q2 and Q3, I was like OK, we're starting to get hardware acceleration here, but can we rely on it, does it fundamentally change the way we do the rendering? And it didn't. With Q3 we were able to say 'hardware accelerated only', but the things we could do with that hardware were still basically the things we were doing in previous generations. We could just do it more concisely, faster, higher colour, all those various things. When it was time to look at the Doom 3 stuff, I investigated five different directions for rendering post-Quake III. Some of them would have given much higher quality renderings of static environments. It's not an exaggeration that we can do photo-realistic renderings of static environments and move through them. But, when you then paste dynamic objects on to those static scenes, they're clearly in this separate plane. You've got your moving thingy and your environment. And I thought it was more important as a game technology, which is about interactive things, that we followed this other opportunity. Instead of pursuing ultimate detail on the environments, we could unify all the lighting and surfaces, which is the big thing for Doom 3. So that was the core decision to be made, and I look back at that and, more than any other game I've done, I think those initial decisions and the initial technology layout were exactly right. Looking at things today, there's a clear generational step.
PCZ: What's the next step then? JC: The next step is actually ready to be written now. Again, driven by external hardware things, we had a couple of important inflection points happen in hardware with the latest generation - the floating-point pixel formats and the generalised dependent texture reads and flexible fragment programming. Those three things combine with floating point buffers to allow us to synthesise any equation by decomposing it into multiple passes.
PCZ: Come again? JC: Previously, without the floating-point you would always start losing lower order bits of precision because you've done so many calculations on some of these things. Even in Doom 3 it's a significant problem - it starts showing up as some artifacts that can be pointed out in the game. Even if you had infinitely fast hardware of previous generations, you couldn't do a hundred-pass computation because you've only got eight bits of precision and it'll turn to mud after a certain number of combinations. But with the floating-point calculations you can then arbitrarily decompose this and do, if necessary, hundreds of thousands of calculations. And this is hugely interesting.
PCZ: It is? JC: Yes. There was an important paper that came out at SIGGRAPH a few years ago by someone at SGI [Silicon Graphics]. He presented one real-time renderer and he presented something that showed the decomposition of Renderman shaders into multi-pass stuff that required floating-point and pixel stuff. It was amusing because I remember people completely discounting that paper, which I think is going to be looked back at as one of the most seminal things in interactive graphics. People were saying the Renderman shader was ridiculous - it took 500 passes to do this simple shader. People just hit this number - 500 passes, and clicked it out of their brain as not relevant. But a pixel in Doom 3 may have 80 textures combined on to it. Depending on whether things are done completely in calculations or not, it may have up to seven textures per light on each surface. You may have a surface with three lights shining on it, that's 21 textures, and you might have three levels of things drawn behind that, and then you might have 50 shadow planes going between them, so we can pile up over 100 operations per pixel right now. So suddenly 500 for every surface layer is maybe a generation or two away, but it's not that far off. Exponential paces are difficult to come to grips with.
PCZ: OK... So, do you think Doom 3's gameplay would be as interesting if it wasn't for the new technology? JC: We decided Doom 3's gameplay is not going to be some wild innovation - it's a first-person shooter. There are a lot of arguments that can be made about game design, and I prefer simplicity and elegance. There are big arguments that happen inside id over 'do we wanna have an additional control for something like this?', and I'm always the one saying we want the minimum number of everything, because I want it to be simple and fun to play. I think the GUI interaction in the game is really powerful as an interactive paradigm. It doesn't require additional controls; you're interacting with something people are familiar with. Allowing you to interact with complex displays is powerful, much more than adding three more keys to do something.In terms of the basic gameplay, the first-person shooter is a genre that will probably be around forever now, like flight sims and driving games. There are plenty of branches you can take within that, like pure realism, tournament play, comic action. And I think the push for people to innovate in gameplay - I'm not sure that I particularly agree with it. You don't go around constantly coming up with new basketball games. What we have the ability to do is improve the playground you're playing on in these fundamental ways, and it's a good thing. We've got some neat things where you can control some big machines and do some cool stuff, but it is still a 'running a person around, shooting at things in the world' game, and I didn't want to make it anything other than that. We have vehicle code in there that I know Splash Damage is playing with and making buggies and stuff fly around, but I'm most mistrustful of adding that sort of thing.
PCZ: Now you've got the per-poly hit detection in the game, will all player models have to comply to a strict surface area in multiplayer matches? JC: It's going to be a factor, because yes, that matters. When we first put it in the game, we took the same damage levels from Quake III, and we started playing against it - you just couldn't kill people! They occupy like one-third the surface area of their bounding box, and it just takes a long time to hit people. The damage levels have been upped a lot - it probably makes aiming for splashes more important. But yes, it probably will have some effect on the models. People who are playing competitively will probably play with the lock-down original models. But because the multiplayer is peer-to-peer, where you join together at the start, it will have a different general dynamic from the Quake servers. You won't see people randomly joining in the middle of a game.
PCZ: From Doom to rockets, what's the latest on your experimental rocketry project, Armadillo Aerospace? JC: We're probably six months behind because of the propellant situation. Here I am, trying to buy $150,000 worth of rocket-grade peroxide, and here is a big chemical company that's losing money, but are more scared of something happening and being sued. But our sub-scale vehicle is ready to fly and our big vehicle is very close to flight form as well. We bought a Russian space suit off Ebay and we're going to modify that.
PCZ: What's the goal then? Orbit? JC: We're aiming for the X PRIZE. It's a $10million prize to launch three people to 100km. You go up, you get 10 minutes of weightlessness in space, and you go through re-entry - it's basically the world's tallest roller-coaster, and you have to repeat it twice in two weeks.
PCZ: Are you going up? JC: It would be fun, but it's not something I'm really driven to do. And my wife is vigorously opposed to the concept.
He may be the greatest programmer alive, but Johnny C can't half spew out the technical gobbledygook. In fact, we lost three work experience kids when their brains melted trying to transcribe this interview. As a courtesy to their families (especially the third one - we really should have known by then), we've compiled this patented John Carmack Jargon Buster in conjunction with our resident geek-speak explainer-guy Phil 'Magic' Wand...
RENDERMAN The rendering standard invented by Pixar (the blokes who made Toy Story), used to make blockbuster movie effects in Jurassic Park, Finding Nemo, etc.
PASSES A 'pass' in rendering terms is a stage in the process of drawing an image - much like the various stages of painting a watercolour, where you start out with a wash and then gradually fill in all the details. No card can render complex scenes in one go, hence multi-stage rendering. More passes equals more detail and greater realism.
SHADER A shader is a bit of code that describes a specific visual effect applied to a texture when it is rendered in a game. Since modern 'T&L'-enabled 3D cards handle the transformation and lighting of every polygon drawn on screen at any time, shaders are uploaded to the card and allow the game code to customise the way the polygons are handled. Hence, you have vertex shaders, which manipulate the transform calculations (equals better animations), and pixel shaders, which allow the lighting of every pixel to be customised (equals Shrek-like visual effects in real time).
GENERALIsED DEPENDENT TEXTURE READS A new feature of next-gen 3D cards, dependent texture reads allow the results from one texture render to be treated as an input to the second. In simpler terms, the colours from one are treated as the coordinates for the next. You might use this in rendering something deeply complex such as cloth or skin. The results: greater speed and realism.
FLOATING-POINT PIXEL FORMATS A float is a number with a fraction after it. So where 239 is an integer, 239.109507 is a float-point number, and as such allows a greater precision. A pixel is traditionally represented in byte (8-bit) format, that is, it's represented by a number from 0 to 255. A floating-point pixel gives a much wider range of values. The DX9 Radeon cards, for example, support up to 128-bit floating-point pixel format. The results: a move towards photo-realism.
FLEXIBLE FRAGMENT PROGRAMMING A per-fragment programming model, unlike a vertex model, which relies heavily on estimating appearances, allows you to apply bump mapping, reflection and lighting effects to 'fragments' of objects for much higher realism.
Copyright 2006 - 2009 Future Publishing Limited, Beauford Court, 30 Monmouth Street, Bath, UK BA1 2BW England and Wales company registration number 2008885