I had a great time last night hosting a presentation on Artificial Intelligence for the Norfolk Indie Game Developers group. Expect to see a series of blog posts on each of the topics appearing here in the near future.
In the meantime, a few people asked me for recommendations of good books on the subject, so here goes:
"Programming Game AI By Example" (Buckland)
This is an easy-to-read, often humorous, introductory-level AI book that covers much of the same material I did last night, including Steering Behaviours, Finite State Machines, Pathfinding, and Scripting (in fact, I based some of the logic for my 5-a-side football simulator from the "Simple Soccer" example in this book). However, it does not cover Neural Networks or Genetic Algorithms. My biggest criticism is that it’s quite old now (published in 2004) so doesn’t exactly cover any cutting-edge stuff, but what’s there is still very relevant.
Code samples are provided in C++ and can be downloaded from the publisher’s website: http://samples.jbpub.com/9781556220784/Buckland_SourceCode.zip
My Rating: 4.00/5.00
"Artificial Intelligence for Games" (2nd ed. Millington and Funge)
At nearly 900 pages long, this book provides a comprehensive coverage of the full range of Game AI – certainly everything I talked about and more – and the second edition (published 2009) was updated to include more recent AI techniques. The authors have lots of practical experience and not only discuss theory but also share their experience and advice on issues such as performance optimisation in real-life production environments. It’s fairly thorough and generally well-written, although I find the writing style drier and more technical than Buckland. It’s certainly a good reference to have by your desk, but not necessarily a book that you’d sit down and read casually by the beach.
Code samples are in C++ on GitHub: https://github.com/idmillington/aicore
My Rating: 4.00/5.00
"AI Techniques for Game Programming" (Buckland)
Buckland’s first book (from 2002) has, unfortunately, aged quite badly. This is evident in the first part of the book, which describes how to set up a windows development environment in “the latest” Windows XP and drawing graphics using Win32 GDI – you won’t find any DirectX or OpenGL here.
It does have good explanations and examples of genetic algorithms and neural networks, which are missing from his later “Programming Game AI by Example” book, but it doesn’t include any other topics, and I wouldn’t say that these two topics alone justify the price tag.
My Rating: 2.00/5.00
“AI for Game Developers” (Bourg)
This is a disappointing book. While the table of contents is encouraging – apparently covering most of the core areas of game AI – the writing style is often clumsy and unclear, and explanations often skim over important details in a manner that makes you wonder whether the authors themselves really understood what they were trying to explain. Add to that fact that the code samples are poorly written (unused global variables, anyone?), and sometimes simply don’t work, and the whole thing is now outdated, so I really can’t recommend this.
My Rating: 1.00/5.00
“AI Game Programming Wisdom” series (Various)
This is a four-part collection of short journal-style articles that generally represent state-of-the-art in AI programming written by industry professionals, and edited by Steve Rabin (Principal Software Engineer, Nintendo of America Inc. ). The problem is that, as they are really only marketed at A.I. professionals, they are expensive and only produced in limited numbers so it’s hard to get hold of a copy.
If you go to http://www.aiwisdom.com/index.html you can find an index of each of the articles and the collection it appeared in (some also appear in the related “Game Programming Gems” collection). If you’re lucky, you’ll find that the authors have also published that some article for free somewhere else, such as if they presented it at a conference.
My Rating: If you’ve got the $$$ and you want to learn the latest innovations in AI, 5.00/5.00. Otherwise, don’t bother.