| ||||||||||||||||||
| ||||||||||||||||||
|
||||||||||||||||||
|
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 |
|
|||||||||||||||||
All content copyright © 1998-2007, Generation5 unless otherwise noted.
- Privacy Policy - Legal - Terms of Use -