Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming Books Media Book Reviews Entertainment Games Technology

Artificial Intelligence for Computer Games 250

Craig Reynolds writes "In his recent book Artificial Intelligence for Computer Games: An Introduction , author John Funge takes us on a whirlwind tour of techniques from the literature of academic AI research and discusses their application to the nuts and bolts of game AI programming. While some of these topics are quite advanced, the text remains easily readable and grounded in what the techniques mean to real game programmers developing real game AI." Read on for Reynolds' review.
Artificial Intelligence for Computer Games: An Introduction
author John David Funge
pages 160
publisher A K Peters
rating 8
reviewer Craig Reynolds
ISBN 1568812086
summary Written for game AI programmers, this book provides a practical introduction to advanced AI techniques and practices for constructing sophisticated non-player characters.

Funge's background includes both academic AI research and commercial development of game AI technology. This has allowed him to write a refreshingly practical book for the game AI programmer which will also expand the reader's knowledge of AI. He presents advanced AI research in a way that is meaningful to the working game AI programmer. Non-player characters (NPCs) are the focus of this book, although it touches upon techniques applicable to other kinds of AI. Funge begins with a simple NPC architecture, then goes on to consider how they act in their world, perceive and react to their surroundings, remember their past experiences, plan their actions, and learn from the past to improve their future behavior. In addition, Funge hopes his book will contribute to a "common framework and terminology" to promote better communication between practitioners interested in game AI, leading to better interoperability for their software. (Please note that John Funge is a friend and former coworker of mine. I was pleased to accept John's invitation to review his book.)

The field of Artificial Intelligence has been actively studied since the 1950s. In that half century many useful techniques have been developed and applied to a broad range of scholarly and commercial applications -- most quite serious and sometimes a bit dry. In contrast, today the most economically significant application of AI is in computer games. This commercial application motivates today's students to study AI and drives a good deal of academic AI research. Modern games have incredible graphics and their animation technology is becoming very sophisticated. As graphic animation increasingly becomes a solved problem, more and more attention is being paid to game AI. It seems likely that the next few years will see a tremendous investment in game AI technology leading to significant improvements in the state of the art.

As I read Funge's book I was struck by how oriented it was to the interests of AI programmers working on commercial games. Certainly the discussion focused on the practical rather than the theoretical. (There are many asides, footnotes and citations of the academic literature for those with an interest in pursuing the theory.) More concretely, the text is peppered with fragments of C++ code. A working programmer who visits the academic literature is often faced with the daunting task of converting prose, equations or breezy pseudo-code into something suitable for compilation. If a reader of this book does not follow a bit of the discussion, a glance at the nearby C++ code listing will usually set things straight. I have it on good authority that functioning source code for the examples in the book will appear on the www.ai4games.org website "soon."

The book is divided into seven chapters (Introduction, Acting, Perceiving, Reacting, Remembering, Searching, and Learning) plus a Preface, two appendices, an extensive Bibliography and an Index. The chapter on "Acting" introduces the simple game of tag used as an example throughout the book. It further sets the stage by describing the principal components of the game engine and the AI system. The third chapter, "Perceiving," introduces percepts -- the formal framework used to encapsulate and manipulate an NPC's awareness of its world. In many games a key concept is filtering out information which is available in the game state but should not be "known" by the NPC. Chapter 4 describes reactive controllers. Funge uses a very strict definition of reactive -- informally, it means a non-deliberative controller, but in this book the term is used to mean strictly stateless. This distinction has a practical consequence since a stateless controller can be shared among multiple NPCs. (Yet I wondered how important this was in practice. That point was not explored in any depth, and a "slightly stateful" reactive controller can be very useful.) The chapter on "Remembering" introduces memory percepts, mental state, beliefs and communication between NPCs. The sixth chapter covers "Searching" -- through trees of possible future actions, often referred to as planning. The extensive treatment of search includes both examining the host of options that are available to an NPC at each juncture, as well as reasoning about the interaction of one NPC's behavior with another, known as adversarial search. The final chapter covers "Learning." It looks at both offline learning (which happens before the game is shipped) and online learning (happening during gameplay). The first is merely an aid to game development, the latter promises NPC that can adjust to the player's skill and style of play. Online learning present many more technical challenges. In fact, my first impression on reading this section that it was less practical than the rest of the book because of the difficulties of online learning. However, from the description of this GDC 2005 lecture, it appears that Funge and his colleagues have made significant progress in this area.

I recommend Artificial Intelligence for Computer Games: An Introduction to commercial game AI programmers, as well as other game programmers and designers who wish to learn more about this area. Because of its sound academic underpinning, the book will also be of interest to students of artificial intelligence and to professionals in related areas such as agent-based simulation and training.


Reynolds is a Senior Research Scientist in the R&D group of Sony Computer Entertainment America. His interests center on modeling behavior of autonomous characters, particularly steering behaviors for agile life-like motion through their worlds. See his page on Game Research and Technology. You can purchase Artificial Intelligence for Computer Games: An Introduction from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
This discussion has been archived. No new comments can be posted.

Artificial Intelligence for Computer Games

Comments Filter:
  • starcraft yay (Score:3, Informative)

    by demon411 ( 827680 ) on Wednesday January 26, 2005 @03:39PM (#11483750)
    i had friend that worked for blizzard and he sed the ai on starcraft was way too good for human to beat so they had to gimp it make it possible to win. i need an ai to do my laundry tho.
  • Re:starcraft yay (Score:5, Informative)

    by Vaevictis666 ( 680137 ) on Wednesday January 26, 2005 @03:49PM (#11483867)
    I call bull. In the later patches, blizzard introduced an "Insane" AI level, which was the same as the hardest setting except that it started with 500 gas and 500 minerals, and received batches of cash on a timer (you can tell by making a custom map that has a "Cash" leaderboard set up, and play it against insane AI)

    If they already had an AI that was "way too good for [a] human to beat" then why didn't they just put that in instead? All their AI was script-based so it shouldn't have been that hard...

  • Re:Reynolds (Score:1, Informative)

    by Anonymous Coward on Wednesday January 26, 2005 @04:00PM (#11484011)
    Seriously though, there seems to be no mention of neural networks in this book


    That's because no one uses them for games anymore. Also, that would require at least an entire book to do it any justice. Why aren't you complaining about the lack of Genetic Algorithms as well?


    A good explanation of basic A.I. for real games is missing, hopefully this will fill it.

  • by MarkWatson ( 189759 ) on Wednesday January 26, 2005 @04:28PM (#11484326) Homepage
    The author of the review, Craig Reynolds, is also very well known in the field of game AI. His Game AI web page [red3d.com] is a fun resource.

    BTW, definitely the most fun job I ever had was doing game/VR AI for Nintendo and Disney while at Angel Studios. I *really* recommend trying to work in the field for a while because it pulls together so many things: creativity, working with non-computer science team members, lots of interesting CS problems to be solved, etc.

    -Mark

  • by ashot ( 599110 ) <ashot@noSpAm.molsoft.com> on Wednesday January 26, 2005 @08:29PM (#11486831) Homepage
    this is not Informative in the least, its absurd. Neural Network methods have outperformed explicit techniques in many areas for a long time, same goes for GAs. In fact, a combination of the two methds has also been very effective. See NEAT [utexas.edu] for an example.
  • Re: No Disclaimer? (Score:2, Informative)

    by timothy ( 36799 ) * on Thursday January 27, 2005 @03:02PM (#11495027) Journal
    Hi, there!

    Actually, he does mention this fact, in the second paragraph (first paragraph under the cut on the page), when he writes "(Please note that John Funge is a friend and former coworker of mine. I was pleased to accept John's invitation to review his book.)"

    Cheers,

    Tim

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...