Game AI vs. Traditional AI... weighing in.
Recently, Luke Dicken has gotten quite the discussion going with this blog post. It's not a new discussion - but it's a healthy one, and one I've been meaning to jump in on for a while, so here goes...
While I agree with much of what Dicken has to say, and he does make many of these same points eventually, there still seems to me to be a certain tone of "well, the biggest problem is just that we don't get enough CPU to run the *real* solutions." While Dicken does go on to dig into many of the more significant reasons why Traditional AI is largely ignored by game developers, he puts the CPU time argument right up front, and while it's technically not untrue, it seems to me that it is (a) misleading, and (b) counterproductive. Here's why.
Why Misleading?
Even if we had 10x or 20x the CPU we do now, Traditional AI solutions wouldn't be the right ones. In general, these approaches are aimed at finding an optimal solution to an arbitrary problem. But games aren't filled with arbitrary problems - they're filled with very specific, reasonably well understood problems. And they don't call for an optimal solution - they call for a human-like solution. Hopefully a "cool" solution. A solution that tells a story, defines a character, draws the player in and creates a deep sense of drama - the same as you'd get from a good book, or a Shakespeare play. Crazy, you say? Go play Red Dead Redemption again, or Dragon Age, and tell me that that's not where we're going. Two very different games - one based around the FPS genre, the other a more traditional strategy RPG - but both with deep and compelling stories that keep you in the game long after you would have otherwise wandered away.
In other words, we don't want a general problem solver which can, with difficulty, be configured to handle our problem. We want a focused solution which handles the specific needs of our game with laser-like precision, while requiring as little configuration time as possible. Keep in mind that the budget of a game is essentially fixed, so more time spent on building a super-smart AI architecture means less time spent on features and polish. More time making it work means less time making it cool.
If we're going to create that compelling experience - something that computers are very bad at - that implies the need for strong authorial control from a game designer. While some designers also have strong technical skills, and some programmers have killer design instincts, the critical capability here is the deep creativity that will create a compelling experience. More, because so much of that compelling experience really is about the look and feel, animators and other artists are going to need to work hand in hand with the AI programmers, and to understand the strengths and weaknesses of the AI at a gut level. Thus the AI needs to be something that can be understood and at least thought about, if not configured, by a fairly non-technical, artistic personality. Traditional AI... isn't.
Even if we could have it, we also don't want an AI that is going to do *too much* thinking for itself. We don't want to kick the players ass - we want to make him have fun. We aren't looking for a Predator drone - very complex, very smart, and really bloody boring. We're looking for the Terminator. Lot's of style. Lot's of menace. Kick his butt and you're a badass indeed - nevermind that he has to pretty much roll over and let you do it (but all the while making it look good). Or better yet - let's dream big - Romeo. A conflicted teen in a gritty, gang-warfare environment with a bad attitude towards authority, a deep and abiding loyalty to his friends, and an impossible love affair. A character so compelling that we're still fascinated with him 400 years later. Sounds a little like Niko. Or... what was the name of that character in Starcraft? The human scout dude with the cool land rover and the girlfriend who turns into a bug? Yeah, you know the one I mean.
Why Counterproductive?
And that brings us to the real rub. Every time we say "It's not our fault - it's those dirty graphics programmers! If they'd give us just a *little* more CPU, we could do soooo much more!" we shoot ourselves in the foot, because the listener immediately thinks "Okay then, Moore's Law for the win! We'll just wait 5 years, and then the AI guys can have the equivalent of a full CPU today!" Of course, we've been using that same tired excuse for well over 10 years now, and we're getting a bigger share of the CPU than we did back then as well. And yet, Traditional AI solutions still look as bad as they ever did. Hrm.
The real problem here is in the missed opportunity. If Traditional AI is the wrong solution to this problem now, it's still going to be the wrong solution in 5 years. What we need to be doing is not waiting for CPUs to get faster - it's to recognize Game AI as a first class solution to many problems (beyond just games), and to continue to work on finding better techniques in the domain of solutions that do work. If we're making irrelevant excuses as to why Traditional AI doesn't work, it's only going to distract us from doing that.
The Bottom Line
So what's the bottom line? After over 50 years of research, Traditional AI is still barely scratching the surface of general purpose problem solving. My home robot can't do much more than scrub my floors - literally - and it's not even great for that. After more like 10-15 years of serious work on Game AI (the first AAAI Spring Symposium on AI and Computer Games was in 1999, and AI Game Programming Wisdom came out in 2002), we're creating stories like Red Dead Redemption, or Dragon Age, or GTA IV. Even much older games - Wing Commander III, for instance, or Starcraft - had compelling stories and characters worth remembering. What do I remember about the AI? Not a lot - and I'm pretty fixated on AI. But I remember the stories, and the fun I had playing the games. And at the end of the day, that is the real measure of a game's success.
Instead of cowering and making excuses every time we're criticized, we need to stand up and declare our accomplishments with pride. Sure, you can find moments in every game when the AI looks dumb. But the same is true of Traditional AI solutions - they just don't get the scrutiny that Game AI gets, because they don't have millions of players frantically blogging about every little flaw. Games have only gotten better, the AIs smarter, the stories deeper, the experiences more engaging. Compare Assassin's Creed to the original Thief... both amazing games, but how much more can we do now than we could just 10 years ago?