Advances in 3D visualization and physics-based simulation technology make it possible for game developers to create compelling, visually immersive gaming environments that were only dreamed of years ago. But today's game players have grown in sophistication along with the games they play. It's no longer enough to wow your players with dazzling graphics; the next step in creating even more immersive games is improved artificial intelligence, or AI.Fortunately, advanced AI game techniques are within the grasp of every game developer--not just those who dedicate their careers to AI. If you're new to game programming or if you're an experienced game programmer who needs to get up to speed quickly on AI techniques, you'll find AI for Game Developers to be the perfect starting point for understanding and applying AI techniques to your games.Written for the novice AI programmer, AI for Game Developers introduces you to techniques such as finite state machines, fuzzy logic, neural networks, and many others, in straightforward, easy-to-understand language, supported with code samples throughout the entire book (written in C/C++). From basic techniques such as chasing and evading, pattern movement, and flocking to genetic algorithms, the book presents a mix of deterministic (traditional) and non-deterministic (newer) AI techniques aimed squarely at beginners AI developers. Other topics covered in the book include:
Potential function based movements: a technique that handles chasing, evading swarming, and collision avoidance simultaneously
Basic pathfinding and waypoints, including an entire chapter devoted to the A* pathfinding algorithm
Rule-based AI: learn about variants other than fuzzy logic and finite state machines
Unlike other books on the subject, AI for Game Developers doesn't attempt to cover every aspect of game AI, but to provide you with usable, advanced techniques you can apply to your games right now. If you've wanted to use AI to extend the play-life of your games, make them more challenging, and most importantly, make them more fun, then this book is for you.
Chapter 1 Introduction to Game AI
Deterministic Versus Nondeterministic AI
Established Game AI
The Future of Game AI
Chapter 2 Chasing and Evading
Basic Chasing and Evading
Line-of-Sight Chasing in Tiled Environments
Line-of-Sight Chasing in Continuous Environments
Chapter 3 Pattern Movement
Pattern Movement in Tiled Environments
Pattern Movement in Physically Simulated Environments
Chapter 4 Flocking
Follow the Leader
Chapter 5 Potential Function-Based Movement
How Can You Use Potential Functions for Game AI?
Chapter 6 Basic Pathfinding and Waypoints
Chapter 7 A∗ Pathfinding
Defining the Search Area
Starting the Search
Finding a Dead End
Chapter 8 Scripted AI and Scripting Engines
Scripting Opponent Attributes
Basic Script Parsing
Scripting Opponent Behavior
Scripting Verbal Interaction
Chapter 9 Finite State Machines
Basic State Machine Model
Finite State Machine Design
Chapter 10 Fuzzy Logic
How Can You Use Fuzzy Logic in Games?
Fuzzy Logic Basics
Threat Assessment Example
Chapter 11 Rule-Based AI
Rule-Based System Basics
Fighting Game Strike Prediction
Chapter 12 Basic Probability
How Do You Use Probability in Games?
What is Probability?
Chapter 13 Decisions Under Uncertainty—Bayesian Techniques
As a naval architect and marine engineer, David M. Bourg performs computer simulations and develops analysis tools that measure such things as hovercraft performance and the effect of waves on the motion of ships and boats. He teaches at the college level in the areas of ship design, construction and analysis. On occasion, David also lectures at high schools on topics such as naval architecture and software development. In addition to David's practical engineering background, he's professionally involved in computer game development and consulting through his company, Crescent Vision Interactive. Current projects include a massively multiplayer online role-playing game, several Java-based multiplayer games, and the porting of Hasbro's "Breakout" to the Macintosh.
Glenn Seemann is a veteran game programmer with over a dozen games to his credit, for Mac and Windows systems. He's a co-founder with David Bourg of Crescent Vision Interactive, a game development company specializing in cross-platform games.
Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects. The animal on the cover of AI for Game Developers is a Ring-tailed lemur. Ringtailed lemurs (Lemur catta) are found solely in Madagascar, an island off of southeast Africa.Ring-tailed lemurs have a distinctive bushy tail with alternating bands of black and white rings. Their tails can reach lengths of up to 25 inches. They also have a black, pointed muzzle, which is typical among the various species of lemur.These lemurs prefer more open areas, such as rocky plains and desert areas, and typically travel on the ground, although they will sometimes walk on large limbs in trees. This differentiates them from other lemur species, which prefer forested areas and travel almost exclusively in trees.Similar to cats, Ring-tailed lemurs have a reflective layer in the back of their eyes. This allows them to have excellent night vision. Their tails are highly scented, and are used to warn other lemurs of approaching danger. The tails are also an integral part of the mating process. The males will use their scent to try and attract the females, and vicious "stink fights" can often erupt within the group.Ring-tailed lemurs live in groups of between five and thirty members. They have distinct hierarchies that are enforced by frequent, aggressive confrontations between members. Females, who stay in the group for their entire lives, dominate the group. Males will often change groups at least once during their lifetime.Living in arid habitats, Ring-tailed lemurs quench their thirst with juicy fruits. They will also eat leaves, flowers, insects, and tree gum. Like most lemurs, Ring-tails have only one baby, although twins or even triplets are common when food is plentiful. Newborns are quite helpless and are carried around by the mother in her mouth until they can hold on to her fur by themselves. They will then ride around on the mother's back. They first begin to climb after about three weeks, and are usually independent after six months. They can live for up to 27 years in the wild. Darren Kelly was the production editor, Audrey Doyle was the copyeditor, and Kathryn Geddie was the proofreader for AI for Game Developers. Claire Cloutier provided quality control. TechBooks, Inc. provided production services and Ronald Prottsman wrote the index.Ellie Volckhausen designed the cover of this book, based on a series design by Edie Freedman. The cover image is a 19th-century engraving from Royal Natural History. Emma Colby produced the cover layout with QuarkXPress 4.1 using Adobe's ITC Garamond font.David Futato designed the interior layout. Techbooks, Inc. implemented the design. This book was converted by Andrew Savikas to FrameMaker 5.5.6 with a format conversion tool created by Erik Ray, Jason McIntosh, Neil Walls, and Mike Sierra that uses Perl and XML technologies. The text font is Linotype Birka; the heading font is Adobe Myriad Condensed; and the code font is LucasFont's TheSans Mono Condensed. The illustrations that appear in the book were produced by Robert Romano and Jessamyn Read using Macromedia FreeHand 9 and Adobe Photoshop 6. The tip and warning icons were drawn by Christopher Bing. This colophon was written by Darren Kelly.
I purchased this book for a small undergraduate course in Artificial Intelligence, which proved a great help back then, albeit mostly for its code. Back then I successfully applied Fuzzy Logic and Steering Behaviours. Then I placed it on my bookshelf as yet another Academic victory.
I decided to specialise in AI at a graduate level, and picked up the book again because I am studying Artificial Neural Networks and Evolutionary Algorithms. It is described as an introduction to AI, but I must say that it not just the case; the formula is identical to that of the scientific material I have researched, just explained with an programmers angle. (And I must admit, I understand formula better through text than five pages of mathematical proofs)
In the end, a great book. The techniques are more modern than what you think, which is a very great quality; not only is it an easy entry into a confusing field, but the knowledge is worthwhile. A good supplement to the theory at a graduate, helping with the implementation which often is as hard as understanding the techniques.
I do however find the Path Finding and Scripting out of place; Path Finding is much better understood and applied in an algorithms class covering Graph Theory, and scripting engines are an architecture question. If the goal is to create a language by yourself as in the book, Grammar theory would be better, which is a big field in itself.
Thus, I give it four stars.
Bottom Line Yes, I would recommend this to a friend
Sometimes the oldies are the goodies. As a Flash game programmer, I found myself wanting with respect to challenging publications that would effectively enhance my abilities in day-to-day life. It is so common these days to try and move on to the next best thing. And, the speed at which our industry moves doesn't typically help that fact. We often fail to realize that just because our languages change overnight, it doesn't mean that the theory behind them does. I found that the concepts put to this book are just as applicable today as they were in 2004. In fact, as someone that studies AI collegiately, many of the concepts from 20 years ago are very applicable to today. If you are a game programmer that is serious about the craft, this book is worth checking out!
Very helpful to me, providing essentials in a goed manner
By Oskar Neugebauer
Comments about oreilly AI for Game Developers:
I knew nearly nothing about AI for games.
So for me there were some main reasons to buy and read the book:
overview over AI related to games,
discussion of advantages and disadvantages of special approaches,
discussion of ongoing tendencies in AI with regard to game development.
One item of critic, and this in general, not only related to this book: providing download of code examples seems ok at first sight.
But the question rises: how stable are the URL's in time? I recently bought a book from another publishing company, but with date of publishing the URL had been changed...
So, I prefer an accomanying cd.
Overall result for me:
The only minor issues for me: no accompanying cd. And, perpaps it makes sense to discuss the advantages/disadvantages of 'traditional programming language versus scripting'.
Regarding the complexity of each item each chapter would be worse a separate book.
In my opinion in each chapter the authors were very able to put the essentials to the point, providing also a discussion of advantages and disadvantages for each approach.
I am very satisfied with contents, and style to present contents. The examples supports the several approaches very well. Contents and examples provide goed starting points for own trials and experiments to me.
The URL related to discussion and errata is valuable for me.
My points of interest were fulfilled to high extend. I've got the impression that I have learned a lot.
The boek provided also goed and valuable ideas for further reading to me.
As result I give rating 5 = definitive!
So, many thanks and compliment to the authors for providing an informative and well readable book; and the publishing company for publishing.
The book is overrall ok, but for a book that intends to help just get things done I expected more code examples. For software with graphical interface
I find it nice to be able to actually run the code, change a few things, see how things go, but that's definitely not what I got from the book.
The examples are not well organized, there's some weird mac stuff. And everything seems to be done for Visual Studio. I don't think the book should try to force you to buy some expensive propertary software for running the examples. They could just as easily been done for use with free technology. That way everyone would be able to compile it, people using mac, windows, linux, netbsd, and so on.
So I rate this book avarage, it might be ok for getting introduced to gaming AI, but I don't think it's worth having. I just got from the library and read it, it's not big. There should be better books for reference, and even intruduction to gaming AI, with better code examples.
Perhaps I have been spoiled but good books come with an electronic version of the code in the book. This book to a great extent does not! There are example programs but some are written for Windows and some, I presume, are for the Mac. However, many of the code snippets found in the book are either non existent in electronic form or they are buried with no easy way to find them.
This would be semi-acceptable if the code was well explain but, too often, the obvious parts are explained and the more obtuse parts are left for the reader to guess. There are two common ways to grasp code. One is to read a detailed edplanation; the other is to run the code. Since the explanations are poor and it is not an easy matter to run the code, this book fails a key test.