-- Here's something to put on your 2009 checklist: more realistic in-game physics. You know, the extra math in a virtual world that can transform the flat, instantaneous stain from a tomato flung at a wall into a pulpy, drooling mess of spatter. Now insert whatever your M-Rated imagination cares to conjure in place of "tomato."
They're not promising tomatoes or anything else just yet, but game publishers Electronic Arts and 2K Games just announced that both companies are licensing NVIDIA's PhysX technology, "the world's most pervasive physics solution for designing real-time, real-world effects into interactive entertainment titles."
"PhysX is a great physics solution for the most popular platforms, and we're happy to make it available for EA's development teams worldwide,â€? said Tim Wilson, Chief Technology Officer of EA's Redwood Shores Studio.
"We are very impressed with the quality of the PhysX engine and we licensed it so our studios can use this solution early in development,â€? said Jacob Hawley, technology director for 2K.
Video of EA DICE's Mirror's Edge running with NVIDIA's PhysX enabled.
I gave NVIDIA Senior PR Manager Bryan Del Rizzo a call a few hours ago to chat about PhysX and the new partnership.
Game On: The 8800 GTX is the point at which NVIDIA introduced PhysX to the NVIDIA GPU lineup, correct?
Bryan Del Rizzo: We announced we were going to acquire Ageia back in February of 2008. We closed the acquisition a few weeks later, then we started moving the PhysX libraries and SDK over to our GPUs. I don't know how familiar you are with the Ageia SDK but it was developed in C. So we have something called CUDA which is our architecture for allowing application developers to harness the power of the GPU cores for nontraditional tasks other than, say, 3D rendering. CUDA's been a part of our GPUs for about three years now. It's actually a hardware part. We've actually got transistors inside the chip that do the parallel processing as opposed to just traditional 3D rendering. Our GPUs have two modes, the GPU mode and then the CUDA mode for parallel processing, and the CUDA architecture is based on C. Any developer that knows C can write a program for CUDA.
GO: How do I know if my NVIDIA card supports PhysX or not?
BDR: Anything 8800 GTX or above supports CUDA, and therefore would support PhysX.
GO: Is there a way to tell what sort of performance metrics you can expect by enabling PhysX in a game that supports it?
BDR: Having PhysX run on the GPU is fundamentally days and nights ahead of what the original Ageia physics processor could do, just because of the number of cores we have in our GPU. At the low end, even in terms of our motherboard GPUs and the integrated space, those have a minimum of 16 cores. A GTX 280, just by comparison, has 240 cores. Compare that against even a Core 2 Quad or Core 2 Duo on the CPU side. You have up to four cores there, versus up to 240 on one of our GPUs currently. That's the whole basis of this CUDA stuff, that you can take advantage of all these extras cores and use them for parallel processing.
On the GPU side, depending on what you have, your performance is obviously going to vary. Turning on PhysX acceleration is really no different than turning on AA [Anti-Aliasing]. Your frames per second may go down, but the visual quality's going to go up.
GO: So I watched the Mirror's Edge demo [see above] and right away I noticed that while the effects are definitely eye-catching, they also seem largely cosmetic.
BDR: There's different levels of PhysX effects. There's the eye candy stuff, then there's the stuff that actually impacts gameplay where you have to move stuff around or try to open a door and things like that.
GO: Right, and I don't want to take away from the cosmetic angle, because it's easy to see where that might increase your emotional investment. I was just...taking this over to the actual EA and 2K Games announcements today, what's the developer cost to take things beyond that cosmetic space and into the gameplay-impacting space?
BDR: Well first, you could conceivably end up in a situation where if you want the full PhysX experience, you have to buy an NVIDIA GPU. Now obviously you can play these games without PhysX turned on, in which case you're just not going to get all the experiential stuff that you get with PhysX. The game's not going to be as exciting, but it'll play perfectly fine on an alternative card.
Or you could try running the PhysX stuff on the CPU, because our stuff is cross-platform. We support CPUs as well as the Wii, Xbox 360, and PlayStation 3, which is something that people tend to forget about.
On top of that, on the PC, if you're running PhysX on the GPU, it's also scalable, which is something you can't do on the CPU with competing solutions. So that means the more GPU power you have in your box, if you add a second or third card, then the amount of PhysX effects on the screen can scale up. For example, if a building blows up into 1,000 pieces and you add a second card, maybe that building blows up into 5,000 pieces.
GO: Is there a way for people to tell what that increase would be when they're weighing the cost of adding secondary or even tertiary hardware?
BDR: Think of it like SLI [Scalable Link Interface, NVIDIA technology that allows you to combine more than one GPU in a computer to increase visual performance]. You have two chips and you almost get 2X performance, or three chips and it's almost 3X performance. In the past what we've done with SLI is that you've had to have two identical GPUs inside your machine for the scaling to take effect. Mixing and matching different generations of cards doesn't work because you'd end up dumbing down to the lowest common denominator.
With PhysX in an SLI configuration, you can designate one of those cards for PhysX rendering, and one for GPU rendering if you want. Or you can actually use an older card. Say you've just upgraded to a GTX 280 and you've got a 9800 GTX sitting on your shelf. You can add that 9800 GTX back into your machine and use that as your PhysX renderer.
So given all the ways you can mix and match, it's hard for me to pinpoint a single usage model that a consumer would know what to go buy, because there's so many variables, and so many configurations you could actually come up with.
GO: I was thinking more in terms of the actual effects themselves. What are all the things that change if I can have two GPUs as opposed to one? Two GPUs give me more PhysX than one GPU, okay, but what is that "more" equal to? I suppose that's going to be game specific?
BDR: Yeah, it would be.
GO: It's easier when you having something like AA or AF [Anisotropic Filtering] or shader revisions like 2.0 or 3.0, because while you don't know precisely what the end result is, there's consensus on what it adds in general terms. It'd be interesting if you guys could come up with a PhysX rating of some sort.
BDR: Maybe, but it's hard to do that because you have people playing at different resolutions. They've got different monitors, different screen sizes, refresh rates, all that kind of stuff. So the permutations of all the different kinds of configurations out there, there's just so many. It's really hard to pinpoint experiential stuff.
GO: It sounds like the PhysX scalability curve is a lot more dynamic, that it scales up or down with a lot more gradation?
BDR: It does. The coolest thing about PhysX is that scalability. There's another solution on the market called Havok which Intel owns. The problem with Havok is it doesn't scale. So it doesn't matter what speed your CPU is, or how many cores it has, the physics result is going to be the same regardless of the hardware inside the box.
GO: The reason I ask, is as I'm watching the Mirror's Edge demo, as the person's being shot back through the plastic, and I realize this is going to sound awfully sadistic, but I'm wondering when can I run up, grab the plastic, and wrap it around the person's face?
BDR: There's actually a cool moment in Mirror's Edge. Do you remember Die Hard the movie, the original?
BDR: So Hans the terrorist says to his henchmen, he goes "Shoot the glass! Shoot the glass!" He's trying to get John McClane, they're trying to get the glass to fall on John McClane. There's actually a similar moment in Mirror's Edge where there's all these chandeliers, and if you shoot the chandeliers, the chandeliers will shatter and drop glass on the ground. And if the bad guys happen to be underneath the glass, you can actually take them out that way. That's an in-game effect that you only get on PhysX, and at that point, it's advanced from a dramatic effect to the question "how do you play the game differently?"