
Today NVIDIA is announcing some very exciting technology for gamers that is poised to improve your gaming experience in a very real way. Our preview of the technology will tell you what you need to know from the gamer’s perspective.
Newton’s Three Laws of Motion not only bind our physical world, but also reach into our games as game developers are always looking for ways to realistically bring Newton’s Laws into our gameplay to better create a feeling of immersion in the virtual words they create.
If you accidentally dropped that brand new very expensive laptop you just bought you know for certain it is going to travel downwards smashing into the ground due to gravity. It may or may not bounce on the ground depending on the material it is made of and it will most definitely not pass through the ground or fly upwards. These are the realisms of the world we deal with in our daily lives, they do not change, these are fundamental physics.
In games however these tasks are not so easy because everything is virtual. In a virtual 3D environment there are no physics by default. You can have characters and objects do absolutely anything you want. This freedom actually can lend way to some very exciting methods of gameplay, but we really haven’t seen this kind of gameplay exploited in games. In an upcoming game called Prey we will see an interesting use of gravity as part of the gameplay so this may be the start of using physics and a virtual world for unique gameplay.
Gamers seem to want a basis in reality with their games. They don’t want characters falling through floors and they want objects to move like they would in the real world. In first person shooter games for example you want bullets from your gun to hit your enemy and inflict damage on different parts of their body, you want them to react to the force of those bullets realistically while you want other objects in the world to react as well. If you drive your car through a building there is going to be a lot of debris, a lot of particles, and a lot of new objects broken off from the materials of the buildings. Gamers want this same level of realism in their games.
In a gaming world, game developers have to literally program every single object and every single path it could possible take when acted upon by another object. Not just that, but they are now also expected to calculate force and gravity on objects with different materials. Everyone knows in the real world that rubber will bounce off concrete and concrete will not bounce (much) off concrete. A game doesn’t know this though; you have to tell it rubber bounces off concrete and concrete does not bounce off of concrete. Then these variables have to be applied to every other object in the game, so if an object is made of rubber then it will bounce.
This is just the tip of the iceberg though. Game developers also have to look at the weight of the object made of rubber, as weight and gravity and mass will determine how much it bounces. Then they have to figure out what is it bouncing off of and what direction will the bounce take it. I hope our rubber ball example has shown how there are more than just a couple of ambiguous layers calculations to be done in order to determine just one object’s physics, let alone an entire game’s worth. Think about having every object in your virtual gaming environment lending itself to interaction bound by Newton’s Laws of Motion. You can imagine how resource intensive this might be.
Currently most in-game physics calculations are performed by your computer using your CPU. CPUs are good for some things and not so good for others. When it comes to physics calculations they are actually fairly slow when compared to other more focused solutions. The CPU just cannot handle a large amount of objects that need physics calculations and this is why we see limited worlds in terms of physics in our games today. This is similar to 3D graphics. Today’s CPUs simply cannot handle real-time 3D rendering. This is why we have graphics processing units, or “GPUs,” that are dedicated processors for 3D rendering. So it makes perfect sense that if GPUs did what they did for 3D graphics and gaming maybe a separate processor for physics could also do the same.
What do we use to accelerate physics then? There are currently two competing ways to handle dedicated physics calculations. You have probably heard one approach Ageia is proposing. They are proposing a separate add-in-card that contains a dedicated physics processor on board called the PhysX processor. This dedicated processor will do nothing but physics calculations in your games to provide a more immersive gaming experience. The Ageia solution has yet to launch, but we understand that to utilize it, you would have to purchase an Ageia PCI or PCIe card from either ASUS or BFGTech. The other requirement is that the game you are playing must support using their PhysX physics engine. Games have to be programmed using their physics engine and programmed to take advantage of the PPU.
What Ageia has to do is get some big names under their belt to launch their technology. They have a pretty big one too, Epic Games. The Unreal Engine 3 will be using the PhysX physics engine. UE3 advantages and gameplay impact with a PhysX processor are yet to be seen. Here is a list of some game developers that are also using the PhysX engine.
While a separate add-in-card containing a dedicated processor is one option, there is another option that may already be in your computer, your video card. This idea isn’t actually new. There has been a big push since programmable GPUs have evolved to use them for other tasks. With their programmable nature they are capable of doing more than just 3D rendering. We know they can render 3D many times faster than a CPU, which is how we get such beautiful graphics in our games, so what if we used that power that is sitting there to do more than just 3D. That is what NVIDIA and actually ATI as well are proposing. If you read our ATI X1000 family evaluation, check out this page where we are talking about this very same idea. ATI also sees the benefit in using GPUs as dedicated processors for other tasks, like physics. What differs today with this technology preview is that this has gone from idea to implementation as NVIDIA has developed a working GPU physics engine solution with Havok.