Artificial Intelligence is a broad field on its own. As you start to work on an AI project it gets highly technical and specialized very quickly. That is why there are many AI applications using variety of algorithms to solve problems. Through my experience I found out that problem dictates the algorithm heavily. As such while most of the algorithms fall into one category or another their approaches are often so distinct that learning one type of AI does not necessarily train you in another.
I took an AI course when I was an undergrad in Bilkent University. The course was not games specific. However I was able to see difference of perspectives between real world AI and games AI. When we look at the usage of AI in games, while there are still variety of algorithms out there, the problems they tackle are bounded in the field of games. That is why I find it easier to understanding the relations between different approaches. However we were able to study applications on games, it was very limited though. While the algorithms used in games are the same there are couple of differences in mentality.
Any self-respecting programmer writing an algorithm out there cares about performance. Many AI algorithms are fine tuned to solve their respected problems as fast as possible. This often results in algorithms that can solve one problem in a one very specific way. There is also issue of optimality or exactness in AI. When you are writing an AI to be used in the field, you want it to find the most correct answer. That one answer that makes people say “Damn… I am glad I have an trusty AI to calculate that!”.
In games however performance is god. You don’t aim for it, you worship it. You need to run your AI in an environment where user inputs are reflected to a physics simulation, which outputs its result to a rendering pipeline that delivers 60 frames of high resolution pixels per second. This means cutting out optimal or exact solutions where necessary. We don’t need a completely realistic bird brain, we need thousands of birds flying around that looks satisfying enough to make our game look good. This is a very obvious but important shift of mentality. While real world applications settle for suboptimal solutions where necessary, game AI does that almost all the time.
Another point against exactness is that it is not always gratifying to play against a perfect opponent. Players want challenge for sure. But they want an achievable one. In game design there is a concept called flow. For players to be engaged in a game there needs to be a good balance between their skill level and challenge presented by game. If game is too easy they get bored. If it is too hard they simply give up on playing. So you should not make the perfect AI or an easy one. You need just the right amount. And if possible something that can be adjusted for individual player. Game AI is often intentionally flawed.
I won’t be making any claims here. I am neither experienced enough nor well researched on the topic to accurately make a categorization. So I will be standing on the shoulders of giants. There is a research paper identifying key areas of games AI based on the surveys and workshops made at Dagstuhl Seminar – Artificial and Computational Intelligence in Games 2012[^1]. These key areas are as follows:
AI in commercial games: Distinction between academia and developers is quite simple. Academics want to invent new breakthroughs, developers want things to simply work without complication. While they inspire each other they are often very disjointed at the same time.
[1] A Panorama of Artificial and Computational Intelligence in Games