John Carmack

Doom 3, basketball and the future of everything

Overview

Date: Oct 31, 2003
Original URL: http://www.computerandvideogames.com/article.php?id=98036
Synopsis: Computer and Video Games talks to John Carmack about DooM III

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

Questions

PC Zone Staff: 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?

John Carmack: 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.

PC Zone Staff: What's the next step then?

John Carmack: 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.

PC Zone Staff: Come again?

John Carmack: 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.

PC Zone Staff: It is?

John Carmack: 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.

PC Zone Staff: OK... So, do you think Doom 3's gameplay would be as interesting if it wasn't for the new technology?

John Carmack: 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.

PC Zone Staff: 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?

John Carmack: 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.

PC Zone Staff: From Doom to rockets, what's the latest on your experimental rocketry project, Armadillo Aerospace?

John Carmack: 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.

PC Zone Staff: What's the goal then? Orbit?

John Carmack: 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.

PC Zone Staff: Are you going up?

John Carmack: It would be fun, but it's not something I'm really driven to do. And my wife is vigorously opposed to the concept.