Writing Game AI code is an interesting endeavor. It really has very little to do with what the traditional “AI Community” does. It’s actually extremely easy to create an AI that can wipe the floor with even the best player. After all, your AI can have perfect knowledge about the game and instant reflexes. It’s a much more difficult problem to create AI’s that are fun to play against and that don’t cheat. If you are trying to make them actually look intelligent and fun it’s an even tougher problem. In fact most AI in games these days is a simple state machine (http://en.wikipedia.org/wiki/State_machine) with some feedback mechanisms to shift between states. This is a generalization, of course, as there have been several games based around the idea of real AI as in the game “Creatures”. Scripted AI sequences are also extremely popular to try to give the player a sense that the game avatars are intelligent. In addition these scripted sequences allow the characters to do things that either wouldn’t possible in an AI framework or that they need to do to make an big “game moment” happen on cue.
I actually don’t remember the last time I spent working on AI characters. It’s probably been at least 10 years. Our game has some interesting AI elements to it that I’m currently prototyping and it’s been something really fun to play with after so long. In the past actually getting the characters to navigate the world was one of the harder problems. Nowadays this is mostly a solved problem using either node networks or a navigation mesh type setup. There are still several complications like more complex types of navigation (opening doors, using elevators, jumping chasms etc). Overall though we can spend most of our time deciding how we want the AI to react to other agents like the player and other AI’s. In addition many modern AI’s allow some amount of common planning by a higher level AI planning brain. For instance, all of the AI’s on one team can coordinate as to which targets to attack and how they approach these targets by following orders of the higher level AI but still having enough intelligence to carry out the orders given.


I’ve always liked the idea of controlling the memory of agents in a realistic manner to greatly decrease their ‘godlike’ knowledge of the virtual world. When agents had to start searching for the player instead of just always knowing right where the player is really seemed to be the start of expanding upon this topic.
Then they moved towards creating node paths that followed the player’s path until the last spot they ‘saw’ the player, but that would cause that tell tale ‘stupidity’ where you can easily bait agents. Which is remedied somewhat with a special state in the agent’s state machine somewhat like a “cautious investigation” state. Many of the advancements seem iterative over entire games, where one popular game has an often exploited AI flaw, so the next popular game makes sure to improve on that specific point. It is a shame the nontechnical players never get an appreciation for all the iterations the AI developer goes through to get the AI “just dumb enough”.
Seems to me that the great AI (fun, realistic and challenging) is still the holy grail of gaming, depending on the genre.
With the rise in available CPU budget in the last years one would think that AI would grow at the same pace accordingly. As a gamer, that’s not been my experience. While graphics help first impressions and immersion factor, AI IS the gameplay and it’s deserving of so much more.
Hopefully soon as a CPU cores can be consistently dedicated to AI thread(s), AI programmers will find ways to really build on the new possibilities. It still has to be fast chunks of code to work in concert with the rendering thread, which is likely a limitation.
Finally, it’s my opinion that it’s not often the great/smart AI that is truly appreciated but it’s actually the flawed/weak points of AI that indelibly etches a poor experience to the end user. Being able to forget that it’s AI, and not recognize it as such, is probably the best one can achieve. To me it’s a huge part of a game and worthy of extra effort.