id Software's Programming Director and Lead Designer Explain why Rage will Kick Ass
John Carmack may be the face of id Software, but he’s definitely not the only person working on Rage or the next Doom. We spoke with Robert Duffy, id’s Programming Director, and Matt Hooper, Rage’s Lead Designer, about their upcoming shooter. The conversation delves into topics ranging from art design to multiplayer modes, and touches on the challenges of developing on both console and PC hardware.
MPC: It seems like you’ve done some really neat stuff with engine tools on Rage. John [Carmack] said in his keynote that you’re doing simultaneous development on three platforms so you can flip a switch to produce builds for each of the three?
Robert Duffy, Programming Director at Id Software: That is essentially true. We’re actually doing simultaneous development for four platforms. Occasionally one platform will lag a little bit behind, but generally speaking, when we do a build, it’s produced for all the platforms. We don’t have any big media packing step during development that requires people to have to wait. We’ve set everything up where even if artists are working on a console they can change media and reload to see it instantly. Even though we’ve grown a lot, we’re still a very small team compared to a lot of companies so we try to keep that workflow going [smoothly].
MPC: To get a specific concrete example: a designer comes in, makes a stamp change on a megatexture or puts new art in the game. He can then see what it looks like on PS3, Xbox, PC and OS X?
RD: Well, for stamping it’s even cooler. If the artists or designers are stamping, those changes appear real-time on all platforms for everybody in the company.
MPC: So it’s like a multiplayer game?
RD: (laughs) Sort of.
Matt Hooper, Lead Designer of Rage: We have source textures, source models and things like that, that have to make their way in the game, but the cool thing about all the platforms is that those assets are shared. So like Robert was saying, you don’t have to do anything fancy to get a model to show up on the PS3, you just have to run the PS3 build and your model will show up. Any new art that is put into our source control is just going to show up.
One of the cool things about having it all virtualized is that all of the platforms pull from this one source (our megatexture server), so it’s all stored on the network. Anybody making change to that -- if they stamp or just go crazy and they’re changing the surface texturing – updates the media for everyone else. So it’s really just a giant bank of surface texturing that we’re pulling from all the time.
MPC: Can you explain a little bit about megatexturing and the virtualization of textures, and how that differs from what happened with Doom3 or id Tech 4 engine games?
RD: In Doom3 and all games before id Tech 5, you have a whole bunch of textures that end up being used in levels or landscapes and things like that, take up texture space on the video card. You end up having to manage that really well. So you end up repeating textures on surfaces, and you can get some pretty good looks out of that. What John came up with towards the end of Doom 3 was the landscape rendering in Enemy Territory: Quake Wars. He essentially unified texturing across the entire world, so not only outdoor areas but all the indoor areas.
We build this incredibly large texture, for instance a landscape has a 128K x 128K texture that I think when uncompressed is about 192GB. Then we do all kinds of compression -- although you could run it that way – and one of the final pieces of the tech were doing is actually compressing that down to shipping size. It produces this unique layout which is essentially just a mapping that the tech reads. It looks at a surface, figures out its mapping and then goes and knows where to retrieve that [data]. The texturing spreads across every single character, the world, the indoor areas, and is dynamic. Everything is a unique pixel. The designers and artists have the freedom to actually touch every single pixel in the entire game if they want.
MPC: In Quake Wars, are bases built into the megatexture as well or are they placed on top of it?
RD: In Quake Wars that is not part of the megatexture. Quake Wars uses a more traditional texturing approach. In idtech5, building textures are completely unique, just like the landscape.
MPC: Everything? Even in indoor areas?
RD: Everything. Obviously, we don’t virtualize the user interface textures, the fonts, and some things like that. But generally speaking every single thing in the world is completely unique.
MPC: What kind of extra freedom does that give you guys? What can you do with id Tech 5 that you couldn’t have done with Doom 3, aside from the obvious giant outdoor areas?
MH: There are two main things. First of all it’s the ability to have artists who don’t necessarily need to understand all the technical ins and outs of the engine. We set the surface texture budget and then literally all they have to do is make great art and stay within that initial allocation. But they’re no longer worrying about what to call out or what textures you have to take out near end [of development] because it doesn’t matter. It’s all unique and the cost is already fixed. We’re running at 60Hz [with Rage]. You can change all the textures in this room if you want and it’s not going to hurt the framerate at all. Taking that [limitation] away allows some production freedom.
The initial kind of fear was with the [task of] uniquely texturing everything. You start to think ‘Wow that’s kind of a scary thought, we have to make all of these unique textures,’ but we still build kind of in a traditional way but without the restraints. It doesn’t take a lot for an artist to make a 4kx4k texture – they actually want to do that. What they’ve had to do [before Megatextures] is make 128’s or 256’s or worry about things like ‘that mountain in the distance can’t be seen so I have to make a lower resolution version’. Now they’re just fixing the art at this constant resolution. [Megatexturing] actually makes it easier for them.
MPC: Is it a challenge to render a scene that has more texture than you have memory for? Is this a problem when developing for consoles?
RD: The nice thing about this technology is it essentially uses a fixed video memory cost. It maintains several very large textures in video memory and it’s constantly paging in from disk.
MH: It’s streaming what it needs, when it needs it.
RD: It’s essentially paging in the mip levels that you need into these textures and mapping those out. For instance, on the Xbox360, you can govern what you use for video memory versus what you use for other memory, it’s great because we have a little more memory freedom. We can say ‘ok we need this much for video memory.’ On the PS3, because it’s a hard split [between video and system memory], we struggled a little more with memory constraints because 256mb of the memory on the PS3 is reserved for video memory and we would rather be able to switch it because we don’t even use that much.
MPC: On the PC, you have some video cards with 1GB frame buffers. Can you swing wide to accommodate them?
RD: There will be settings in the game for PC users where they can set larger memory textures and you’ll get a little crisper [visuals], but we certainly won’t require a 1GB card.
MPC: It’s nice that the people who have those high end systems will actually see something that looks a little bit better.
RD: Yeah, they’ll be able to turn on some additional filtering.
MH: The texture resolution will get a little higher [for objects] in the distance, so they can use that (additional) video memory.
MPC: Let’s discuss multiplayer in Rage.
RD: There will be a multiplayer component.
MH: We just haven’t down nailed it down exactly how. Our primary focus design-wise is making the best single player experience we can, but we do expect to have multiplayer components.
MPC: Is it safe to say there is going to be both driving and FPS multiplayer components?
MH: We haven’t committed to any [ideas] but all of those things are on the table right now. There’re some logical conclusions, we just don’t want to nail it down right now.