
The Game AI Programmer's Bookshelf - danso
http://alumni.media.mit.edu/~jorkin/aibooks.html
======
systemtrigger
Every href on this page is an Amazon affiliate link. Even public domain works
such as Society of Mind by Minsky are directed to a for profit version.
Observing this does not invalidate the judgement of the MIT student who
published the list, but the profit motive should be disclosed in my opinion.

------
Joona
A few days ago I read an article about Overmind (Starcraft: BW AI), and it got
me interested in how AI is built, but I can't learn from books. Are there any
blogs or such that teach this kind of stuff?

[http://arstechnica.com/gaming/2011/01/skynet-meets-the-
swarm...](http://arstechnica.com/gaming/2011/01/skynet-meets-the-swarm-how-
the-berkeley-overmind-won-the-2010-starcraft-ai-competition/)

~~~
dlwh
(I'm one of the authors of Overmind.)

First, it's important to know that AI is a very broad term. Roughly, there's
"modern" AI (machine learning and statistical modeling) and "classical" AI
(mostly logic and search). Game AI (as I understand it) falls more into the
"classical" AI camp, and classes these days are focusing more and more on
modern non-game techniques.

kaybe's link is a good starter class for modern AI. Norvig quite literally
(co)wrote the text book on AI, and Sebastian Thrun. The PI on Overmind (Dan
Klein) co-taught a class on edX
([https://courses.edx.org/courses/BerkeleyX/CS188.1x/2012_Fall...](https://courses.edx.org/courses/BerkeleyX/CS188.1x/2012_Fall/info))
that you might also want to check out. They're all based on the same
underlying book, just different focuses.

Overmind itself is a collection of some reasonably sophisticated ML/modern AI,
classical AI (which is more common in games), and a lot of horrible hacks.
Really, tons of them.

If you want, I can try to dig up the lecture slides for the "advanced" AI
class we taught once that specifically focused on the kinds of techniques one
would want to write StarCraft bot AIs.

~~~
Joona
Thank you very much! I'm mainly interested in Game AI, though I would not be
surprised to find "modern" AI used in games at some point, either.

If it's not too much trouble, the slides sound extremely interesting.

------
alimoeeny
If you have personal experience, read, any of the books, I (and I imagine
other HNers) appreciate your comments on the books.

Specifically are the "AI Game Programming Wisdom" books, the new revisions of
the same thing? or they complement each other?

~~~
maaaats
"Artificial Intelligence: A Modern Approach" by Russel&Norvig is one of the
most used course books in AI. It covers basics of formal logic, search, making
decisions, handling uncertainty etc. All at an introduction level, though, so
for someone with many years of programming experience many of these things may
be known already. As my adviser says: Once AI discovers something interesting,
it becomes labeled something else or become a part of "standard computer
science". I can recommended the book for an overview of the field and
knowledge of the basic techniques, but not as something to read when game AI
is the goal.

~~~
douche
EDIT: I just looked through the table of contents again, and it does actually
have useful topics in it.

I was so scarred by my godawful, incredibly academic, college AI course that I
only remembered the bullshit that we actually covered in that course.
Literally nothing in the course was worth wasting my time on, and it looks
like we went purposefully around anything that might have been relevant or
interesting.

It's baffling to me that two of the worst three computer science courses I
took were AI and Algorithms & Data Structures. Both had mindbogglingly
abstract, mathematically-oriented profs, who spent every lecture transcribing
proofs from the textbook onto the blackboard. How do you teach a course on
these subjects and have no assignments that involve writing code? This is at
the place where BASIC was created, for chrissakes.

~~~
jeffreyrogers
I had a very similar experience as you wrt AI and algorithms courses. Oddly
enough, when I then (later) started exploring these more on my own I found
them much more interesting.

------
hoggle
Thanks for sharing - perfect timing as I just had the best gaming weekend for
a very long time and to a big part that's due to the fabulous AI in Alien:
Isolation (it won the aigamedev community award for best NPC 2014
[http://aigamedev.com/open/editorial/2014-awards/?utm_source=...](http://aigamedev.com/open/editorial/2014-awards/?utm_source=twitter&utm_medium=social&utm_campaign=promote#characters)
).

------
Animats
There's nothing on that list on locomotion or physical coordination. We have
enough compute power now that game characters can have robot-type control
algorithms, so the motion really looks right. Toribash
([http://www.toribash.com/](http://www.toribash.com/)) does this, but that's
all it does; it's more like a development environment for martial arts moves.

(Of course, if you have physically-based martial arts in a game, all the
things go wrong that go wrong in a real dojo. Some people will like that;
they're the ones who buy Formula I racing games where you get to tune the
car.)

------
marak830
Excellent timing for me. I was needing resources for this soon. Thanks, as
alimoeeny said, any one with experience with these books would be appreciated
:-)

------
lenocinor
Hi there thread. I teach game AI and have spent the last couple of years
researching it heavily. Here is my infodump.

The most important resources for game AI, in my opinion, are:

\-----

1\. The AI Game Programming Wisdom series, which really ought to include Game
AI Pro (it's basically AI Game Programming Wisdom 5). The AI Game Programming
Wisdom books are the best resource on practical game AI out there. It's surely
not perfect, for several reasons:

    
    
      -- Some of the information, especially early on, is a bit dated now, as someone above said
      -- Some of the articles are not great, especially those written by academics (although they are occasionally good)
      -- Some of the articles by actual game programmers are a bit too much of "here's what I did" rather than trying to extract general principles that may be of use to other programmers
      

All that said, I think it's still the best resource on game AI out there. I
thanked Steve Rabin once at GDC for the books, and he replied with something
to the effect of "I do it because otherwise a lot of this information would
never get out there". I think he's absolutely right.

2\. GDC Vault talks. I've watched/listened to almost all the game AI talks at
this point. They're often very good, and again much of this information
doesn't appear anywhere else. It's an expensive proposition, but if you truly
care about game AI, at some point you ought to get access and go through them.
Sometimes you can find the information/videos in them outside of the Vault on
the devs' homepages and elsewhere, but I can tell you from experience that
sometimes you can't.

3\. aigamedev.com . Alex Champandard has been writing about game AI for a long
time -- note that one of the books Jeff Orkin recommends on his page is
written by Champandard and is over 10 years old at this point. More than
anyone else in game AI, I trust Champandard's analysis and articles, because
he's written game AI in big games himself, has given many GDC talks, continues
to explore AI with his collaborators in the AI Sandbox, and has interviewed
hundreds of game devs personally. Yes, some of his good articles and videos
cost money to view, but I really do believe it's worth it.

\-----

I realize that my picks above for game AI may not be popular, because all of
them cost a decent chunk of money to access in full. But I've seen most of the
free stuff out there, and if you want the best resources, written by people
who actually have made AI in real games, a lot of times you're going to have
to pay for it. You can piece together a lot of the knowledge without it, but
it's going to be very time-consuming and you'll still have significant holes
when you've finished.

I noticed above that a lot of folks recommended Peter Norvig's AI textbook,
often considered the standard textbook in AI. I'm going to say something
different and recommend strongly NOT to read it if you're considering making
AI for games. I think most of the important knowledge and techniques you'd
need to know to make good game AI are not covered anywhere in the book and
your time is better spent elsewhere. I don't think it's a bad book in general,
just for game AI specifically.

Other books that aren't quite as good as the first three resources I
mentioned, but still quite useful:

1\. Artificial Intelligence For Games, by Ian Millington and John Funge (on
Orkin's page): I think this is the best general game AI textbook out there, in
large part because it's one of the few that actually attempts to be
comprehensive. There's a lot of good knowledge in it. If you only bought one
book I'd recommend this one, but it still has big holes and blind spots. (If
you're more of "let me see the source code" kind of person and only buy one
book, I'd recommend Programming Game AI By Example by Mat Buckland, also on
Orkin's page.)

2\. Behavioral Mathematics For Game AI, by Dave Mark (on Orkin's page): Dave
Mark is a well-known presence at GDC for running many of the AI panels and
talks. His book is not a comprehensive reference, I feel, but covers utility-
based AI very well. (If you like utility-based AI I'd also recommend anything
written by David "Rez" Graham, currently a lead AI programmer at EA working on
The Sims.)

3\. AI For Game Developers, by David M. Bourg (on Orkin's page): I like the
section on neural networks from this book. It's the best I've seen in the
context of games, even though it's a bit old at this point. (I would recommend
Andrew Ng's online machine learning course as the best general treatment of
neural networks I've seen, but it doesn't talk at all about how you'd apply
them to games.)

4\. AI Techniques For Game Programming, by Mat Buckland (
[http://www.amazon.com/Techniques-Programming-Premier-
Press-D...](http://www.amazon.com/Techniques-Programming-Premier-Press-
Development/dp/193184108X/) ): I like the parts on genetic algorithms from
this book. Like the previous link, it's the best resource I've seen that
specifically relates this topic to games, even though again it's actually a
bit old these days.

As far as webpages go, here are three that I think are important enough to
mention (besides AIGameDev, mentioned earlier):

1\. Amit Patel's Introduction To A* (
[http://www.redblobgames.com/pathfinding/a-star/introduction....](http://www.redblobgames.com/pathfinding/a-star/introduction.html)
). Amit Patel's stuff is great in general, but his A* tutorial in particular
is outstanding. It's the only outside resource on A* I recommend to my
students.

2\. Digesting Duck blog (
[http://digestingduck.blogspot.com/](http://digestingduck.blogspot.com/) ).
Written by Mikko Mononen, a former AI programmer for Crytek, current
programmer at Unity, contributor to the Recast open source navigation mesh
framework, and programmer on lots of other cool stuff. There's a lot of great
info on how to actually work with navigation meshes here, and well worth
reading.

3\. Steering Behaviors For Autonomous Characters (
[http://www.red3d.com/cwr/steer/](http://www.red3d.com/cwr/steer/) ). Written
by the guy who got steering behaviors in games started, Craig Reynolds. Still
the best place to get started with them.

I hope all this can help someone out there like me when I started researching
a couple years ago. :)

