Id Software’s programmer Robert Duffy joined the company in 1999, after enhancing the well known level editor Radiant. During Quakecon, we had the chance to ask Robert some questions about the Doom 3 Engine and what it means to the graphics business.
THG : Do you intend to switch your Engine to Direct3D sometime ? What was the main reason to go with OpenGL ?
Robert - id : One of the primary reasons is that John has so far preferred OpenGL as a development API. Also a` very good reason to stay with OpenGL is that as we make the game cross-platformed, you know we have a full OpenGL driver under Linux and Macintosh and Direct3D is not available under either of those. As we are moving forward with technology however the Direct3D API has matured really well and it is effectively equivalent to OpenGL at this point. There are probably some compelling reasons for us to take a good look at Direct3D as an option (Note : Xbox). But at this point there isn’t a real reason or desire to move from OpenGL.
THG : Doom3 is all indoors - even the "outdoor" scenes are created like an indoor scenari.Looking at other engines like the Far Cry engine or S.T.A.L.K.E., all modern games include huge outdoor levels with big visibility. So my question regarding Doom3 is : Is the engine capable of rendering big outdoor levels ?
Robert - id : Yes. Absolutely ! Doom is essentially about being in a base on Mars. There are licensees using it for many different things. So there isn’t an inherent inability in the engine.
THG : In the beginning, one big limit of the Quake 3 engine was that a level couldn’t be very spacious.
Robert - id : Well, there are obviously some limits on scale but nothing that would limit somebody from doing something pretty big.
THG : If you take a look at the integrated graphics market share, Intel is a big leader with its 865G motherboard chipset and now 915B, supporting DirectX 9 in some parts. How do you see the whole integrated graphics market, especially Intel ? At release time, every of your games needed a potent graphics card. Integrated graphics is a different world because it is all about gaining market share and the graphics is not all that fast. So how do you take care of the integrated market ?
Robert - id : We worked with Intel on that stuff. In Doom 3, Intel does amazing, amazing OpenGL drivers ; they always have. Their drivers have always been rock solid. They sent us a box with the 915 chipset on the motherboard and I ran Doom and apart from a few graphics anomalies, it worked. Everything just worked right out of the box and you rarely see that in drivers. (pause...) It is pretty slow. They are still working on optimizations on their end and last I heard from them is that they think that they will make the game fully playable on the 915 chipset.
THG : Isn’t it "a threat" to the whole gaming industry if you have to design your game for this kind of graphics hardware ?
Robert - id : Yeah but we really don’t design our games to that sort of graphics. I mean that we set out with a set of functionality in mind and a set of rendering things that we wanted to do. That is a consumer driven problem because they can integrate the graphics a lot cheaper than a graphics card and so people may buy that. However there isn’t a lot that we can do on our end. We’ve continually been technology leaders in the industry and you cannot do that if you tie yourself to designing towards the lower end of the hardware market.
THG : There are a lot of scene animations in Doom 3 - all done with the game engine and more complex than the animations in Far Cry. Thinking about scenes like those scientists mutating into zombies in real-time or the endscene, do you plan to do something like a movie - using the Doom3 engine. Is the Doom3 engine a first step in that direction ?
Robert - id : Yes I am real big on the machinama kind of movement and hopefully I going to get some time to release some camera tools and things like that to allow people to do that. I definitely think that the Doom 3 engine is going to give a new breath to the whole machinama and make some really breathtaking looking stuff. And especially if you script the actor movement and you script the camera movements where you are not really concerned about if it is playable. You know, at a quality level - and that is at a speed that is not playable - you can run this stuff out where you can crank up the anti-aliasing and you can turn on all multisampling etc. We have a lot of options that will make it a little too slow to make it real-time but could be used for fantastic looking movies. I anticipate seeing a lot of that.
THG : Doom3 is using a lot normal maps. What about future support for ATI’s 3Dc normal map compression ?
Robert - id : A lot of the work that I did towards the end of the game was to revamp the way that we did image compression. For the normal maps, we swivel the red and the alpha. We swap those and the DXT compression works really well because the red cannel is empty and it only has to deal with the two of the directional components for the vector. So I swap those and then we swap those back in the program whenever it is going back to the card. We had to do something like that because ATI did not have palletized compression which is what we were using for normal maps on NVIDIA cards. Basically you would have been faced with 256MB of textures on that because there was no way to compress the normal maps. I spent a lot of time working on that got us the same render path on almost all cards with exception of the NV10 and 20’s. In that case we upload the normal maps palletized.
THG : Thanks a lot for your time !