Come interview at Naughty Dog! :)
Posted by cowbs at June 12, 2008 04:50 PMAwesome! This has given me some food for thought. Thank you very much.
Posted by Adrir at June 16, 2008 04:11 AMWow, this is an awesome list, Paul. A bunch of your questions left me scratching my head and going "uh ... how WOULD I do that...?"
Your decision-tree section reminded me of when I was first interviewing at Bungie: when you apply, the first thing you get is a programming test to do at home and send back to them within a day or two. Question #1 on the test I got (not used any more) was a discrete classification problem.
It was only by the merest luck that, two days before, I had read an article on C4.5 in Game Developer magazine. Since I had, I immediately recognized the problem as a DT one ... and I was able to give Bungie the impression that I knew what I was doing. If I hadn't happened to read that article, who knows where I would be now. Probably in my 9th year of a PhD somewhere...
Posted by naimad at June 16, 2008 09:50 AMRe: decision trees: here's an interesting article by Richard Evans of Lionhead on the use of decision trees in the AI of Black & White (yes, I just answered one of my own questions!) :
http://www.gameai.com/blackandwhite.html
Posted by Paul T at June 16, 2008 11:15 AMA great list of questions there Paul. I regularly collect programmer interview questions for myself and my students to mull over.
There's nothing like being asked these kind of questions to let you know where you stand. I love to give my finalists C++ interview questions to get them spurred on to really nailing down thier own understanding.
Question for you. How many of those did you actually know? :)
Posted by Phil Carlisle at June 18, 2008 12:48 AMI feel that the important focus (which some of your questions address) is not being able to regurgitate algorithms... but that the applicant show that he can think his way out of a box. Show some creativity. We are all going to encounter very project-specific problems that will not be able to be learned in a classroom or garnered from a book. The ability to know how to approach a problem like that is the #1 asset that an employee... especially an AI programmer... can have.
Hey Paul... I want to base my next week's Developer Discussion column at AIGameDev on this post (linked and credited appropriately, of course). Shoot me an email if you would, please.
Posted by Dave Mark at June 18, 2008 01:03 PMOh... one more note: Combine the topic of this post with the prior one, "Game AI U". What would the curriculum directors at purported "game development schools" think about that list? Does their program prepare people to be able to answer any of those questions at all?
Posted by Dave Mark at June 18, 2008 01:07 PM> [Phil Carlisle]
> Question for you. How many of those did
> you actually know? :)
All of them ... Most of them come out of problems I've faced at one point or another in my career.
I called them out as fair game for interviewers to ask me at the top of the post, so I certainly have what I believe are satisfactory answers to every question.
Of course, they're fairly broad questions, and I'm sure there are also a lot of good answers beyond the ones I would give.
Posted by Paul T at June 18, 2008 03:23 PM> [Dave Mark]
> Hey Paul... I want to base my next week's
> Developer Discussion column at AIGameDev on
> this post (linked and credited appropriately,
> of course).
Awesome! Looking forward to it. :)
> [Dave Mark]
> What would the curriculum directors at
> purported "game development schools" think
> about that list? Does their program prepare
> people to be able to answer any of those
> questions at all?
Good question! Given the lack of emphasis on AI at most such schools, I doubt they really help aspiring developers with any of these.
But I do think this list sums up a lot of the challenge we face -- and more to the point, they describe problems that we as an industry have already found good solutions for.
Creativity and out-of-the box thinking are important, but those existing solutions should be fundamental knowledge for most devs working in game AI. My own definition of a "game AI developer" is someone who can answer most of the questions in this list.
Posted by Paul T at June 18, 2008 09:20 PMGreat list! I'll definitely be referring back to it a lot to broaden my own skills.
> [Dave Mark]
> What would the curriculum directors at
> purported "game development schools" think
> about that list? Does their program prepare
> people to be able to answer any of those
> questions at all?
I can't really speak on behalf of other schools, but I know that DigiPen Institute of Technology, www.digipen.edu, does cover a good portion of the techniques you would use to solve these problems, in particular the CS380 - Robotic Intelligence/Game AI and CS381 - Machine Learning courses. I believe Steve Rabin designed the CS380 course; however, I don't think he teaches it anymore.
For those that are curious, I did indeed use this post as a seed for my Developer Discussion column at AIGameDev. (It also references Damian's post "Game AI U?"
http://aigamedev.com/discussion/industry-knowledge
Posted by Dave Mark at June 27, 2008 07:39 AMThe performance question at the end sounds like a bit of an afterthought, you could do more with it. How about:
- You have a game in which 100 NPCs all have to find their way around a complex game level, each with their own goals and behavioral system. How would you design system to allow them all do to the processing they need, without exceeding the AI time budget?
Posted by Ian at June 30, 2008 12:54 PMThanks, Ian! Good call; I've gone ahead and added it (with slight modifications).
Oh, and I just picked up your book the other day ... I'm enjoying it quite a bit (despite the lack of references :P ).
Posted by Paul Tozour at June 30, 2008 05:38 PM