(Really, I just know that someday I’m going to run out of ways to [mis]use AI in my titles, but let’s see how long I can keep it up.)
I’ve been asked a few times now at talks I’ve given what AI books have been most helpful to me as a programmer, and I find I continue to give the same answers now as I did a few years ago: Millington and Funge’s Artificial Intelligence for Games (I happen to be using the 2nd edition), and Buckland’s Programming Game AI by Example. Millington is more in-depth, covering—well, kinda everything, from general issues such as processor speeds and memory, to movement behaviours and pathfinding, to decision-making and tacitics, to learning algorithms … and more. Of particular interest to me were the chapters on decision and behaviour trees (which formed a part of my thesis) and other types of decision-making. Each chapter ends with a set of exercises suitable for serious review, but as I was already engaged in my own more immediate needs (and wasn’t using this book for a course), I didn’t work any of these, so I can’t tell you much about them. (You can have the fun of working them yourself!)
I will say the in-chapter examples were good, and the text was very readable, although a background in maths and AI is helpful.
Speaking of readable, Buckland is extremely so, and although a little old now (imagine 2005 being old! But there it is …), I still find this book useful. Less experience with AI and maths is necessary, although programming experience is a must (of course, if you’re dealing with game AI, you probably have lots of this already). The examples are, as the title would imply, thorough and good. Again, the book covers all the usual bases, from pathfinding to tactics to behaviour (and fuzzy logic! Oh, how I love ya!). I kind of wish there were an updated version, but that’s mostly because I’d like more stuff, not because this one’s lacking anything.
For Christmas I received Game AI Pro (Steve Rabin, ed), which looks very promising and is a collection of articles written by AI devs, covering (you guessed it) pathfinding, decision-making, and so forth. I’m particularly looking forward to reading the Architecture section, as that’s something I tend to lose a bit as I work, rework, and rerework the same code and end up with well-commented, but difficult to follow classes and methods.
So there you have it: the two (possibly three) AI books I consult most often. If you’re looking for web resources, the main one to go to is Alex Champandard’s AIGameDev (aigamedev.com). Lots and lots of good stuff there to take a look at!
Until next time! (I’ve given up trying to predict what ‘next time’ will bring … I still haven’t delved into the Skynet dilemma …)