Game Physics Engine Development: How to Build a Robust Commercial-Grade Physics Engine for your Game Paperback – 9 Sep 2010
- Choose from over 13,000 locations across the UK
- Prime members get unlimited deliveries at no additional cost
- Find your preferred location and add it to your address book
- Dispatch to this address when you check out
Frequently bought together
Customers who bought this item also bought
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Would you like to tell us about a lower price?
If you are a seller for this product, would you like to suggest updates through seller support?
Praise for 1st edition:
"The first game physics book to emphasize building an actual engine...his book fills a gap by demonstrating how you actually build a physics engine." - Dave Eberly, President, Geometric Tools.
"A competent programmer with sufficient mathematical sophistication could build a physics engine just from the text and equations--even without the accompanying source code. You can't say this about a lot of books!" - Philip J. Schneider, Industrial Light & Magic.
About the Author
Ian Millington is a partner of IPR Ventures, a consulting company developing next-generation AI technologies for entertainment, modeling, and simulation. Previously he founded Mindlathe Ltd, the largest specialist AI middleware company in computer games, working with on a huge range of game genres and technologies. He has a long background in AI, including PhD research in complexity theory and natural computing. He has published academic and professional papers and articles on topics ranging from paleontology to hypertext.
What other items do customers buy after viewing this item?
Top customer reviews
Text books can in general be split into two groups, those that are mathematically rigorous to the expense of clarity and those that are actually useful. This book definitely falls into latter category; and is better for it.
I am a java programmer with no experience of C++ however the book (which is C++ focused) remained very useful with the supplied code being supplemental to the text section rather than being essential. However, the code that I did read was clear with expressive variable names and clear logic.
Other reviewers have commented that the collision detection chapter is weak and I have to agree; if that is your main difficulty then this book may not be for you. However collision detection is quite self-contained; separated out from the rest of a physics engine so you can plug in whatever collision detection you like. For me this was fine as in my previous "less than satisfactory" attempts at physics engines the collision detection was the only part that was good and I just slotted in the old collision detection into the new engine. I would also warn (if you don't read the book from cover to cover) that the author has used operator overloading; be aware that % has been used for the cross product, not the more usual modulus operator.
Very little is glossed over in this book; for example a whole chapter (and several separate sections) are dedicated to stability (i.e. sorting the problems of vibrations at rest that plague physics engines). Not to mention that a complete engine written based on the concepts of this book is linked to on the internet so if anything is ever unclear (not that it really is) you can go and look at the complete source code to see exactly how it was done).
In conclusion; I have written 3 physics engines, the first let things fall through each other occasionally, the second sort of worked but everything vibrated at rest and behaved strangely sometimes, the third, written with this books help, just works. I can thoroughly recommend this book
For my purposes this books has been everything I need. I got the book at Christmas and now have a pretty good foundation 2D physics engine for my game engine (this book primarily covers 3D, but coversion to 2D is relatively simple, and the maths is easier. there is even a chapter on what you need to convert!)
Firstly, I am a physics graduate with a number of years (10+?) of hobbyist programming behind me. My language of choice (due to targeting Windows Phone platform) is currently C#. I can programme in others, including C++.
This book walks you through the steps required to start building YOUR OWN physics engine. I did not copy any code in the book. This book is fantastic for highlighting a possible structure for a physics engine (mine is radically different in actual implementation), as well as what you need to implement and watch out for. At every step, the relative merits and drawbacks of methods are discussed (with reference to further texts) with good insight into uses and limitations of the engine at each step.
I therefore cannot comment on the ability of the source code to run, or its programming practices. The comment I will make is that the author in a number of places advises that the code in the book has been arranged for readability rather than performance. Im not sure how that translates to the downloadable code.
This book is fantastic if you:
1. Mathematically literate to A-level. A good conceptual grasp of what calculus is all about helps with understanding the position -> velocity -> acceleration equations.
2. Need to build your own physics engine, understand the sort of laws you need to implement, but are unsure how you should approach the various parts.
I have bought many many programming / computer books over the years. Most of them recently were XNA or graphics programming related. I am almost always dissapointed, scratch that, I am ALWAYS dissapointed. THIS book has been Gold Dust from page one to the very end. I cannot stress that enough.
Writing a physics engine is actually the combination of a collision detection system (broken into seperate parts), a collision resolver and then a rigid body physics engine part on top. As there are a number of seperate systems, it leads to times whereby you are writing functions that will interact with later functions. This is why other people have commented to referencing unimplemented functions. It would be an absolute clusterf* if it was not structured that way.
How I used the book: I spent boxing day reading this book cover to cover, so in my head I could then plan my engine, taking into account the key takeaways I had. I then built my physics engine whilst slowly flipping through the book as reference.
This is the first time (I think) ive ever bothered with such a review. I can't recommend this enough, TO THE RIGHT PERSON
Perhaps I am biased, I came to this understanding all the concepts and mathematics involved (that's a lie, i had never heard of seperating axis test, i mean more the general maths / physics concepts and techniques). However...I will say this. Although I ended up in 2D, this has by far the clearest practical explaination of Quaternion use in 3d graphics I have ever read. I think the text explanation of concepts is generally very good. But again, its always easier if you know the subject a little already :)
Big Rant, Big Ramble. Buy this book (if it's for you).
I randomly bought a book on AI programming recently that i havent read yet, was pleasantly supised that to find its the same author so i look forward to that.
I highly recommended you have already programmed a basic 3D engine.
The first half of the book was quite clear and there was no need to look up any source code online. However, the reason for only 2 stars is the second half of the book. Big corners were cut. Concepts were explained without any code to go with it. Where there was code, methods/functions were often added yet not meated out until much later, meaning going through many chapters with just plain reading and coding without being able to test your engine (easily). Bits of code is dotted around and its rarely clear whether you're suppose to include that code, or where in the engine it should be placed. The most tricky part of the book, and the one I was most interested in learning, was collision detection. And this was the part where the most corners were cut. In the end, and really disappointingly, I've ended up having to copy and paste these sections of the source code from online (and re-writing to C#). If you do this you'll often find methods/functions that weren't covered in the book yet were fundamental to the engine.
If you're a good programmer you may get alot more out of this book. A good introduction but if you're interested in collision detection for rigid bodies, I really can't recommend this book.
Would you like to see more reviews about this item?
Most recent customer reviews
You will not build a Robust Commercial Grade Physics Engine with this book
(2nd edition) without Additional work.Read more
Look for similar items by category
- Books > Art, Architecture & Photography
- Books > Computing & Internet > PC & Video Games
- Books > Computing & Internet > Programming > Games
- Books > Computing & Internet > Programming > Graphics & Multimedia
- Books > Computing & Internet > Software & Graphics > Graphics & Multimedia > Image Manipulation & Creation
- Books > Science & Nature > Engineering & Technology > Engineering Physics