A pyramid of blocks

If you're a game developer interested in learning game physics, you may find these resources a good place to start.

They may not be page-turners for bed-time reading, but they're useful if you're a looking to start with the more practical side, as developers often do, of a subject that's very theory heavy.

Topics include fun with integration, collision detection, collision resolution and friction.

Disclaimer: I only play with these things in my spare time, so I'm definitely no expert, far from it.
There's probably a bunch of great resources I've missed, so please leave suggestions in a comment.


First, the big guns. These are heavily cited, and for good reasons:

One of the most famous articles on physics for games. It shows the Verlet mass-constraint approach.
This is where most people seem to start with game physics, including me. You can easilly make fun things like soft bodies. But after a while, you realise that this approach is pretty limited (even though they used it in Hitman).

Chris Hecker is the man when it comes to clear and complete explanations. His articles for Game Developer Magazine are among the best. He explains some of the most fundamental equations you'll end up seeing everywhere.

If you do end up reading any papers on the topic, you'll see references to Baraff and Witkin popping up everywhere. These fine chaps helped pioneer the field, while at Pixar.

Their course notes on Rigid Body Simulation become quite readable after you've read Chris Hecker's articles. Their work usually includes super helpful diagrams.

You may or may not know his name, but I bet you've used his engine. Erin Catto is the physics wizard behind Box2D. The engine that powers games like Angry Birds. The paper Iterative Dynamics describes some of the important techniques he uses in his engines, particularly for contact constraint solving. His GDC presentations provide even more clever ideas to solve practical issues you're likely to see when you start getting more advanced.

This is a long paper that runs through most major topics involved in physics engines. Garstenauer summarises a large amount of research in a clear and cohesive way. A good reference.


Making stuff move realistically requires integration of motion. To do this, you generally have a few choices: Euler, Verlet and RK4. Euler is very easy to understand and is where to begin, but in practice you'll need to learn Verlet or RK4.

Collision detection is tricky. Fortunately SAT and GJK are two very efficient algorithms to do it.

If you're like me, you tend to be better at reading and visualising code than you are equations. That's why I like William Bittle's articles since he takes a practical approach with code samples, plus he also covers important bits that others miss.

Even still, SAT is hard to grok from just the code. So even better, the "N Tutorial A" uses interactive diagrams to explain SAT visually. They make it easy to see just how clever the algorithm is.

The above are collections of articles that are mostly around developing basic physics engines in general, but some are split into topics. They're a good way to get your head around how all the pieces are related in the whole system.

Finally, these articles cover some other important bits and pieces that everybody seems to forget. Such as friction, which is far harder to get working properly than you'd think. Simultaneous collision handling is another hard one, because there seems to be no exact answers.

A free body diagram by cslarsen

When you get to handling rotation, you may realise something's a little off. You'll need to use the polygon momentum of inertia algorithm. And if you get bored of only having squares, triangles and circles to play with you're gonna need to use polygon decomposition, for example Bayazit's above.

You should also check out Erik Neumann's MyPhysicsLab which has interactive simulations and excellent explanations. If you'd like to see some more physics code, check out my physics engine.

That should get you started. Now, get coding something cool.