Artificial intelligence for games is poised before a renaissance. The complexity of the game Ai is a direct function of the complexity of its gaming environment. With newer, more sophisticated games constantly pouring into the market, soon complex Ai would stop being a possibility and become a necessity. In order just to manage the intelligent elements of the game, we would need a detailed understanding of the intricate elements of Ai and would probably have to resort to bottom up programming. In the near future, I expect computer games to become a testing ground for academic Ai. With the rising popularity of computer games and massively multiplayer online games being the trend, this would give us data concerning interface, psychological aspects, robustness of methods used, and valuable training data for learning programs.
I believe there are some clear principles to be kept in mind while designing an Artificially intelligent system for a game, henceforth called the games’ AI (with a capital ‘I’).The focal ones are discussed below.
1)Requirements analysis
2) Division into layers
3)Content mastery
4)Distributing the intelligence
5)An element of randomness
Like any other project, it is advisable that we determine beforehand what we desire as an outcome. There are numerous Artificial intelligence techniques we can choose from for our AI. All of them have different advantages and disadvantages. We should try and choose the appropriate method and the appropriate size for our AI. The significance of size is explained in the ‘distributing the intelligence’ section.
It is highly effective to divide the AI into layers based on function and complexity. For example, consider a first person shooter ‘bot’.The AI for the bot can be divided into three layers. The lowest layer deals with the movement primitives, pathfinding routines and patterns. The middle layer models the bots’ behavior. The highest layer deals with ‘thinking’, the more esoteric tasks like planning etc. Usually each layer uses the components of the layers below it as its primitives.
This is especially true for top-down programming. To build a naval admiral, you have to be a naval admiral.
Even if we are following a top-down approach, we can reap the benefits of bottom-up programming by making several top-down units and combining them in a bottom up fashion. This is more important than the cursory glance would reveal it to be, as is illustrated in the diagrams below.

To achieve higher amounts of behavioral complexity (synonymous with intelligence here) the size of the AI has to be increased exponentially. We can achieve a similar result by making multiple simpler units and setting up some sort of interaction between them. Here’s an intuitive example. Two people who work well with each other can achieve more together than the sum of their works when both work alone. In the gaming context, it is better to make five separate AI generals (for a strategy game, say) and let them communicate and work towards a common goal together than to have a central AI controlling the entire army. Let the laws of emergence work for you, not against you.
The reasons for this claim may be explored in Kolmogorov complexity.
To prevent high amounts of determinism, it is imperative that there is some random element built into the structure of the AI. It is better to have it near the core of the design, so that it propagates through the Artificially intelligent system.