Computer Controlled Ally Antipattern

(We're really getting into the 'that's your opinion' territory here.)

Problem: We want to simulate a world and that means that many of the inhabitants will be your allies rather than your enemies. We want to explore cooperation as well as competition. We want an ensemble cast, but we want a simple interface.

Solution: Have one or more game characters that are allies of the avatar but are controlled by the computer.

Consequences: If the computer ally is too good or too powerful, they take the challenge of the game away from the player. (The computer is playing the game for me!) If the computer ally is weak, they become a liability. (Which can actually be an interesting play mechanic - the DependentPattern?.) Coding AI for an ally is more difficult than for an opponent; it is more obvious when an ally does something 'stupid', and when an ally is 'stupid', it's frustrating / punishing rather than when an opponent is 'stupid', where it's just disappointing. This pattern can be made to work but it's a chore.

Examples: Wing Commander, Diablo II.

Counter-Examples, where the pattern worked: The final fight of Zelda: The Wind Waker where Link acts in concert with Zelda; Halo - the allies served to make the simulation more immersive without taking away the challenge of the game.