Publisher: Premier Press
ISBN 10: 1-931841-08-X
Companion Site: N/A
My Rating: 4/10 (Can be skipped!)
Summary: “AI Techniques for Game Programmers” reads like a book for high school students, and though it tries, it barely manages to touch on real-world game applications of the soft-computing methods it introduces to the reader.
The book starts with an introduction to windows programming; a hello-world program, keyboard input, basic Windows GDI and graphics, etc. Using up the first quarter of this 480 pages book to teach basics of programming is a poor choice on the author’s part, considering that most readers of this book will be game coders interested in learning new soft-computing methods and applying them to games. Plus, there are plenty of other more focused sources to learn windows programming from, and game AI programmers more often than not will use the game graphical interface that they are working on anyways when they need graphics.
Having gone through (or skipped) the first part, the books starts to get a tad more interesting. The second part is devoted to Genetic Algorithms (GA), and after a very basic, but lengthy introduction to the Genetic Algorithm the reader can check out how GA’s manage to provide a good solution to the Travelling Salesman Problem (TSP). Again, we get a lot of information on basic C/C++ programming which is really unnecessary. Revisiting variations of genetic algorithm operators, Mat barely mentions that the TSP can be applied to the problem of real-world pathfinding, before leaping into another huge chapter of vector graphics, and using a simple genetic algorithm to automatically play a Lunar Lander. Strangely there is no mention of how to use GAs for general pathfinding, creating artificial life, co-evolving bots, choosing best driving paths, evolving Finite State Machines, Genetic Programming, and loads of other interesting applications in real games.
What he did in the second part for GA, mat does in the third part for Neural Networks. Again, simple basics, and a very basic example of what can be done with NN’s. This time he implements a mine-sweeping bot, though I admit the example is a bit more engaging, at least in its application to rover/bot creation for games. The second example involves recognizing what gesture the player makes with his mouse (Myst tablets spring to mind) and is quiet useful.
In the last part of the book, we are led through the fusion of the two methods, using GA to evolve NN’s, with yet another simple example, but just as things start to get interesting, you reach the back cover of the book, and are left wishing for more of the “real” stuff.
Overall the book is an easy read, and the author breaks down every concept into easy to digest bits, many times “too easy to digest bits”! On second thought, it seems that Mat, put together a bunch of his old notes and writings, peppered them with some interesting tips and insights, simplified a few chapters from GA and NN books and articles, added whatever code he had at hand and sent off the manuscript for print. At some points mat explains so much about basic programming and math, that I start to think he wrote the book with high-school students in mind. The simple code provided with the book will only take you so far, and the book is really only useful in that it might inspire you to look for more on the subjects of GA and NN.
“AI Techniques for Game Programmers” strikes me as too simple a book for its audience, the average game programmer! If you have no idea of physics, vector math, basic AI and basic GA or NNs you might want to read this introductory text and have a look at its code, but that is really all.