AiGameDev.com

“Join leading experts and industry veterans in Paris on June 23-24 for the largest independent conference about artifical intelligence in video games.” — Alex

membership

The Premium Membership area at AiGameDev.com is the best place to stay on the cutting edge of artificial intelligence in video games.
Find out more!

sponsors

categories


subscribe

Search


related articles

Sponsors

SpirOps

PathEngine


Does Game AI Knowledge Grow On Binary Trees?

Dave Mark
June 26, 2008

In this week’s developer discussion on AiGameDev.com, Dave Mark picks up on a recent blog post by Paul Tozour, AI guru extra-ordinaire, who discusses AI interview questions he would like to hear in the games industry.

You want these? You can’t have ‘em!

Everyone who has ever stepped onto the road of borrowing money as a young adult is familiar with the quandary that getting your first credit card or loan. You can’t get a credit card until you have a credit history… which is strikingly difficult to acquire without a credit card. It can be an exasperating exchange when you are first told that. I’m sure that I’m not the only one that uttered the plea, “trust me! I’m good for it!” Well, that may very well be the case (it wasn’t with me… I was a slouch), but for the person on the business end of that desk, are they really going to take a chance on you? Literally, they would be investing in the unknown… at least by empirical measures and defined standards.

The reason this came to mind is a pair of posts at Game/AI. The first, penned by Damián Isla of Bungie, was titled “Game AI U?.” In it, he commented on how, while there are plenty of students coming out of the various game development programs around the country, there is a disturbing void. In Damián’s words,

“I just have one worry: I talked to a lot of students at GDC who cited A*, steering behavior, neural nets, etc. as proof of their AI expertise, but I’m concerned this might point to a case of academic over-fitting. Those things are well and good, but they’re also relatively straightforward, in and of themselves, and very SPECIFIC. If I had to choose between someone with experience with those particular tools of the trade and someone else with a generally stronger math and CS background, I would always choose the latter. Of course no one says you can’t have both, and I’m sure that’s what the game schools are aiming for.”

A brief and certainly unscientific stroll through the curricula of the usual suspects in game education supports Damián’s observation. DeVry’s Game and Simulation Programming track doesn’t list a specific AI class at all. (At the very first breakfast of GDC, I happened to lean against the same stretch of wall as the head of DeVry’s Game Program where he lamented that his major obstacle was finding game AI people with the Master’s-level degree required to teach in an accredited program. More on this later.) Full Sail seems to show one AI course as part of their degree program. Although I know that the legendary Steve Rabin teaches AI at Digipen, I can’t seem to find a specific AI-related course on their site. I’m sure that there are other, less well-known programs that have AI courses… but how comprehensive of a treatment do they give?

But Are You Prepared for… “The List?”

While it was certainly a good and entirely valid observation by Damián, the gravity of it didn’t strike me until later. Specifically, last week, another Game/AI contributor, Paul Tozour, posted something seemingly unrelated… but on further analysis is really a logical continuation of what Damián had noticed. Paul’s post, “Interviewing AI Developers” is almost dizzying in its gravity. To quote from his header:

“I left Retro Studios a few weeks ago, and I’ve been talking to a lot of developers in the meantime. It’s been a really fun process.

However, it’s also reminded me that when it comes to AI development, our industry is all over the map.

So I thought it would be a good idea to make a big list of AI interview questions … some that I’ve asked, some that I’ve been asked, and others that I think are worth asking. I left the answers blank, since plenty of good answers to all of these questions are easily accessible in all sorts of places (and if you’re the one giving the interview, you should already know the answers!)”

I want you to answer all my questions honestly. It will go better for you that way.

I very much encourage you to pop over and take a look at his list at some point. I warn you, however, it is not small. You can’t even just look down the list and count how many of them start with little dashes (i.e. bullets). Some of those line items actually contain multiple questions. Reading straight through the list as he wrote it almost makes it seem like combination of a timed quiz show and a Hollywood-stylized prisoner interrogation. In order to preserve AIGameDev’s bandwidth, I will refrain from re-posting the behemoth of a list here - but I can’t resist tossing out one or two.

The questions start out simple enough. Here’s the first two in the first section (”Behavioral AI”):

-What’s the difference between a finite state machine (FSM) and a hierarchical finite state machine (HFSM)? Give an example of a hierarchical state machine with functionality that you could not easily replicate in a non-hierarchical FSM.

-What are some of the limitations of state machines? When is the use of state machines appropriate, and when are they insufficient to generate the kinds of behaviors you need in a game?

No big deal. That’s standard fare, right? A few questions further down, you get whoppers like this:

-You’re developing a boss encounter in a 3D platformer game, and the boss has 15 different attacks. The game designers have asked you to make sure that the player sees as many of those 15 attacks as possible during the encounter, and that he seldom or never sees the same attack twice in a row. What are some ways you can do this? What does the attack selection algorithm look like in this case? Keep in mind that not all attacks are possible all the time — for example, the boss has a melee attack that he can only do when the player is very close, and a bombardment attack he can only do when the player is far away.

What’s more, you get some pretty esoteric stuff mixed in here.

-You have a pathfinding system that does a great job of finding a path across the world, but it does not take dynamic obstacles (such as crates, barrels, vehicles, and other AIs) into account. The player is playing a superhero, and he uses his super-strength to drop a soda machine in the AI’s path. [Dave’s note: WTF? A soda machine?] The AI doesn’t have any way to move or destroy the soda machine. Once the AI sees the soda machine blocking his path, what are some different ways he can pathfind around it while ensuring that he eventually returns to his original path and reaches his initial destination? What happens if the soda machine is on top of his destination? What if the soda machine is right in front of a doorway the AI needs to walk through as part of his initial path?

-You’re making a WWII shooter with fighting in the streets of Berlin. Your designer wants to ensure that at certain points during the game, the AI-controlled Nazi units will flank the player, with small squads of Nazis approaching from different directions and side streets and alleyways. We assume that cheating is not allowed (i.e. we may not simply teleport units where we want them to go), and we assume that telling the designers to do it with scripting isn’t feasible. Describe at least 2 different ways to implement such a system.

I’ll quit with the excerpts now… seriously, go read the list itself (don’t forget to come back… and you might want to take a bathroom/coffee break before you start). The point is, there is a lot of material covered in there. He touches on all sorts of disciplines… behavior, pathfinding, steering, influence maps (by saying that I give away an answer or two), scripting, animation, learning. No stone goes unturned. The List was so intruiging, that an entirely separate forum was started in the AIGameDev forums specifically entitled “Solve This!” with the weekly seed material originally coming from Paul’s post. (Free forum registration and introduction is required to view the contents… but, if you are reading this column, there is no excuse to not be a forum member anyway!)

Education Meets The Real World

I have addressed some related issues in this space in the past couple of months. In “The Little Used Tools of Game AI” (which actually drew from a GDC roundtable), I ask why we aren’t using all those fancy-schmancy things that we all talk about. In “Why Not More Simulation in Game AI?” (also seeded by some conversations at GDC), I ponder the possibility that the AI arena is starting to fragment into sub-disciplines. When tossed into the pot with Damián’s concern about the comprehensiveness of AI education and Paul’s tidal wave of theoretical interview material, a couple of questions bubble to the top.

  • If the AI in games today is to get better, do we need to use the more advanced techniques?

  • If the more advanced techniques are so critical, why is it so difficult to find people who are actually using them?

  • If the more advanced techniques are growing so specialized and diverse, can one person really know them all to the extent necessary to be completely proficient?

  • If game development schools aren’t teaching much beyond pathfinding, steering, FSMs and (*sigh*) neural networks, where does the advanced knowledge come from?

  • If game development schools were to teach enough to cover Paul’s “Interview From Hell Union Aerospace Corporation,” how many complete courses would it take?

  • If most game companies tend to have very small AI staffs (many only have a single person), and “if you’re the one giving the interview, you should already know the answers”, who is going to be qualified to conduct Paul’s hypothetical interview?

  • If game companies are going to use the advanced techniques, aren’t they going to have to employ larger staffs anyway?

  • If game companies use larger, but specialized staffs, would one specialist necessarily be able to adequately interview a specialist of a different sort?

  • Since, as Paul admits, there is more than one solution and/or response to his questions, and especially since new techniques are being developed by visionaries all the time, what if the applicant blows the interviewer out of the water?

  • Since a majority of what we do as AI designers/programmers is crafting specific solutions to unique game-specific problems, is it necessarily right to ask some of the questions that Paul proposes?

  • Since a majority of what we do as AI designers/programmers is iterative and exploratory, is it reasonable to expect an interviewee to “wing” an answer in an interview?

  • With the significant amount of AI material available on websites such as this one, solo books and compilations such as the “AI Game Programming Wisdom” series, do we need to know everything about everything (or even everything about a particular subset of everything) — or do we just need to know how to find what we need on our own?

While (!AI_Skills) {AI_Job = False; AI_Skills = False;}

When you reach the end of the strip, you will have enough AI experience to get hired to an AI job.

While the above are all thought-provoking and the potential solution set somewhat ephemeral, I guess the most important question goes back to the credit card example I began with. That is, if schools aren’t teaching enough AI to get an AI gig (per Isla), and you can’t get an AI gig without having a ton of varied AI knowledge (per Tozour), how does one get into that world? Of course, you could get AI experience by being hired as a junior member of an AI team… but AI teams may actually tend to be one-person shops. It’s the same frustrating Catch-22 as the credit history example. Unless you can pull off the “trust me! I’m good for it!” approach, it also seems to eliminate an AI gig as an entry level position.

Damián did provide an out in his post, however. To reiterate:

“If I had to choose between someone with experience with those particular tools of the trade and someone else with a generally stronger math and CS background, I would always choose the latter.”

Whether he intentionally implied it or not, the take-away I get from this is that, as far as AI-related education goes, you’re on your own.

To be honest, that’s not far from the truth anyway. Take it where you can get it. Talk. Network. Attend. Browse. Post. Respond. Buy plenty of books. Visit AIGameDev daily. Buy plenty of books from Alex’s links. After all, while AI knowledge and experience may not grow on trees, knowledge of AI trees (and other stuff) can be found in plenty of places.


Bookmark and Share




Comments