The State of Game Physics
Game physics is a difficult subject. It must be layered on top of collision detection, which is also difficult. So the difficulty is compounded. In my opinion, the difficulty in writing a physics engine is not entirely necessary.
Learning the physics and mathematics necessary to write a physics engine is challenging and a good education helps. However, education is not enough because many of the techniques needed to write an efficient physics engine are not taught in school. Furthermore, I have not found any book that shows how to write a physics engine. Yes, there are books on game physics. I’ve seen at least three. But none of these books comes close to showing how to write a physics engine.
There are good books on collision detection by Gino van den Bergen, Christer Ericson, and Dave Eberly. They have proven invaluable to me in my day-to-day work. So why are there no books that explain the algorithms needed to write an efficient physics engine? Well, until recently there has not been any papers on the matter.
Yes, I know about the papers by Baraff, Mirtich, Jakobsen, Anitescu, and Guendelmen. I would argue that none of these algorithms are used in commercial physics engines without serious overhaul.
It seems to me that almost everyone who develops a good algorithm for game physics keeps it under wraps. This is too bad. The graphics community has shared algorithms since the beginning and look at how far it has progressed. What has stopped the game physics literature from flourishing in a similar way?
This is my open question to you.
June 4th, 2005 at 10:17 am
I think game physics is much more of a black-art-voodoo-magic than graphics. There are just way too many pieces that have to be working exactly right.
When I first started my simulator it was really fragile. It seemed like even small changes would make it go nuts. As it matured, I could make larger and larger changes until I got to the point of… Uh… Man, I can be really sloppy and it still holds together.
With graphics, you can start out sloppy and work your way to pretty. Physics is all or nothing.
June 5th, 2005 at 12:43 am
>Yes, I know about the papers by Baraff, Mirtich, Jakobsen, Anitescu, and >Guendelmen. I would argue that none of these algorithms are used in >commercial physics engines without serious overhaul.
As ex-Havok employee I can confirm that with published literature you can build a stable and fast rigidbody dynamics engine. Platform dependent optimizations are usually NDA. Understanding Mirtich’s Ph.D and his Time Warp paper allows for a fast parallel continuous physics engine. Gino van den Bergens recent paper about implementing the raycast on convex objects was just a special case of Mirtichs Time Of Impact estimation.
However my best answer is taking the challenge and publish a small paper with enough details to write a modern physics engine.
Kind Regards,
Erwin Coumans
June 9th, 2005 at 7:47 pm
Erwin, perhaps you would list some of the published papers that you have found useful for creating a competitive physics engine.
- Eric “Hellcats” Parker
July 3rd, 2005 at 5:44 pm
There are few open source physics library we can use to make our engine development faster. ODE is an excellent example, especially for its BSD license. The problem is implementation tweaking which is also difficult to get it right. In my case, I must develop a new joint type to the ODE to handle some configuration of my simulator.
October 6th, 2005 at 6:51 am
“The graphics community has shared algorithms since the beginning and look at how far it has progressed. What has stopped the game physics literature from flourishing in a similar way?
This is my open question to you.”
Would imagine it has something to do with money?