Home Resources Books Real Time Collision Detection
Real Time Collision Detection PDF Print E-mail
Written by Peter Bloomfield   

Title: "Real Time Collision Detection"
Author: Christer Ericson
Published 2005 by Morgan Kaufmann Publishers (Elsevier Inc.)
From the Morgan Kaufmann Series in Interactive 3d Technology
ISBN: 1-55860-732-3


Introduction
One of the things which scares or challenges some aspiring games programmers the most is mathematics. Even if you were 'good' at maths in school or university, it does not guarantee that you will be good at applying maths in games development. Thankfully, there are a handful of books like this one which are remarkably reader-friendly. The specific topic here is 3d collision detection; that is, figuring out how/when/where two or more virtual objects in your game bump into each other. This is crucial to many areas of games, such as making sure players don't go through walls, or detecting bullets hitting a target, and so on.

Review
Ericson starts out with a good summary of various concepts involved in collision detection, and some of the approaches which are used. A lot of it is glossed-over fairly briefly, but it gives enough information that you can look for other sources if anything is of particular interest. Following that is the obligatory math primer, covering vector/matrix math adequately, but also doing a solid job of covering some geometry as well.

The subsequent 3 chapters -- giving excellent information on bounding volumes, primitive tests, and volume hierarchies -- are the ones which by far I have referred to the most over the years. There is typically no need to read them sequentially from start to finish; you can normally look up the contents at the front, and find exactly what you need to know very quickly. It shows numerous geometric tests, and suggests lots of ideas of how and when to use them, and what might be better.

A couple of chapters are also devoted to spatial partioning (with one exclusively covering binary space partitions). These are also well written, and absolutely essential information for anybody programming 3d games. The remaining chapters cover various topics of general interest for games programmers, handling issues such as optimisation and numerical/geometric robustness. The information will not necessarily be of direct or immediate use all the time, but it is at least beneficial to know about.

Conclusion
For me, the most striking part of this book is the way it presents the problems and the solutions. Instead of being a dry, theoretical handling of abstract formulae and equations, it shows very practical examples which you can grasp without having a degree in maths! Additionally, it does not fall into the trap of over-simplifying the whole thing, forcing you to use the author's particular vision of how your project should be implemented. You certainly still need to apply a good deal of thought in regards to implementing the concepts in whatever context you are working, but the book contains plenty of helpful advice and general guidelines to help you.

The bottom line is, if you need to work with collision detection, but you aren't already a maths guru, then this book will be a very valuable reference to keep nearby. On the other hand, maths gurus will probably find the book infuriatingly simplistic, and might be better looking at Verth and Bishop's "Essential Mathematics for Games", from the same series.

 

 

Related Items