With the experience of Part IV behind us, a critical analysis is in order.
Voting systems have many advantages in game development:
Sadly, voting systems can require a lot of effort to tweak during the experimentation phase, notably to get the votes balanced right and the suitable weights.
Decision trees, too, are an incredibly useful AI technique. When used in the right context, they have many benefits. They are extremely simple conceptually; all we need is a tree. Decision trees are designed to be fast, and are capable of processing huge quantities of data in real time. They are also very good general-pattern recognizers, capable of dealing with continuous and categorical variables.
On the downside, decision trees can be somewhat painful to train, like other supervised learning techniques. Indeed, it's still necessary to find the data for the decision tree to learn! This requires preprocessing, or a separate phase for gathering information.
As for the weapon-selection behaviors, these generally prove quite satisfactory. In many cases, the choice of weapons is limited, and there are many acceptable options. This means that the AI has plenty of tolerance as to what is classified as a realistic weapon choice. As long as there's no fast switching, the behaviors are mostly acceptable.
Both the voting system and the decision tree rely on assumptions at a certain level. The voting system depends on statistics about the weapons, so that it can deduce the best weapon—in theory. The decision tree learns the properties of the weapons, but relies on assumptions used to compute the training data. We used a simplified voting system to do this, and the behaviors are satisfactory. However, the weapon selection is not optimal. There is no sense of survival or desire to score points, so the animat has no idea of the purpose of better weapon selection.