To sum up the three different options for physics acceleration:
CPU physics:
Advantages:
* Easiest to program
* Will be universally compatible (any CPU will run the same code)
* Makes use of idle CPU cores, and can be adjusted to use however many cores are 'idle' or underused
* Everyone will have a multi-core CPU so no additional hardware required
Disadvantages
* Potentially the least powerful in terms of raw floating point calculations per second (due to no specialisation for physics-type calculations)
GPU physics
Advantages:
* The most powerful option, in terms of raw floating point calculations per second. Potential for massive numbers of physics objects in game.
* People who play games will already have a GPU of some kind. Hence no additional hardware required.
Disadvantages:
* Will require a high level of programming skill (and a lot more development time) to implement efficiently
* Any effort spent on physics is taken away from regular graphics calculations. Extra graphics card required for true 'free' physics
* Will likely require developers to make two different physics implementations (for nvidia and ATI)
Dedicated physics hardware:
Advantages:
* Hardware's memory stucture can be optimised to handle the size of data structures usually associated with physics calculations (will give efficiency benefits relative to the GPU, though the GPUs raw power will let it win out every time)
* Specialisation should make programming for the accelerator easier than programming for the GPU (note 'should'; I have no actual experience programming for physx cards).
Disadvantages
* Requires the user to buy an extra piece of equipment. Until ownership is widespread enough, game developers must write both a software and a hardware physics engine, limiting how integrated into the game the physics can be.
* If other companies also bring out physics accelerators, we have a potentially unlimited number of different platforms to support. Games will have to choose which to support (and every additional one will mean more development time)
Well there we have it. From these I hope some of you can make up your own minds about which platform will be best. Like I said earlier, my money is on CPU physics, simply because it is the easiest to program and most universally supported option.
CPU physics:
Advantages:
* Easiest to program
* Will be universally compatible (any CPU will run the same code)
* Makes use of idle CPU cores, and can be adjusted to use however many cores are 'idle' or underused
* Everyone will have a multi-core CPU so no additional hardware required
Disadvantages
* Potentially the least powerful in terms of raw floating point calculations per second (due to no specialisation for physics-type calculations)
GPU physics
Advantages:
* The most powerful option, in terms of raw floating point calculations per second. Potential for massive numbers of physics objects in game.
* People who play games will already have a GPU of some kind. Hence no additional hardware required.
Disadvantages:
* Will require a high level of programming skill (and a lot more development time) to implement efficiently
* Any effort spent on physics is taken away from regular graphics calculations. Extra graphics card required for true 'free' physics
* Will likely require developers to make two different physics implementations (for nvidia and ATI)
Dedicated physics hardware:
Advantages:
* Hardware's memory stucture can be optimised to handle the size of data structures usually associated with physics calculations (will give efficiency benefits relative to the GPU, though the GPUs raw power will let it win out every time)
* Specialisation should make programming for the accelerator easier than programming for the GPU (note 'should'; I have no actual experience programming for physx cards).
Disadvantages
* Requires the user to buy an extra piece of equipment. Until ownership is widespread enough, game developers must write both a software and a hardware physics engine, limiting how integrated into the game the physics can be.
* If other companies also bring out physics accelerators, we have a potentially unlimited number of different platforms to support. Games will have to choose which to support (and every additional one will mean more development time)
Well there we have it. From these I hope some of you can make up your own minds about which platform will be best. Like I said earlier, my money is on CPU physics, simply because it is the easiest to program and most universally supported option.
Last edited: