Hacker News new | past | comments | ask | show | jobs | submit login
The Game AI Programmer's Bookshelf (media.mit.edu)
171 points by danso on Jan 4, 2015 | hide | past | favorite | 19 comments



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.


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...


(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...) 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.


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.


Here's a udacity course: https://www.udacity.com/course/cs271

It looks like it's the same material as the original AI class from 2012 (which started the online course hype). I took that course back then, and found it to give a good introduction.


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?


I'll put my vote in for Buckland's Programming Game AI by Example. It is very approachable, code-heavy, and it's also got some great examples to visualize the techniques discussed. Very easy to translate what you learn reading this book into any projects of your own, particularly if you take the time to actually code the examples and work through the exercises at the end of the chapter.

I've got a copy of Ian Millington's AI book that I need to finish reading. So far it seems to be very good. It's not as example-driven, but it seems to have good breadth on real-world game AI topics.

The Game Programming Gems series is worth reading through, if, as others have noted, a little dated in places. The general game design and AI sections hold up better than some of the high-performance math and graphics tweaks included from that era. I believe a good portion of them are available for free online, although I may be confusing one of the other Gems series.


I authored one of the 55 chapters/articles in "AI Game Programming Wisdom 4." Just like the "Game Programming Gems" series, each book 1-4 is a separate collection of articles by various authors on various topics in game AI. The books are much more practical than textbooks, contain a lot of great video game-specific material (including how the AI for some popular games was done), and the CDs include (2008-era) source code.

I'd recommend them -- most articles are still very relevant. Although they do vary in quality, there are some great reads.

EDIT: Steve Rabin (the editor) has a very high rated new book out called "Game AI Pro: Collected Wisdom of Game AI Professionals" -- http://www.amazon.com/Game-AI-Pro-Collected-Professionals/dp...


"AI : A Modern Approach" is considered the high-level standard text on the subject. It's coverage is fairly broad, but it prioritizes the idea of an AI "agent"; an autonomous "thing" attempting to understand its environment and make the best choices within the context of it's given priorities.

The "AI Game Programming Wisdom" books I own the first 2 volumes of. They're the same format as the "Game Programming Gems" (or "Graphics Gems" before that). That is, a series of articles written by many different authors on a smorgasbord of topics. Pros : Wide and sometimes highly-specific coverage and many code samples. Cons : Can be heavily cherry-picked in topic choices. May not be pertinent to anything you need specifically. Refer to the TOC on each respective volume to see if any of the articles pertain to what you need.

Also, this article from Game Developer Magazine offers a cursory introduction to the approach taken by the Norvig book; Agents : https://www.scribd.com/doc/251684769/Adding-Planning-Capabil...


"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.


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.


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.


It was the reference book for game AI programmers when there were no game AI books. :) I still think it's a great baseline for any AI programmer.


Speaking for the ones I have on my shelves:

---

The AI Game Programming Wisdom and Game Programming Gems are not revision of the same things. They're just part of the same series; the format of the books is more akin to a collection of articles (all by different authors from the industry), grouped by topic. For example in volume 1, you have:

- General Wisdom (4 articles)

- Useful Techniques and Specialized Systems (8)

- Pathfinding with A* (5)

- Pathfinding and Movement (6)

- Tactical Issues and Intelligent Group Movement (6)

- General Purpose Architectures (6)

- Decision Making Architectures (5)

- FPS, RTS, and RPG AI (6)

- Racing and Sports AI (8)

- Scripting (7)

- Learning (10)

(the groupings are different for each books)

I quite recommend these books - the quality of the articles can be uneven, but you almost always learn something. The main critics against them are that 1) the material can be dated (these books are from the early 2000s) and 2) some of the content can be found online for free. They're still good resources to have on your shelves IMO.

In the same vein, I recommend the GPU Gems and Graphics Gems for realtime graphics programming.

---

"Programming Game AI by Example" by Buckland is a great, hands on, practical approach to game programming. It is not academic or theoretical by any means, but that's one of its strong traits - it's code driven. It was my first AI read while in high school, and I really recommend it. The perfect audience for that would be a motivated teenager or undergrad who knows enough programming to make small games, but hasn't taken full AI courses yet.

---

"Artificial Intelligence: A Modern Approach" by Norvig et al. is kind of the CLRS of AI - a thorough, deep introduction to the field that will give you all the tools you need to solve pretty much any problem you can encounter. It can be a bit dry/academic at times, but that's the price you have to pay. It's great to learn from it as part of a focused course while you're still getting familiar with the field, and it's also great to flip to a random chapter every once in a while to revisit the basics when you're a more mature professional.

---

"Designing Sociable Robots" by Breazal is a cool read - it's a collection of 13 fairly independent chapters by the author which mash together HCI, social sciences, robotics, electronics, programming, and each explain how a subcomponent of a full "sociable" robot (in this case her lab's project, Kismet) works (e.g. the vision system, an expressive vocalization system, etc.).

---

"Society of Mind" by Minsky is a very interesting read. It's more high level and philosophical, but it's definitely worth it. It's almost 30 years old though, and I'm not sure how much his work has held up to modern theories - I don't follow that field too closely.

---

"Behavioral Mathematics for Game AI" by Mark is not that code heavy compared to the others (especially the Game AI Wisdom series), although it does have some, and is rather more oriented towards mathematical modeling. It touches on game theory, utility functions, probability distributions, etc. I think it's the most mathy an AI text can be before becoming pretty much pure math, which is great- it's a great stepping stone for the folks who are programmers first and who want to know more of the math theory behind it all (whether just for understanding or to be able to build their own algorithms).


""Society of Mind" by Minsky is a very interesting read. It's more high level and philosophical, but it's definitely worth it. It's almost 30 years old though, and I'm not sure how much his work has held up to modern theories - I don't follow that field too closely."

I am currently reading Society of Mind, and there is defintley still value in the book, there was a recommendation I read somewhere (probably HN) that his newer book The Emotion Machine makes a good follow up to SoM to cover some more recent ideas. That is what I plan to do.


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=... ).


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/) 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.)


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 :-)


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... ): 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.... ). 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/ ). 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/ ). 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. :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: