ATI Talks Game Support, Future Of Graphics Cards
Sergio writes "Slo-Tech have posted an interview with ATI's representative in game developer support, Richard Huddy. He touched on many subjects, including the evolution of DirectX and OpenGL, why ATI doesn't provide much information to Linux driver developers, and the most common mistakes of game developers ('Nine out of ten games under-use the graphics card. That's amazing, and it's been true for the last three or four years.')"
The reason I don't know what kind of card I have is that, although I purchased a brand new, shrinkwrapped Radeon 9500 Pro retail box, I noticed that the card looked somewhat different from the OEM (I think Sapphire) 9500 Pro I'd used for a few days previously. Didn't think much of this until I started seeing indications in places like the XFree86 log that the card might be a 9700, instead of a 9500 Pro (I do realize the two cards both use the R300 NE chipset). Also, that Antalus flyby score is meaningfully higher than what Tom's Hardware found for 1280x1024x32 on a much faster system than my two-year old Athlon 1.4GHz. Haven't bothered to crack the case open again since, so until I do I'll happily enjoy the illusion that I somehow ended up with a 9700 for the price of a 9500 Pro.
The driver I use is a binary-only one from a German reseller. They appear to be betas of forthcoming versions of ATi's own drivers. As I have XFree86 4.3.0 this has been a great blessing, as ATi's own Web site only has drivers for XFree86 4.1 and 4.2.
Newer features are exposed in newer drivers. So they may be buggy and perform sub-optimally. There's a learning curve. And enough newer hardware is difficult to get for the developer, how many users will have it?
Build a modular engine. And try to squeeze in that feature in the next iteration.
"As we've seen from the recent furore over driver cheats it seems likely that they don't plan to let their own inferior hardware come between them and first place."
I kept expecting him to rip into Nvidia's momma at some point.
"...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
That is true. However, if you install the newest DirectX (which will install no matter how shitty your pc is), and you try to play a game written for say a GeForce4 and you have a TNT2, then your pc can figure out what the card should do and what the cpu should do. So, there is no reason for game designers to code to the least common denominator, they just have to code for the newest DirectX/OpenGL and the user's pc turns on available options for their card, and disables the others.
The reason that the graphics card is under-used is for two reasons. The first is that game designers, as you said, want the game to work well on lower end platforms. If your cpu is good enough you can add better graphical features even if your video card doesn't support it. For example Descent 3 adds motion blur if your cpu is L33t enough. However, the main reason that video cards are underused is that it's a fucking pain in the ass.
Let's say for instance that your name is not John Carmack, and you want to make a 3d game. You code it in C++, Cg, Objective C, Visual C++, OpenGL, DirectX9, whatever. You have all these different layers of 3d graphics you have to deal with, unless you just use someone else's engine. You've got shadows, lighting, colors, textures, mip mapping, bump mapping, shading, animating, it goes on and on with the insane number of things you have to do. When new apis emerge that let you use the video card to do more stuff it is very difficult to learn that much more crap.
It happens all the time no matter what you are coding. Ohhh, there's a function in that library that does that for me! I just wasted my time! Ohhh, there's a way that I can make the video card do that really easily and I will save some cpu and some ram! Nobody, sans Carmack, knows this stuff well enough that they can use the graphics card 100% of the time it is possible and better to do so. Except of course in the most graphically simple of programs. However, I do urge game developers to try to use the GPU more than the CPU. It results in many advantages for the gamer.
The GeekNights podcast is going strong. Listen!