March 15, 2008

Game AI U?

I was catching up on the activity on this blog not long ago, and I read through the awesome thread that Adam started on Industry/Academic collaboration, and it occurred to me that I’ve never seen discussed here one of our industry’s biggest recent trends: the rise of the game schools – the Digipens, the Full Sails, the DeVrys. Even many of the standard 4-year schools are now offering full Game Design and Game Development degrees, or at the very least courses in these areas. Bungie had a recruiting booth at GDC this year – first time we’ve done it – and I think we were all surprised by the number of students coming out of such programs.

I was particularly surprised by the number of visitors we had who cited AI as their main focus of interest. The point was driven home at the AI programmers dinner when one of the Full Sail guys said something to me like “… and of course, everyone wants to do graphics or AI, those are the sexy fields…” Wow, really? When did THAT happen?

Well that’s pretty cool, and I think there are a lot of signs that point to the growing maturity of this academic niche.

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. And clearly, in the spirit of Adam’s thread, it’s also incumbent on us in the industry to continue to prod the game schools to teach what we need learned.

I would be interested in hearing about other peoples’ more direct relationships to this topic, whether grads who moved from a Game AI-oriented curriculum into the industry (do you think it prepared you appropriately?), industry people who’ve worked with some of those grads (do you see holes in the education they’re getting?), or maybe industry people who are now teaching. Steve Rabin, are you out there?

Post-script: my HIGHLY UNINFORMED IMPRESSION is that animation engineering is an area that is sadly neglected by the game curriculae right now (isn’t good AI is at least 75% good animation, after all?). Does anybody else get that feeling?

Posted by naimad at March 15, 2008 08:33 PM

Well, I've not been in a game development specific schools, but I do have a university degree under me. In a way, I'm somehow glad I did theoretical CS. (I even regret not doing more math!)

That said, my opinion on any university hasn't really changed over the years. A university does not make the difference. So many people go these days, it's good fun and all...

But fundamentally, it's all about *you*. Above all, I recommend that students do lots of extra curricular stuff, programming in their spare time. That's what gets people hired imho.

Anyway, just my 2c. :-)


Posted by: alexjc at March 16, 2008 06:54 AM

I totally agree on the animation issue. AI only matters to the point that you can present it.

There seem to be a few common patterns in animation engineering:

1) It is the responsibility of the game engineers to do all of the 'state to pose' mapping. The primitives provided by the engine are very low level.

2) It is the responsibility of an animation engineer to map data provided the AI system to animations. The AI engineer responsibilities largely end at 'output a movement direction and a behavior tag'.

3) It is the responsibility of the animation department to map data provided by the AI system to animations through a tool. Examples here include the Unreal engine pipeline and Natual Motions euphoria.

4) A move towards more exotic techniques - such motion generation from a clip library - mostly still in 'active research' phase. just highlighted some of the work. While this may be the inevitable conclusion to dealing combinational problems, it seems like there is still plenty of low hanging fruit we can hit first.

This is an area that really excites me. More expressive game AI will enable richer games. It also seems much closer than a solid audio synthesis solution.

Posted by: Brian Legge at March 16, 2008 10:15 AM

It would be very interesting to see what sort of AI-related courses are offered at game development schools.

You're definitely correct that things like animation are given far less attention than they need. I've yet to meet anyone straight out of college with a good grasp of this stuff. And although I'm not sure what game schools teach about AI, it's clear that for most universities, all the academically-sexy-but-not-nearly-as-useful-in-real-life techniques related to machine learning (particularly neural networks) get far more attention than is useful and end up distracting students from other, much more important topics.

> [naimad]
> (isn’t good AI is at least 75% good animation, after all?)

Outside of strategy games, yeah, pretty much.

> [naimad]
> it’s also incumbent on us in the industry to continue to
> prod the game schools to teach what we need learned.

Perhaps it would be useful for us to collectively recommend a curriculum for future game AI developers.

Posted by: Paul Tozour at March 16, 2008 11:21 AM

While I like the fact that there is a lot more attention being paid to the game industry by various types and levels of educational institutions, there is a major caveat in play here.

Being from Omaha, my wife and I were rather surprised to see that Bellevue (NE, not WA) University had a booth at GDC. They are a community college in a suburb of Omaha. Apparently, they have just started an online game development program. We stopped by the booth just to see what was going on. As we talked to them, I glanced over their handout of the course list. I was astounded to see that there were no programming courses, and only a few graphics courses. My point is, while there is an explosion in alleged "game development" programs, many of them may not have a clue and are simply on the bandwagon.

Another note in a related vein. I think what naimad is hitting on about the subtle difference in focus on tools rather than concepts is dead on. All the way back in the mid-80s, when I was in high school, my AP computer science teacher taught me an unintended lesson about teaching. (whoa... that was odd) The language of choice at the time for teaching was Pascal. (We were on a DEC PDP 11/44) However, he was teaching us concepts first and then "Oh, by the way... this is how you do it in Pascal." I remember the concepts he taught us - including coding style - but Pascal has been lost in my mental archives. I am glad that this was his approach. 22 years later, I can say that he made me a better programmer.

Similarly, in the late 90s, I was a consultant doing everything from NT networking to email systems. Everything I had learned was "in the trenches" and, for the most part, I never bothered to take the Microsoft certification exams. The late 90s was also when many schools were offering the crash courses in these same technologies ("Become a MCSE in 2 weeks!"). Many people at the companies that I worked as a consultant at had gone through these 2 week programs, taken the certification exam, and come out with lots of pretty letters on their new business cards.

Much like what naimad mentioned, they came out speaking of the nifty tools they had learned about and tossing jargon about. However, these same people were all but useless in production. They had no frame of reference on how, when and where to use these tools. The education did not serve them well in this case - unless it was to help them secure a new job or a new raise at an employer who was concerned about how many pretty letters one had on their business cards.

The point there, of course, is that they were "teaching to the test" as the saying goes. It was a focus on tools and algorithms rather than on "how to think". After programs like that, just because you have a box full of tools doesn't mean you've been building a lot of houses.

So, is it good that mainstream academia is trying to teach the masses about game programming and development? I guess that depends on what you get on the receiving end, doesn't it?

Posted by: Dave Mark at March 17, 2008 06:11 AM

Note - animation is not 75% of AI in all genres! I'm currently AI Lead on a console action game and wow was it a shocker to me how important animation was. I came from 6 years working mostly on real time strategy games which tackle lots of interesting AI problems but deal very little with animation issues (what does it matter if the characters pop when they're so very very small). That said it would be great to have had some training in animation systems to help understand how to go about these things.

I've worked with people coming out of game programs and people coming out of academic AI backgrounds. To be honest, the main thing that matters is a willingness to admit that you don't actually know anything yet and to always be willing to learn. The biggest problems I've had has been with people with years of AI experience in academia where you get a heck of a lot more of the processing power of the machine than we do in game environments. They tended to suggest solutions that aren't feasible when you're only allowed a tiny fraction of that power. The kids coming out of the game schools mostly have shown a complete desire to work in games no matter what. This wins out since our industry is so very consuming. You really have to love it to last, and these kids do.

Posted by: Tara at March 17, 2008 02:36 PM

I think the main problem we are talking about is not that these programs don't teach you how to think, but that they are not teaching what the industry needs. My impression is that there is not much of a difference between how a game programmer should think and how a IBM mainstream programmer should think, they are just doing a similar work in different fields.

From my perspective a lot of these programs uses big buzzwords (like machine learning, neural nets, genetic algorithms, etc.) in their advertisements and in their programs because they have to sell their programs, mainly to people who are interested in games. If the degree has a couple of years of building a solid base of C++, engineering practices (a computer engineering degree is 4-5 years long) it will probably be better for their graduates and they will be more valuable employees.

However, I guess a lot of people will compare two degrees and say: if I get this one I will have a degree in 4 years, but if I take this other one I will have it in 2 years and I will learn all this cool stuff and I will get a job at Bungie doing Halo 5, cool! let's do it.

I think that as time passes and these degrees become more mature they will eventually try to focus on what they need to offer so that they have the best graduates out there, so they can advertise "We have old students working as lead programmers at Bungie, Imsomniac, 2K Boston, etc."

Posted by: Diego at March 17, 2008 03:37 PM

Well... maybe one of the problems here is that the programs doesn't know "what" to think about. They are trying to teach the students how to think but are they solving the wrong problem.
[I am slightly biased towards FPS, 3rd person shooters here but here goes...]
Most games now days are becoming more and more like a really cool interactive movie. As Damian explained in his "Building a Better Battle" presentation, we are trying to orchestrate these visually interesting and believable battles and characters. Focusing on "AI" in game schools often mean A*, path-finding, neural nets and such. That is all good and all but I find however that the area of 'looks' is lacking attention. The AI need to make the character 'look' and 'feel' smart. The AI can be really smart and have the best algorithms ever but that might not come across unless thought is put into how to allow the AI to express itself in a clear manner to the player. As games are focusing more and more on visuals I think this is becoming more and more important.
The second thing which is also mentioned in Damian's presentation is the focus on having control over AI while still performing their autonomous behaviors. Staged battles and events triggering attack waves or retreats.

Posted by: Christian Gyrling at March 19, 2008 04:23 PM

> [Christian]
> Most games now days are becoming more and more
> like a really cool interactive movie.
> As games are focusing more and more on visuals
> I think this is becoming more and more
> important.

Christian, I agree with much of your post, but I'm not so sure I agree your assertion that is the direction games are heading or the direction they will take in the future.

There's no question that you're right that there's not much of a point in adding AI features that won't have a noticeable impact on the player experience ... which is something I think all of us on the blog are well aware of.

The hardware curve is such that all platforms -- whether from Sony, Nintendo, Microsoft, or whoever -- are going to continue to make huge improvements in their hardware rendering capabilities. But it's increasingly clear that the most visually impressive games of today owe far more of their visual quality to the skills of their art team than they do to the capabilities of the hardware or the skills of the software developers.

But so many games today are already such overwhelmingly cinematic experiences that it's hard to make the case that they can get much benefit from becoming more cinematic than they already are. So much of our industry allows graphics to dominate gameplay to such an extent that there's often very little gameplay at all, and games seem to exist to do nothing more than frame for the talents of the art team. It's hard to imagine the industry can benefit much from moving even further in this direction.

I think the low-hanging fruit for innovation is in other areas of the gameplay experience -- in deeper, richer, and more responsive gameplay experiences; characters that are more believable and support deeper interactions than we can currently provide; more tools for player-to-player interaction in multiplayer; and new interface methods, such as the Nintendo Wii controller.

Anyway, I'm getting way off topic. Getting back to the original question, it really comes down to what the game schools need from the industry so they can understand what to teach their students about game AI. I think we have a lot to work with, because we've developed a lot of techniques for each game genre -- FPS, RTS, sports, racing, fighting, etc. -- that should be able to form the basis of a solid game AI curriculum. Fundamentally, there are plenty of developers in our industry who understand how to make solid, high-performance AI systems and compelling game characters in every genre that exists. We know how to build really solid AI based on very simple techniques.

What we need to do is define and communicate those techniques so that game schools and other academic institutions can ensure that what they're teaching will really be relevant and helpful to the industry in the future.

Posted by: Paul Tozour at March 21, 2008 02:42 PM

Hi guys, I feel I should pipe up at this point as six months ago I left UK game studio development after leaving Lionhead in 2006 and spending 18 months at Eurocom, to take up a teaching post at Derby University! Perhaps I should have mentioned that in a post on this blog.... :)

Anyway, we now have a team of four ex-industry lecturers running two specialised game programmes (code and art) and we're really trying to exploit our industry links to keep the courses connected with the needs of studios etc. They're undergrad 4-year programmes with the 3rd year on placement in industry. Our first intake is currently on placement and we managed an 85% success rate (about 18 students) getting those guys into real game development positions. As they're not even graduates yet, we're quite happy with how it's going :)

To get back to the topic, we're about to go into our 4th year on the game programming degree this September, and that means the game AI module will be delivered for the first time. Surprise, surprise - it looks like I will be teaching it. This means I'm going to have to spend some time over the summer developing the course and all the teaching materials for it, planning assessments and so on...

So this discussion is suddenly very relevant to me, thanks! Perhaps in a couple of months I'll be able to post some reflections on my plans for the module. By new year 2009 I'll be able to tell you how it went down with the students. Right now I'm a bit snowed under delivering this semester's material ;)

Posted by: Adam Russell at April 4, 2008 07:11 AM

That's excellent, Adam. I'm definitely interested in hearing how your class goes.

Maybe you could also send out an overview of your curriculum once you have it developed. I haven't ever asked myself the question "what would *I* teach in a college class about AI?" I'm sure developing it must be a fascinating exercise, and I bet a lot of us here would be super-interested to not only see the output of that exerise but also to be able to hear from you the rationale and the process you went through. So keep in touch! :)

Posted by: naimad at April 4, 2008 09:55 AM