Companion AI is a tricky, yet necessary element to program. Without it, the game world could be a very lonely place. Enemy AI is difficult enough, but balancing is easier. You simply worry about how many enemies will provide enough challenge to the player, walking the thin line of challenge.
Programming for companions is not just about making sure they don’t idiotically walk into objects (and we still see a fair bit of that), but also deciding what role they will play.
There are two common types we can start with: Escort missions and Allies.
These are often hated by players and for good reason. Although escorting cargo – especially one you care for – can add drama, it’s never fun to lose a mission due to an uncontrollable AI.
Zelda: Ocarina of Time solved this beautifully with Princess Zora in Jabu Jabu’s Belly. Zora could not move on her own, and could not take damage. You picked her up like a jar and threw/dropped her when you needed to take out baddies. It wasn’t super realistic, but controlling a elf child in a giant fish’s belly wasn’t realistic either. Realism aside, this ruleset worked very well and avoided any frustration at the hands of wee Zora.
This is a wider category, depending on how much responsibility the developer wants to give your squad mates.
For example, in The Last of Us, your (Joel’s) companions cannot directly expose your super secret stealth movements. This is good and bad. It’s great that an uncontrollable AI can’t alert a dangerous clicker to your presence, but it also looks incredibly silly when they’re crashing around like fools in front of a crouched Joel.
Also, Attila pointed out in the podcast that Ellie could in fact knock over an environmental object that makes a noise to alert a clicker.
Knights of the Old Republic is one of the best Star Wars games ever and is a great example of equal AI allies. The companions are roughly the same as the main character in terms of strengths and weaknesses.
This means the player either needs control over them or the AI must be suitably adequate.
Strict turn-based RPGs gave the player direct control over every player in the party, so AI was not an issue.
Bioware’s KOTOR was a fantastic hybrid for the modern (at the time RPG) players. Your companions could act on their own, you could assume control, and it was even possible to pause the action to que up important command in the heat of battle.
I appreciated this sytem and felt I bonded more with the characters, cheering their contributions and jeering their failures.
The non-helpful companions
This is the type that look important, but don’t actualy contribute very much to the outcome of the situation.
Call of Duty games generally make you feel very powerful. One of the ways they do this is by putting the responsibility and control in your hands. Get to a firefight in a bottleneck, and it’s usually up to you to progress the game forward. Your squad-mates do a great job of acting busy, hiding behind cover, firing blindly, and yelling dramatic lines, but that area won’t get cleared until you start popping headshots.
This makes it much easier to balance difficulty and also keeps the player feeling like the most important person in the game. Which can be a great experience.
If your squadmates were as powerful as you the enemies would have to buffed up as well, which in turn would reduce your character’s influence. Instead of Darth Vader, you’d just be a Storm Trooper.
Overall I’d say I most appreciate when allies are as powerful as the character I control. It feels the most immersive and helps build their narrative through gameplay. But one size does not fit all. I’m glad we can enjoy a gaming landscape filled with countless ways to implement intelligent companions. I just named and discussed a few of the biggies.
What do you think?