Updates
Latest Tweet
What's New?
Check out for latest innovation, a computer based training video collection
Like this Page
AI for Game Developers Review by calvinnme
Good for implementing AI in games, not so good for theory
This book gives people that are new to AI in game programming a quick start in that area. If you are interested in looking at the broad fields of AI with direct application to game programming, this will show you a bit of everything. The text is clear and doesn't require any higher understanding of mathematics than some basic trigonometry. I think that the problem most people have with this book is that none of the chapters covers its subject in depth. Thus, people looking to learn AI from this book that ignor the "Game" part of the title will be disappointed. Full C++ sample programs are available on the books web site-the book is all in C++, and you should have no problems understanding the code with moderate C skills. Bresenham's line algorithm, line-of-sight-chasing and intercepting are all explained in a pretty simple way. My biggest complaint is that, even within the construct of game programming, the presentation of Bayesian systems and probability was too short for my taste. The following is a description of the book from the context of the table of contents:
Chapter 1, Introduction to Game AI - Defines game AI and discusses the current state of the art as well as the future of this technology.
Chapter 2, Chasing and Evading - Covers basic techniques for chasing and evading as well as more advanced techniques for intercepting. It also cover techniques applicable to both tile-based and continuous game environments.
Chapter 3, Pattern Movement - Pattern movement techniques are common to many video games and developers have been using them since the early days of gaming. You can use these techniques to preprogram certain behaviors such as the patrolling of a guard or the swooping in of a spacecraft.
Chapter 4, Flocking - The flocking method examined in this chapter is an example of an A-life algorithm. In addition to creating genuine looking flocking behavior, A-life algorithms form the basis of more advanced group movement.
Chapter 5, Potential Function Based Movement - Potential-based movement is relatively new in game AI applications. It can handle chasing, evading, swarming, and collision avoidance simultaneously.
Chapter 6, Basic Pathfinding and Waypoints - Game developers use many techniques to find paths in and around game environments. This chapter covers several of these methods, including waypoints.
Chapter 7, A* Pathfinding - No treatment of pathfinding is complete without addressing the workhorse algorithm of pathfinding; therefore, this whole chapter is devoted to the A* algorithm.
Chapter 8, Scripted AI and Scripting Engines - Programmers today often write scripting engines and hand off the tools to level designers who are responsible for creating the content and defining the AI. In this chapter, you'll explore some of the techniques developers use to apply a scripting system in their games.
Chapter 9, Finite State Machines - Finite state machines are the nuts and bolts of game AI. This chapter discusses the fundamentals of finite state machines and how to implement them.
Chapter 10, Fuzzy Logic - Developers use fuzzy logic in conjunction with or as a replacement for finite state machines. In this chapter, you'll learn the advantages fuzzy techniques offer over traditional logic techniques.
Chapter 11, Rule-Based AI - Technically, fuzzy logic and finite state machines fall under the general heading of rules-based methods. This chapter covers these methods as well as other variants.
Chapter 12, Basic Probability - Game developers commonly use basic probability to make their games less predictable. Such cheap unpredictability enables developers to maintain substantial control over their games. Here, basic probability is covered for this purpose as well as lay the groundwork for more advanced methods.
Chapter 13, Decisions Under Uncertainty--Bayesian Techniques - Bayesian techniques are probabilistic techniques, and in this chapter you learn how you can use them for decision making and for adaptation in games.
Chapter 14, Neural Networks - Game developers use neural networks for learning and adaptation in games for anything from making decisions to predicting the behavior of players.The most widely used neural network architecture is covered here.
Chapter 15, Genetic Algorithms - Genetic algorithms offer opportunities for evolving game AI. Although developers don't often use genetic algorithms in games, their potential for specific applications is promising, particularly if they are combined with other methods.
Appendix, Vector Operations - How to implement a C++ class that captures all of the vector operations that you'll need when writing 2D or 3D simulations.
All the chapters in this book are fairly independent of each other. Therefore, you generally can read the chapters in any order you want, without worrying about missing material in earlier chapters. The only exception to this rule is Chapter 12, on basic probability. If you don't have a background in probability, you should read this chapter before reading Chapter 13, on Bayesian methods. I would recommend this book if you are looking to implement AI into a game without wanting a complete explanation of the theory. If a complete explanation of the concepts is what you require, you will be disappointed.