Recently, I have been developing the Enemy AI. It is a rule based system with a non-traditional structure. It makes decisions by running the fact-base through the rule-base. This means that rules will trigger behaviour when the facts match the rule conditions. Very intelligent behaviour can be developed using this approach because it allows us to take into account every possible combination of facts and trigger the relevant response.
Rules can be easily constructed because each rule can use any number of facts between 1 and the entire fact-base, so we’re free to build complex behaviour in a very organic way. This system also allows multiple rules to carry the same fact set.
Also, some facts carry an interrupt trigger so the Enemy AI can react to immediate threats and situational changes if it is able to.
All of this results in a system which can react dynamically in battle using internal and external data alongside the personal traits of the CPU player itself. For instance, personal traits like intelligence and aggression will have an effect on how the Enemy AI will react to the environment. The creature’s skill set will also affect how it fights. For example, if the creature has no melee skills, it is far less likely to put itself in a close quarters combat situation.
The AI is on a per player basis, not per creature. In a 3 vs 3 match, the AI creatures will perform in a similar fashion because the AI player is giving the orders.