John Carmack, co-owner and technical director of id Software, is one of the acknowledged geniuses of the games industry. Put simply, with 1991’s Wolfenstein 3D he invented the first-person shoot-em-up. Innovatively, he sold Wolfenstein 3D as shareware, and released the engines powering his subsequent games Doom and Quake to all-comers, spawning a modding scene which saw the fps become the most popular genre. In technical terms, Carmack has always been several steps ahead of the rest of the industry – he sits in his office (decorated with melted pistons – he’s an inveterate car nut) dreaming up new ways in which to make games.
We had the privilege of catching up with Carmack at E3, where he revealed id’s next project (an all-new IP and a rare in-house development) and the technology he has developed which will debut in the forthcoming Enemy Territory: Quake Wars. He also told us about the relative merits of the Xbox 360 and PlayStation 3. Here’s the full, unexpurgated transcript.
Probably the best place to start would be the forthcoming Enemy Territory: Quake Wars. What can you tell us about it?
I’m a peripheral player in Enemy Territory. I did some technology for it, but it’s not really been my game: Kevin [Cloud] has been the lead guy at id over that. Splash Damage have been really great to work with. On the technology side, it has been rewarding. I did these two core pieces of technology for them, and explained where I thought the value was and what they could do with it, and they got it immediately. They ran with it and did some great stuff and, if anything, it makes me look really good.
One of those pieces of technology was megatextures. I could see when I played the game that they look great, but how the devil do they work?
If you look at the way most outdoor textures are done, you wind up with some grass textures, some dirt textures and some mountain textures. You break them up and make some borders, and kind of cross-fade and blend between them. There’s a lot of little strategies you can do for that, but it does wind up with this look of sameness across the areas, and sometimes it looks ugly if you look down closely at it, although sometimes it looks OK if you’re running past it.
When we were originally talking about Enemy Territory, early on, they were pursuing a direction like that, but I suggested a direction that I’ve considered a couple of times over the years, and I’m still surprised no-one has pursued this more aggressively. And that’s instead of trying to take some textures and combine them in some way, just make the entire thing a texture. At first glance, you’re like: “That’s ridiculous – it’ll be 4 gigabytes.” But if you look at it the right way…the way that people look at these outdoor territories really are just as a very cranky form of data compression. You wish you had this unique stuff over everything, but you’re saying: “Well, we’ll tile these textures, so this is repeated here, here and here, and I’ll just blend between it because I can’t afford to have a unique texture there.” So really, it’s data compression -- just not very friendly data compression.
So what we thought was: “Well, what if we tried to make it really unique, and then use friendly data compression on there. So we use a combination of DCT and black truncation coding on there, and it really does start off with these multi-gigabyte 32,000 by 32,000 textures for every level and it’s compressed down. Plus there’s some graphics technology that goes on to just pull in pieces of it as you go around. That all works pretty much seamlessly.
To create all that, you obviously can’t have an artist go in and paint four billion pixels, so there are two pieces of technology that combine to let you build all that. There’s a procedural base creation tool, which is kind of like various commercial landscaping technologies, where you’ll say as angles tip up, we’ll get more rocky here, and the grass will be down here…. But instead of doing the dumb blending that you have to do in real-time, they can do sophisticated things like have the grass petering out and going into the cracks between the rocks, instead of looking like you spray-painted it on. Then they’ve got the ability to go in and have an artist at any time, anywhere in the level, and to say: “That doesn’t look quite right – that tree is just sticking up out of the grass” – which is what you will see in every other game. But what you’d like to do is scrub away a bit of the grass there, so there’s dirt showing, and you could maybe draw a root. So that’s the other freedom they’ve got.
That’s a finishing tool, but there’s a really cool aspect to it: finishing like that is guaranteed to have no impact on the gameplay. Unlike most of the things that you do when you want to make the game look cool, it won’t make the game slower or alter the gameplay, which makes you go through this iterative tuning process. But the great thing about stamping into a megatexture is that it has no impact on the game – it’s strictly an aesthetic thing.
And you can target it, when you go to play-testing. You can say: “People are congregating here and here, but they never really go up here,” so the artist can go and make a particular area really cool – say with little footprints and tyre tracks, and it can be as good as a movie backdrop.