Last night I attended An Evening Of Game A.I., a talk given by Alastair Aitchison, for the Norfolk Independent Game Developers group. My aim was to learn some new stuff (A.I. has always been a subject that I wish I knew more about) and possibly come away with a few techniques I could use in my own code. I’m glad to say that both goals were achieved.
The night started with a brief introduction from everyone (“Hi, I’m Dom Davis and I’m a WoWoholic, I’ve been clean now for 5 years”) and then launched straight into movement algorithms. A little bit of physics and some fun demos brought each of the strategies to life and, while not useful for any applications I was thinking of, it was very interesting. Similarly the section on pathfinding, while brilliant from a personal interest point of view, lacks much practical application in what I have in mind.
There was discussion on and demos of decision trees and state machines. These are both topics I know something about, although I never got the chance to ask if people used off the shelf FSM’s or not. Despite their simplicity and the profusion of
if blocks it did remind me that decision trees have their place.
Utility curves is where it started getting really interesting. It’s a technique I’d never really explored before and its simplicity appealed to me. As I tweeted at the time, I’m sure I’ll get lots of utility out of utility curves.
From there it got fascinating with a quick discussion of neural nets, something I think I can make use of. I’m not sure I’ve ever been involved in the training of a neural net before, but now I can safely say that I have. I can see me and Google spending a lot of time on this subject.
Sadly I had to leave half way through the discussion on genetic algorithms. This is something I’ve done some reading about before and I’m absolutely amazed by them in a “I have absolutely no idea how to create, code or apply them” type way. I have a few ideas which may or may not be practical, but could produce some very interesting or amusing results. The group were left seeing if a little lander would evolve to land on a landing pad. As I was leaving they were getting close, so who knows.
The demos and videos of bloopers from big budget games made for a great talk and Alastair had a way of presenting some quite complex material in a fun and accessible way. I just wish I could have stayed later to pin him down and go into excruciating detail on some of the topics. Not doubt I’ll be revisiting some of these subjects in more depth in later posts as I explore them further.