At the forefront of Artificial Intelligence
  Home Articles Reviews Interviews JDK Glossary Features Discussion Search
Home » Reviews » Books » Gaming

AI Techniques for Game Programming

Cover 8.4
Author:Mat Buckland
Excerpt:
AI Techniques for Game Programming gives you the keys to incorporating artificial intelligence into your games. Three sections walk you through basic Windows programming, the theory and practice of genetic algorithms, and finally neural networks where you can learn about the biological makeup of real brains and behavior evolution.
.: Buy at Amazon.com :. .: Buy at Amazon.co.uk :.

Game programming is quickly becoming one of the most popular areas of computer science. Naturally, the AI within games is also a very popular topic. As the title suggests, this book attempts to be aid the up-and-coming young programmer get to grips with AI programming paradigms.

What the title doesn't suggest is that the book is "limited" to genetic algorithms and neural networks, two paradigms that have had very little real-world exposure in games. The book doesn't cover other popular AI-related techniques such as A* pathfinding or finite state machines.

If this doesn't bother you then the book provides a very solid introduction to both genetic algorithms and neural networks. It starts out with an introduction to Windows programming: creating Windows, programming with the GDI etc. While this is a little distracting, it will definitely help those unfamiliar with Windows completely understand the examples on the CD. The "complete picture" approach continues throughout the book, where the author occassionally digresses to examine topics like vector graphics or real-world physics. This really helps give the reader a holistic understanding of the problem at hand and, more importantly, the solution the author puts forward.

The book continues by looking at genetic algorithms. A great deal of detail is put into ensuring the reader understands the intricacies of GAs, as well as the huge number of parameters available (mutations, crossover types, fitness selection, fitness scaling etc.). The four chapters dedicated to genetic algorithms all have very good example programs - demonstrating the range of problems GAs can be applied to. The final GA chapter looks at evolving a GA to land a lunar module. The author made an interesting point that the initial fitness function created lunar landers that were too perfect, therefore too unhuman. Therefore the fitness function was modified to encourage the lunar landers to stay afloat as long as possible. This immediately caused the GA to evolve landers that weaved back and forth in a much more human fashion.

The final section covers neural networks. Again, the book starts off with an introductory look at feedforward network and cleverly uses previous chapters to show how genetic algorithms can evolve the weights. Next, a look at teaching networks, and finally a look evolving network topology. As with the GA section, each chapter has an example program (or programs) to demonstrate the concepts, including a gesture recognition program.

The example CD contains all the necessary code (including Visual Studio workspaces) as well as example chapters from other books in the series, and a demo of Colin McRae Rally 2 (which, incidentally, uses neural networks). The only gripe I have with the CD is that it was so tightly glued to the book, I nearly ripped the entire back cover off!

While the title is fairly misleading, and it spends a lot of time on non-AI material, it is hard to say anything bad about the actual content of the book. It is well-written, cleanly presented with solid and well-commented example code. Even if you don't care for game programming, this book will present the topics of genetic algorithms and neural networks better than many other books out there.

Submitted: 27/08/2003

 Article Toolbar
Print
BibTeX entry

Search

Latest News
- Generation5 10-year Anniversary (03/09/2008)
- New Generation5 Design! (09/04/2007)
- Happy New Year 2007 (02/01/2007)
- Where has Generation5 Gone?! (04/11/2005)
- NeuroEvolving Robotic Operatives (NERO) (25/06/2005)

What's New?
- Back-propagation using the Generation5 JDK (07/04/2008)
- Hough Transforms (02/01/2008)
- Kohonen-based Image Analysis using the Generation5 JDK (11/12/2007)
- Modelling Bacterium using the JDK (19/03/2007)
- Modelling Bacterium using the JDK (19/03/2007)


All content copyright © 1998-2007, Generation5 unless otherwise noted.
- Privacy Policy - Legal - Terms of Use -