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.
MPC: With the combination of driving and fps gameplay, what’s fun and exciting that we should look forward to that we haven’t seen before in games?
MH: The thing you haven’t seen is really the mix. We’re still id software and we’re still making this intense, action shooter game. Those moment to moment, finely crafted action sequences – running around with the coolest weapons and shooting guys – that’s still there. We invented that and we’re still going to do that really well. Just around the office everyone likes a lot of cool games. What we did was pull in these different elements that don’t detract from the action but add this little bit of flavor, and the vehicles are a part of that. The vehicles are almost an extension of your FPS avatar – you’re “running” around with a vehicle. It has armor on it, it carries a cool weapon, you fire that weapon, and the other car blows up in a cool satisfying explosion. It’s not as far removed as you would probably initially think. It all feels really good together.
By virtue of getting in the car and going to the next cool shooter environment, that separation allows us to do wildly different things in the different areas around the wasteland. It’s almost like the coolest 3D interface you’ve ever had in a game. You go back to town, talk to these cool memorable characters, get bits of the story, buy your next weapon, maybe take a little twirl around the track to prove something with your car, and basically just get ready for that next shooter experience. We think it’s a good mix. There’s nothing really like it which is scary at some times.
It’s hard to describe all the different elements because at first it seems like they don’t fit together. The main thing is that it’s always an action game. It's always going to be fun and arcade-y. Now were doing a lot of things that we haven’t pushed for in the past; we have all of these cool story elements. The story is so unique and diverse.
We talked about the tech, the virtualization of all the textures and how you can uniquely edit any surface in the game. We almost have that same thing on the gameplay side; we’re trying to make these really unique and diverse environments, really unique and diverse characters and story. It has some roots in things that can resonate [with people], like a giant meteor comet smacking into the earth. On top of that are all the different factions you are fighting against. It should be a really cool experience which always goes back to that unique and diverse [design]; from the technology to the gameplay fidelity.
MPC: It almost seems like what a single player MMO experience would be like. Going out and exploring this giant world, having cool stuff to do and having actual journeys to get there and not being a straight linear experience.
RD: You do have some choice so you don’t have to do things linearly. The other thing we really want to try to get really right is the vehicle combat because vehicle combat has always just kind of sucked. We are trying to make the car a true extension to your avatar where you can do some cool stuff with it. We tried to show some of that in the [preview] video, that we want it to be intense and fast paced. That way it’s a little more memorable. You take a mission to go out and do something and you may encounter some of this stuff and have to fight your way through a little bit. We don’t want that [style] to overwhelm the game but we want that to be something that is very fun and very memorable for players.
MPC: How much of the game is straight, designer created interactions and how much is dynamic? Or is there a mix between the two?
MH: It’s kind of a mix but were still doing that fine-tuned shooter experience. A lot of the action, even with the vehicles, is going to be that way. We want to have that crafted “moment to moment” feel. It doesn’t mean that you might be driving through a wasteland and see a plane that’s crashed on the side on a hill and then get out of your vehicle to explore it. There’re things like that in the game, but you always know that you are on your way to do the next mission. There’s definitely an exploration feel going on but it’s pretty direct and so it fits both needs. The people that want to explore and get their fix, and than the guys that just want to plow through and have that really straight forward experience can do that too.
MPC: One of the things John said last night was that ‘modern games coddle the gamer’. It’s a gentle shepherding through this single player experience. Are the hardcore gamers going to be able to take hours and hours of punishment instead of fun if they want that?
RD: We haven’t got to the point where we’re tuning different difficulty levels. One of the things that Matt and Tim [Willits] do really well is pointing out stuff. They’ll get some gameplay idea to one of my guys and we’ll talk about it and what they conclude is that they’re smashing the player over the head. They’re really great at saying ‘you know what, people hate dying’ and we want to make it challenging but we don’t get into that repetitive ‘I have to do this again’ [frustration].
I think Matt and Tim are doing a really great job at fostering that [balance] throughout the gameplay. But I would assume that whenever you get up to the hardcore nightmare levels that we end up getting into the game that they’ll be really, really tough. We haven’t balanced for any kind of driving gameplay before. We know how tweak the first person stuff, so [driving] will be a work in progress for us.
MPC: When you make a giant open-world type game, a lot of the challenge and a lot of the concern from other developers I’ve talked to in the past is that they build a whole lot of really awesome content that nobody sees. What do you feel about that and what are you doing to prevent that from happening?
MH: There’s the [main] storyline and then there’re little offshoots from it, but we’re not worried about it. There are some things that people will never see, but that’s why you just have to be smart, production wise – where you’re spending your art time. That’s actually one of the cool things about the tech: it allows us to put a lot of detail in the areas we care the most about. (For instance) the player is going be in the town a half a dozen times, so we need to make that the coolest and [as] best a looking area as possible.
It’s a weird thing for people on the outside of development because they look at a four maybe five year development cycle and they calculate ‘ok there's 20 levels and there’s five years, so it took that long to build a level,’ but it’s really not that way. It’s that last year where you do all the cool stuff and you put it all together. We want to make it as cool as possible for the people that do explore. And if they only see 20 percent of the extra stuff, we’re fine with that. I think that’s what makes games cool; maybe they tell their friend ‘Hey did you see that thing here?’ so you get that cool word of mouth from people on message boards. It’s why we’ve always had Easter eggs.
MPC: What is Rage doing on multicore CPU’s?
RD: We’re doing a lot of work on the SPUs (Synergistic Processor Unit) of the PS3; we’re using multicore pretty heavily. We expect on the PC it would run on a standard CPU, so I don’t believe we will require a true multicore. We are also doing a lot of threading for a lot of things. Most of that work is going into the PS3 and the Xbox360, although the PC certainly takes advantage of it. It’s just that on the PC you’ve got a much beefier main processor so we’re able to thread that stuff off and not stress as much about thread priorities like we do on the PS3 and the Xbox360.
MPC: Does the work that you do with the threading stuff on the consoles carry over to PC?
RD: There are certain elements that carry over, especially between the Xbox360 and the PC. The PS3, due to the nature of the SPUs, has a lot of specialized work that’s going on, but the general concepts carry over. We just have to take an extra step on the PS3 to get the performance that we need.
MPC: If you’re running the game with a quadcore or multicore CPU, is there a benefit in performance or image quality?
RD: We hope to be completely stable at 60hz across all platforms. Since the consoles are our primary target they are dictating a lot of the decisions. This is pretty far out, but I can predict that we may be able to throw some nicer effects and physics explosions, but that’s all just speculation at this point. It will definitely perform better on multicore CPU systems, it’s just how we surface that to the players to make it a neater experience. We are architecting this for the consoles primarily. The PC (users) are certainly all first class citizens; it’s just that we want it to look and feel the same on everything.
MPC: Rather than run the loop and thread it out, are you doing different subsystems on CPUs?
RD: We run sound, the renderer, background streaming, and we’re a bunch of the collision detection in their own thread these days; we have a lot of threads going on. Again, it really comes back to prioritizing and figuring out the best way to organize and maintain that on the consoles.
MPC: What about sound? How are you guys handling sound in Rage and Doom 4?
RD: We’ve got backends for all of that stuff. Doom 3 had a full software audio renderer and we’re using hardware for most everything now. We can always resurrect the software portion but we’d really just like hand that off.
MPC: Why no OpenAL on the PC?
RD: That’s not a concrete decision yet. Using the same format as on the 360 gives the two platforms parity. And there are a couple of features with the XMA stuff that we liked. We could end up basically back on OpenAL with everything; we’re still kind of back and forth on that.
MPC: Are you using external or internal physics?
RD: Internal, we don’t use any third party.
MPC: How close to true physics are you doing? Super fun or super real?
RD: We are doing super fun, as you saw from the explosions yesterday. With Doom 3, we have a really, really good physics guy and Doom 3 had good physics. We’re not trying to necessarily compete with the physics-only companies, but we have a very good physics system. Since we license the tech as well we want to give people something that’s very competitive so it’ll be a very competitive and fun physics system.
MPC: What are the benefits of doing it internally?
RD: If we have something break we understand all the code and know how to go fix it.
MPC: How about Rage as a benchmark?
RD: Like past id games, there’ll probably be settings on the PC that you can crank up and run it at whatever hertz you want. Currently, there’s a command you can run in real time and run at 30Hz, 120Hz, 87Hz – whatever you want. I doubt we take it out, but 60Hz works great.