Game Physics Engine Development

Author: Ian Millington
Publisher: Morgan Kaufmann, 2nd edition, 2010
Pages: 552
ISBN: 978-0123819765
Aimed at: Games and graphics programmers
Rating: 4
Pros: Direct and down to earth approach
Cons: Tendency to avoid the maths
Reviewed by: Mike James

Many graphics programmers are completely ignorant of physics - can this book help them?

 

Author: Ian Millington
Publisher: Morgan Kaufmann, 2nd edition, 2010
Pages: 552
ISBN: 978-0123819765
Aimed at: Games and graphics programmers
Rating: 4
Pros: Direct and down to earth approach
Cons: Tendency to avoid the maths
Reviewed by: Mike James

Games programmers and 3D graphics programmers have a basic problem when it comes to animating simple objects - the way that they behave is all a matter of physics. The problem is that many graphics programmers are completely ignorant of physics. This book sets out to educate the programmer in the basic physics and maths needed to implement some simple physics based animation and along the way to build a physics engine as a set of C++ classes.

Having said this it is important to know that the book is fairly light on the physics and maths details. Newton's laws of motion, the inertia tensor and some rigid body motion is about as far as it goes. You won't find much about Lagrangians or differential equations in this book. However, if you are looking for a fairly direct approach to the programming problem then it is exactly what you do want.

It is also important to know that this book is not about implementing accurate physics simulations. The only thing that matters it that it looks right and if you can fudge the physics a little (or even a lot) and end up with something that looks right then so be it.

 

Banner

 

 

The first part of the book is about particle physics - no not the Higgs boson but the laws of motion of a simple point particle. In this part we learn about forces, acceleration and gravity to create a very simple firework simulation.

The second part of the book describes mass aggregate physics. This deals with assemblies of particles moving under simple constrains - springs, contact and collisions. There is a lot of practical discussion in this section of why things go wrong with stiff springs and other things that turn out to be difficult to work with in practice.

The third part tackles the most difficult subject of rigid body physics. Here we learn about rotations and the laws of rotational motion. The inertia tensor is introduced but without the advanced mathematics needed you only really get a rough idea of what is going on.  But it is probably enough to implement a simple animation of an arbitrary body tumbling though space say.

Part IV is on collision detection and detecting  contacts. Part V deals with contact physics and formulates the problem in terms of impulses. In this section we also deal with resting contact, friction and stability.

The book closes with a look at more advanced ideas but nothing very advanced.  Indeed you could say this "nothing very advanced" comment sums up the entire book. It stays very rooted in what the graphics programmer is trying to do and doesn't go off to explain theoretical ideas that might be interesting but not really necessary.

For me the book doesn't really give enough mathematical detail but if you don't get on with maths it might be just right. It certainly would enable you to see the basic ideas and perhaps move on tor read a more advanced book. It provides good simple implementations of most of the ideas but it doesn't really cover overall architecture or design of a physics engine and how it would integrate into the wider software. It also doesn't discuss the range of available physics engines and the code presented almost certainly isn't up to the job of being used for real. There is also little or no discussion of alternative methods and where there is usually there isn't enough for you to understand the alternatives. It also doesn't deal with coding using GPU or anything other than basic C++.

This is a good but basic book on simulating simple physics. Overall I liked its down to earth approach and I can recommend it if you really don't want to master the advanced maths. If you are going on to do anything complicated or ground breaking then you will need to master the maths one day, but that's another book...

 

Banner


Code: The Hidden Language of Computer Hardware and Software 2nd Ed

Top Book 2023
Author: Charles Petzold
Publisher: Microsoft Press
Date: August 2022
Pages: 480
ISBN: 978-0137909100
Print: 0137909101
Kindle: B0B123P5GV
Audience: General
Rating: 5
Reviewer: Mike James
Code! We all need to know about it.



Algorithmic Thinking, 2nd Ed (No Starch Press)

Author: Dr. Daniel Zingaro
Publisher: No Starch
Date: January 2024
Pages: 480
ISBN: 978-1718503229
Print: 1718503229
Kindle: B0BZGZHK3B
Audience: C programmers
Rating: 4
Reviewer: Mike James
What exactly is algorithmic thinking?


More Reviews

Last Updated ( Sunday, 11 May 2014 )