As game makers can probably attest, one of the biggest challenges of creating a good first-person shooter is the artificial intelligence development. Programming an AI-controlled bot to perform with enough skill and unpredictability to convince you it’s a real opponent is a tremendous feat. In fact, I don’t believe any modern shooter has produced artificial intelligence that would pass the Turing Test (a thought experiment where a computer persuades a test subject that it is human). Even with the relatively advanced AI in games like F.E.A.R. and Crysis, at no point during those gameplay experiences was I fooled into believing that the enemy soldiers I mowed down were anything more than automatons navigating a scripted path with limited awareness of the environment.
But here’s a thought: do shooter NPCs need to have HAL-level brainpower? If my subconscious will never let me believe that a computer-controlled opponent is actually a human being, then there’s seemingly little point in a game developer designing uber-brainy AI. So what should a developer’s goals be when coding shooter AI behavior? That’s a question wholly dependent on one factor: whether the AI is made for a single- or multi-player game.
In a single-player shooter, bots don’t need to be equipped with an AI as smart or as skilled as you are—it’s more important that they be designed with “fun” AI. The goal shouldn’t be to put single-player bots on equal footing with the player. Most of the time you’re going to fight against more than one AI opponent, so it would be unreasonable if each bot was just as good as you. AI grunts serve as dynamic obstacles in a map—a scripted shooting gallery that fires back, which worked well in Call of Duty 4.
Perfect aim and the ability to dodge bullets actually hinder the illusion of “smart” AI. F.E.A.R.’s enemies had some flaws scripted in to make you feel like you’re not fighting your Core 2 Duo
And since level designers have full control of the environment, enemy placement can be arranged to give the illusion of intelligence by predicting how a player will progress through a map. For example, enemy soldiers in F.E.A.R. appear to astutely respond to calls for backup to flank your position. But those bots were actually already in place, waiting for you to activate them when you passed a specific point. The designers just placed the trigger to coincide with predetermined combat sequences—the soldiers would have “responded” and attacked even without any apparent cues. Bots don’t need to be smart; they just need to fake it.
On the multiplayer side, however, the purpose of bots is to simulate playing against a human opponent, and preferably one that’s just as good as you. If killing a bot is too easy, the game won’t be rewarding; but when it’s too difficult, it just feels like the bot is cheating with perfect aim. The same problem doesn’t exist with human opponents; I get plenty of fulfillment owning noobs and can respect a player that’s much better than me. It’s a fine balance—I want multiplayer bots to be “smart” enough for me to get the same satisfaction from defeating one that I would from winning an online duel, even though I don’t want them to be too good and dip into an “uncanny valley” of intelligence. Here, bots need to have “smart” AI so I can feel good about outsmarting them.
The biggest hurdle in AI design isn’t technical, but rather the player’s awareness that they’re playing against a computer. Player expectations have a huge impact on the gaming experience, and game designers should write AI that caters to (and takes advantage of) those preconceptions to make the experience both rewarding and fun.
September 23, 2008