History Of Game AI
Part of the stated mission the AI Game Programmers Guild is to document the history of game AI. This is, by its very nature, not only an ongoing task, but a large and daunting one as well. We hope that this project will be informative and educational not only to game AI programmers, but to the game community at-large.
There are two primary types of pages that you will find in this site. Each of them is based off of a particular template wherever possible in order to provide a sense of homogeneity.
Each game page will cover a single game or, in certain circumstances, a collection of games. Each page will document the types of AI used, tidbits of information that made them special, descriptions and commentary from the designers and programmers, and source code (if available).
Game pages will contain the following elements:
- Description of the AI Behavior - What does the game AI typical show the player in the way of behaviors and actions?
- Development History - What led up to the development of this AI? Was it based on any existing work? What were the goals?
- Architectures - What AI architectures were used in the making of this game?
- Post-Mortem - A critical analysis of the AI production. Sub-sections are:
- What worked?
- What didn't work?
- Lessons learned?
- Reception by the Public - What did the players think of the AI?
- External Links
To see what games have been covered so far, please visit the List of Game History Pages.
In order to help describe and categorize the game AI discussed here, we use some general terms. None of these is meant to be definitive but rather used as a guide for understanding our terminology and methodology.
We define the eras of game AI in order to provide a very coarse categorization to the games listed in this site. These are largely chronological periods where a particular approach to game AI was used regardless of the underlying architecture used to achieve the approach.
We define the AI architectures that are generally used in games. These aren't necessarily as specific as algorithms. Instead, they tend to be a higher-level framework.
General algorithms such as finite state machines, A*, behavior trees, etc. are beyond the scope of this project. They are also usually well-documented in other areas of the internet including Wikipedia. Algorithms will only be discussed in this project as they relate to specific titles -- particularly if one title had a unique or groundbreaking manner in which an algorithm was used that set it apart from the norm.