Game Development Reference
In general, highly specialized rules need to match very strongly or not at all. More
general rules need to match often, but not as strongly. Conversationally, this is
the difference between asking a person about his or her new baby compared to
commenting on the weather. People who actually have a new baby tend to react
quite positively when asked about it. People who do not have a new baby tend to
react equally poorly when asked about one. Commenting on the weather is a
generally safe, if uninspired, conversational gambit.
The execution side of the rules is where the expertise in expert systems really
shines. A sports AI that properly recognizes a zone defense needs an effective
counter tactic; what's more, it needs to be able to execute that counter tactic. As
another example, there are many people who can correctly distinguish between
heartburn and heart attack; among those people, a trained cardiologist is more
likely to have superior execution in the case of heart attack.
Any existing algorithms make the game AI programmer's job easier when
developing the execution part of a rule. The AI is free to exhibit machine-like
precision using optimal algorithms if they exist. More abstract games tend to
have such algorithms, while more real-world simulations force the AI pro-
grammer to do the best that he or she can with other methods. When the AI is
very effective, the AI programmer is required to mediate the conflict between an
AI that is stupid and boring and one that is too smart and frustrating.
The rules execute in a framework. One of the design decisions that AI pro-
grammers need to consider is whether the framework will allow more than one
rule to execute at a time. For many systems, executing one rule at a time is
sufficient (or perhaps required). However, concurrent rule execution is a neat
trick that enhances the richness of the AI. Systems that allow concurrent rule
execution need to provide a mechanism to ensure that the demands of all the
rules selected for execution can be met. There are many ways to do this. One
algorithm repeatedly adds the rule with the best match to the rules selected to
run, provided that the rule to be added does not conflict with any of the rules
already selected. However it operates, the framework in a rule-based system
selects a rule or rules, including breaking ties and conflicts among them.
Besides being a programming method to implement AI, rule-based systems
require the programmer to think about the AI in a particular way. As with FSMs,
this forces programmers to crystallize what they expect the AI to actually do.