views:

309

answers:

3

The game design field has probably the lowest signal-to-noise ratio on the web out of any other. Seriously, try searching for advanced materials related to physics modeling, collision detection or the like and the amount of woefully bad or inaccurate material/tutorials/forum posts you will turn up is astounding. There are so many wanna-be game designers posting non-best practice, incorrect information that you almost have to double and triple check any statement made.

I'm attempting to write a physics simulator. My current version has balls that I can throw around and watch the effects of gravity and friction etc. However there are some glaring issues that I wish to expand on. My collision detection technique is very naive, movable bodies don't collide with each other and respond appropriate to the forces they exert on each other, etc.

I'm looking for some books that talk about some intermediate to advanced topics such as:

  1. Advanced collision detection. (CCD, AABB, OBB, and other advanced collision detection methods)
  2. Object Pruning, Binary Space Partitioning, spatial trees and other structures to optimize said collision detection.
  3. Physics of collision between ball-ball, ball-plane, polygon-plane, etc, etc. Physics equations to help determine the resulting force vectors after collision is detected.
  4. Determining angle of reflection off a sloped plane instead of a perfectly straight bounding box.
  5. Polygons rotating after colliding with an object near their edge. Similarly, balls rotating/rolling down inclines.

These are just ~some~ of the topics I wish to have a much more indepth understanding of. Can anyone point me to some books that would satisfy these requirements? I'm not interested in 3D physics at the moment. Maybe after I master more of the 2D concepts.. but I would really prefer if the books were 2D oriented or could easily be applied to 2D.

+2  A: 

Totally agree with your noise-to-signal point there. It's horrible.

Anyways as a professional I keep a copy of Van Verth's Essential Mathematics, and Ericson's Real-Time Collision Detection. However to be honest last time I wrote a physics simulation was about 5 years ago, since then I (and team) have relied on physics middleware be it commercial or internal (other department makes it we use it). But for learning the two books above are complete enough.

Robert Gould
@Robert Gould, I totally understand the outsourcing of the physics engine. The field is complex and re-inventing that wheel every time would probably prove to be a financial nightmare. I'm just doing it to learn. I got a thrill modeling balls bouncing with gravity and friction.
Simucal
Thought so, anyways these are the books I used to code physics in both 2D and 3D, however of course they are mathematic books, so they don't cover stuff like pixel-based collision and they both use OpenGL in their examples, but that's not really relevant, since they are only drawing primitives.
Robert Gould
+1  A: 

You might want to take a look at Box2D (http://www.box2d.org/), an open source 2D physics engine. Being able to delve into the source code of a working 2D physics engine is a fantastic way to learn more about how to roll your own (down an incline - budum-tish). I also find Glenn Fiedler's articles on games physics quite useful (http://gafferongames.wordpress.com/game-physics/), and keep a copy of Physics for Game Developers on my desk (http://oreilly.com/catalog/9780596000066/).

MegaHAL
Another one if c# is your thing: http://farseerphysics.codeplex.com/
RCIX
+1  A: 

I use Computational Geometry in C for much of my surface modelling stuff. It doesn't relate to the points you raise re dynamics, but at a low level deals with triangulation and ray tracing in good depth.

Shane MacLaughlin