My friends got me this book for my birthday and I gotta say it's quite possibly the best development book I've ever read.
I should probably qualify that. I've read lots of development books that are good in content and/or good in writing style but this one just does it best. Not only is Mat good at clearly explaining things and in an entertaining way but he's got great working examples, something missing from so many books. He's also got loads of diagrams and illustrations to make his points clear.
Mat goes into the details of implementing game AI for all kinds of things. Race cars, soccer players, soldiers. He goes into techniques like:
- Finite state machines: What they are for and good examples of implementing them. A simple explaination is some object in the game is in a particular state "<i>like walking in a circle looking for the player". When he spots the player he switches states to "<i>shoot at player". If the player disappears he switches back to "<i>like walking in a circle looking for the player". That's would not be a very interesting character but you build them up and the easiest way to do this kind of thing is through finite state machines.
- Messaging: objects often need to send messages to each other to cooridinate things.
- Pathfinding: finding your way though a map. He goes over this one with very detailed diagrams.
- Scripting: what it is, how to use it, I'm not sure if he goes into the minuses enough but those are becoming less and less.
- Goal oriented AI: Goals require multiple steps like the goal "kill badguy" might become sub goals "go to bank, take out money, go to store, buy gun, go to evil lair, shoot bad guy".
all of these with very real examples. He's even got all the examples up on the net with source to look at. Download the binaries and I'm sure you'll be sold.
All the examples in the book are in 2d. The concepts apply to 3D but adding the complications of 3D into the examples would have made them much harder to understand.
The book expects that you already know C++ and STL and are comfortable with them but otherwise it's easy reading. It's not full of crazy looking math stuff and that math you do need is covered at the beginning.
If you are at all interested in making your own games or learning more about game AI this is an awesome book to get you started.