AI Panel - Boston Post Mortem
The AI panel discussion at last night's Boston Post Mortem was a good one. The panelists were: John Abercrombie (BioShock, SWAT 4), Damián Isla (Halo 2, Halo 3), and Jeff Orkin (No One Lives Forever 2, F.E.A.R.). If you do the math, I think those games average to a 92 metacritic score. Impressive.
Here are some of the main points I remember (this is not verbatim, no guarantees on accuracy):
Strongly consider using middleware whenever possible. It sucks spending 2 years implementing a navmesh generator for the Nth time, especially during your programming prime.
Keep it simple. Complicated AI programming models never handle all of the edge cases properly. And when they fail it is very difficult to figure out what is going wrong. Simple approaches make it much easier to understand why things are happening.
Each year, solving the same AI problems becomes more challenging. (e.g. Technology improves = games can handle more complex geometry and more dynamic physics objects = pathfinding becomes a harder problem to solve)
You can never afford enough raycasts.
A great AI engineer notices small hiccups and inconsistencies, digs into the code, figures out why they are happening, and fixes them. At the same time, he prioritizes these fixes in terms of what is most important for the overall experience.
An AI engineer's chief responsibility is creating fun gameplay.
In many ways, the AI engineer becomes the defender of the design. He forces the design team to concretely describe the types of encounters they want and holds them to it. If designs are vague, contradictory, or incomplete, the AI engineer forces clarification.
Rather than giving designers a scripting system or ability to define custom behaviors, it's usually better to let them layout and tag levels. AI characters are treated as black boxes and the designer drops them in using spawn points.
Having awesome animators goes a long way towards creating believable AI characters.
Is "emergent" AI a real solution? No. Most of the time you end up with emergent crap. Although John mentioned a story about setting a character on fire, waiting for them to jump in the water, and then shocking the water. Jeff mentioned two examples. The first was a case where his AI character corrected a human using incorrect grammar. (The simulation involved text chat.) In his second example, a bug allowed the AI waiter to place a plate on the floor rather than a table. However, the waiter learned to say "oops" whenever he did it. This raised the interesting concept of using AI to cover up bugs in your game.
In the next 10 years, offline data mining is probably going to become fairly important for implementing realistic AI. Many new methods of gameplay can be learned by watching humans play. No engineer is capable of thinking of all gameplay behaviors, yet alone implementing them.
The industry already "data mines" for most AI animations. We use motion capture that gets cleaned up rather than having animators create animations from scratch.
One of the big challenges in AI is communicating the character's intent. In real life, if you train with your buddy to breach and clear a room full of terrorists, you have a good understanding of how he is going to behave and why he is going to perform certain actions. Replace your buddy with an AI character and most of the time you can't predict what he is going to do or why he is going to do it. A related example was: compare playing Left 4 Dead with AI teammates and with human teammates.
Many times, small cues can go a long way toward communicating intent and thus fun gameplay. Example: In F.E.A.R., when the player climbed into certain vents, there were triggers that caused AI soldiers to say "he's in the vents!". Even though the soldiers couldn't climb into the vents, it went a long way towards inducing FEAR. (sorry, I couldn't resist...)
Most of the big AAA titles can't afford to take significant risks on experimenting with new AI areas/techniques. Indie teams can afford to take more risk and might benefit from building a game centered around a new/specific type of AI. Suggestion: just open an AI textbook, you could build a game around almost any individual technique described (it might only have a few minutes of game play but that doesn't mean it won't be interesting).
What are they up to now?
John Abercrombie is finishing up development of BioShock 2.
Damián Isla cofounded Moonshot Games, where he is working on a downloadable game with AAA production values.
Jeff Orkin is finishing his PhD at MITs Media Lab. He is researching the use of machine learning on game data collected from human players. Be sure to check out his Restaurant Game.