John Abercrombie, who was the Lead AI Programmer on BioShock and worked on the AI in S.W.A.T. 4 before that, suggested a topic he always finds interesting for the discussion: how can developers help the players perceive the AI as being intelligent? John also wrote about his experiences of this problem during the development of BioShock.
If you join the discussion, you can win a copy of BioShock (PC or XBox360) signed by the development team by posting interesting comments below or in the forums. The winner will be chosen by John Abercrombie by March 1st. (Thanks also to Chris Kline for making this possible.)
Image 1: 2K Boston now hiring Senior AI Programmers. (Large version.)
When Great Models and Algorithms Look Stupid
Here’s how John Abercrombie describes the problem, and his experience of it while developing BioShock:
“Often when a game I work on comes out, I find that some players (or reviewers) will say the AI looks dumb because it either doesn’t match what the player is used to, or the AI doesn’t sell what it’s doing/thinking to the player.
For example, on BioShock there is a complicated vision system with multiple vision cones that were based off of a number of inputs including the number of lines-of-sight visible to the AI, the darkness of the area around the player, and the weight of the vision cone which was generally based on distance and field-of-view.
We had two types of vision cones, doubt and certainty. AIs seeing players in their doubt cone would turn to look in the direction of where they last saw the player (which allowed players to duck behind columns if they were quick enough without the AI recognizing them, but they would think something fishy was up and would check it out). AIs seeing players in their certainty cone for enough time would recognize the player, and run at them.
However, some players found that the AIs seemed dumb because they didn’t see the player right away. As a game developer, should one expect that the AI should recognize the player immediately (as many other games do)? Was the tuning wrong, did the player need to be told ahead of time that AIs wouldn’t see them immediately to have them realize how they could affect the AI’s vision?”
John follows up with two open questions to get the discussion started:
How do you show intelligence without hitting the player over the head with it?
Obviously there’s speech and maybe animation, or combinations of the two, but are there other ways as well?
As some background research, make sure to watch the BioShock IDGA Talk which goes into the design process and the importance of iteration.
Screenshot 2: In game screenshot of BioShock with Little Sisters and Big Daddies.
When Simple Solutions Look Intelligent
John also mentions a counter example, when it in fact works out better than the developer intended:
“The converse of the question is when someone plays the game and thinks the AI is more intelligent than it actually is. For example, somebody thought that the Little Sisters only get upset about you when you point your weapon at them, but it’s just a proximity and line-of-sight test, you could walk backwards into her and the result would be the same.
There’s better examples I can’t remember now, but there are definitely instances of this all over the place in Bioshock, and definitely in other games as well.”
How do you make simple code look better? How do you make sure that advanced algorithms don’t fall flat on their face? How do you match the player’s expectations?
Post a comment below or in the forums. Make it insightful, interesting and useful to increase your chances of winning a signed copy of the game. (Also, be sure to visit 2K Boston to check out those job opportunities!)