Comments: What Didja See at GDC?

Hey Jeff...

Most of us commented at some point or another that we didn't see you! I am slowly posting my notes (which include Soren and Damian's lectures) over at my various blogs. Tag the RSS feeds because they will be coming up throughout the week as I get my head screwed back on right.

If you want to actually listen to the 3 AI Roundtables, and read my scatter-shot notes along with, you will find the links here:

http://www.intrinsicalgorithm.com/GDC/

There's also some pics from the AI Programmers Dinner. You were definately missed there... in fact people were invoking your name in hopes that, if we said it enough times, you would appear like Beetlejuice. I will be posting Neil Kirby's monologue video later on tonight.

Posted by Dave Mark at February 25, 2008 05:43 PM

I don't think Richard Evans ended up talking about Sims 3, I didn't see that on the schedule. I saw Damian Isla's Halo talk as well as the talk on Assassin's Creed AI. I'll be writing those up on my blog later this week. Love to see other people's write ups as well, of course!

Posted by Tara at February 25, 2008 10:55 PM

Yeah, I really liked the Assassin's talk, they covered a lot of detail as to how they approached the entire process of creating their crowd behaviors - from how they did previz-anims on the different types of reaction behaviors to what specific aspects they optimized with LOD.

Posted by Borut at February 25, 2008 11:53 PM

Thanks Dave, Tara, and Borut. Great coverage Dave! Between your notes, photos, and audio, it's like being there. ;-) Looking forward to your write-ups.

Dave's notes from the round tables were interesting -- in particular the backlash against emergence raised my eye brows.

Tara, it seems that EA might have put the kabosh on Richard Evans' talk. Too bad. I got a lot out of Evans' GDC 2002 talk: Social Activities: Implementing Wittgenstein. http://www.gamasutra.com/features/20020424/evans_pfv.htm

Here is the description of what he was supposed to say about The Sims 3:

In this session, Evans will show some of the more unusual AI techniques being used in Sims 3, including very long-term planning, autonomous traits, and a new socializing model based on overlapping normative processes. He will show how these technology components serve two high-level design goals: to make each Sim be a unique snowflake (recognizably distinct from the others), and to move up Maslow’s hierarchy of needs (so that the player focuses less on peeing and sleeping, and more on social relationships and situations). Additionally, Evans will demonstrate these ideas working in action in a 2D experimental testbed.

Posted by jorkin at February 26, 2008 07:54 AM

Jeff, I couldn't believe the backlash against emergence either. Some of us tried to hold our ground but we needed you. As you probably heard in the audio, most of the objection is the same we see all over the message boards - you can't test emergent behavior in some sort of repeatable process so it scares people. My contention is that I don't want the same predictable experience over and over again... and neither do our gamers.

I am curious as to how you guys handled QA with the likes of F.E.A.R.?

I can't remember where Adam Russell weighed in on all of that - but I know that he was chewing out designers and their lust for control in one of his AI Wisdom 4 articles... and it spilled out into the first roundtable somewhat!

Also, if you listened to roundtable 2, you heard me ask if anyone had used response curves or any sort of variant on that. I am baffled that most AI programmers don't even know what I'm talking about. How about you, fine sir? As long as you think it is almost like being there, I figured you may want to weigh in. :-)

Posted by Dave Mark at February 26, 2008 09:05 PM

I'll get my notes typed up since I did make it to the Halo 3 and Open World Pathfinding talks. Sadly, one of the AI sessions clashed with an AI roundtable. Whoever planned it obviously isn't even Artificially Intelligent nevermind Intelligent :)

I wouldn't mind knowing about the Assassin's Creed stuff, if anyone has any notes on it.

The Richard Evans talk seemed to be cancelled early on (despite appearing as a promo item). Odd.

The open world pathfinding hasn't been mentioned, but was interesting - cheap raycasting based on "fences", good obstacle avoidance (meaning no need for collision detection), and doing some stuff with special cases. LOD for certain things and that the world is split up into squares and suchlike. All good stuff.

Posted by Andrew Armstrong at February 27, 2008 01:21 AM

I bumped into Richard Evans at Julien Hamaide's short talk "Semantic Environment Sensor System" (https://www.cmpevents.com/GD08/a.asp?option=C&V=11&SessID=6643), and having not seen each other for four years since he left Lionhead to go work on the Sims 3, we went for a coffee. Apparently his talk was overruled at the last minute by an Exec Producer from EA, I guess they decided it was too early to start the giant media ball rolling with Sims 3 press coverage. Apparently the talk Richard *already* gave on the Sims 3 AI at AIIDE2007 was too far below the press radar to cause issues! :)

I may post my general observations about the conference soon, right now I'm still recovering and trying to catch up with my day-to-day work!

Adam

Posted by Adam Russell at February 27, 2008 01:36 PM

Dave, I agree with you -- make games for gamers, not for QA! It seems to me that resisting emergence is a little bit like arguing that the move from 2D to 3D graphics was a bad idea because we lost control of the dramatic experience by losing control over the player's viewpoint. We gave up a little control moving to into 3D, but gained a whole lot more. Really resisting emergence is just silly and short-sighted. Our game worlds are becoming more dynamic, complex, and unpredictable with physical simulations and destructible objects. We can't continue to make our worlds more immersive for the player without also making the behavior of the AI more emergent to cope with these factors.

Our approach to QA was to report cases of AI mis-behaving rather than looking for deterministic respones to every situation. QA was looking for broken AI -- e.g. AI ignoring the player, AI bouncing grenades off walls and blowing themselves up, AI seeing players through walls, etc. It was up to designers to tweak and polish, and iterate with engineers to get the desired gameplay -- e.g. AI throwing grenades too often, not moving between cover enough, etc.

I haven't had a chance to listen to your round table audio yet, but your notes quote Adam Russell as saying:
Emergence is a red herring. FEAR may have been highly contrived.

Which seems contrary to what his earlier comments about designers giving up fine grained control, but maybe it made more sense in context. Aren't all games contrived? And, who cares, as long as they're fun. ;-)

Regarding response curves -- I enjoyed the AIWisdom article about them, and always thought they sounded like a good idea, but never actually put them to use myself. Any technique like that, that allows you to work with a visualization or abstraction from the low-level parameters or raw functions seems like a good idea.

Jeff

Posted by jorkin at February 27, 2008 03:55 PM

Oh crap... I forgot Adam said that. *sigh* Now I've stirred up some controversy or something. Oh well. Please listen to the audio and make sure on the context with that.

One thing that I think may be part of the problem is that the term "emergence" is being used in a couple of different ways lately... or at least a nebulous one. Your version of emergence in F.E.A.R. is a lot different than one you would experience in a free-roaming sandbox game which is different that what you would find in an RTS, etc. Non-deterministic and/or stochastic doesn't necessarily imply emergent, etc. I hate the semantics of it all.

Anyway, the response curve article in AI Wisdom 1 (which I actually referenced in my AI Wisdom 4 article) only scratched the surface. There is so much more than can be done with them. I would actually like to add you to the group of people that I am going to bounce some article/book ideas off of. (Along with Rabin et al.)

Shoot me an email when you get a chance and we can get this off the boards.

Dave

Posted by Dave Mark at February 27, 2008 06:17 PM

Oops... forgot this. My notes on Soren Johnson's lecture about his design positioning of Civ 4 between "good AI" and "fun AI" (always a contentious topic).

http://www.intrinsicalgorithm.com/IAonAI/2008/02/gdc-2008-soren-johnsons-lecture-on-civ.html

Posted by Dave Mark at February 27, 2008 07:30 PM

> Oh crap... I forgot Adam said that. *sigh* Now I've stirred up some controversy or something.

Ha! No worries Dave. I was just responding to your comment: "I can't remember where Adam Russell weighed in on all of that".

But let's ask Adam himself. Emergence: "Red herring" or "Designers, get used to it"?

Jeff

Posted by jorkin at February 27, 2008 08:04 PM

I was at the AIIDE talk on Sims 3 from last year. My notes are here:

http://tara.teich.net/archives/aiide-2007-richard-evans-talks-sims-3/

I was wondering why they let him talk about it then and there's been zero press coverage since then!

Still haven't gotten around to typing up all my GDC notes, it's slow going. Assassin's Creed should be up by tomorrow, hopefully.

Posted by Tara at February 27, 2008 09:07 PM

Hi Jeff,

It's true! I did weigh in 'against' emergence in AI Roundtable #1 last week (at 29:50 in the audio), claiming that much-discussed F.E.A.R. anecdotes such as the door being blocked so the soldier jumps in through the window are "actually highly contrived, quite often". Let me just clarify what I mean by that:

I think most of the time, what we talk up as the benefits of 'emergence' in for example a r/t GOAP system really means 'robustness'. The system is robust because it scales well when adding new behaviour and because it copes well with novel combinations of circumstances at runtime. However, I think we sometimes go too far talking up emergence as if it somehow creates mechanics for us, and automatically results in cool gameplay experiences. I think this is the "red herring". It's *true* that we constantly encounter unexpected behaviour when working with an 'emergent' system, BUT I contend that 95% of this unexpected behaviour counts as *bugs* that must be fixed! In fixing these bugs, we special-case the system, and in selecting the 'unexpected' behaviour that we like, we also special-case the system. The result is at the end of this process we show off the cool 'emergent' behaviour as if it just dropped into our laps, when in fact it was carefully authored by the designers and the AI programmers.

Having said that, I'm all for 'robust' and 'scalable' systems, and that is why I feel designers need to be more hands-off when working with AI behaviour, even though I feel emergence is a red herring :)

Posted by Adam Russell at February 28, 2008 02:47 AM

Wow. Got ME off the hook!

That was very well said, Adam. I believe that as we get better at designing purely agent-based models (especially planner-based ones) we will start to develop a better methodology for expecting certain idiosyncratic behaviors from our agents. We will be able to actually build the appropriate restraints into the core model rather than censor them on the outside of the core model with the "special case" approach that you mentioned.

Part of the process will be simply tagging more of the world with relevant information (which I understand they are doing in the F.E.A.R. sequel). The reason that some of the behaviors now may seem contrived is because there are so few possible choices (relatively). The door/window one, for example, would not have existed until a designer tagged that window as a path node. They were almost begging the agent to use it by doing so. As the list of potential behaviors/actions gets larger, it is less of an issue of "please choose this cool thing that I just added" and more a true model of the agent taking the world into account. Of course, as Jeff will likely tell us all, the branching factor starts to get ridiculous very quickly. (That's where Ray Kurzweil's keynote comes in!)

Posted by Dave Mark at February 28, 2008 07:26 AM

To echo something that Adam said: I feel that the smarts we often ascribe to emergence are really about misinterpretations of intentionality on the part of the player. The AI mechanistically triggering a sequence of behavior will occasionally generate a sequence on which it is easy to impose a narrative: "he dove out of the way of the grenade, then he cursed BECAUSE I had thrown it at him, and SO he got into the turret next to him and killed me". "Because" and "so" are of course narrative words, and are largely a fabrication on the part of the player. And I imagine that our job as AI programmers is to facilitate (fake) that narrative. Perhaps at some point the causality will be real, but one thing I will say is that there's not a lot of pressure from the design side to achieve that, since it's one of those long-term, no-immediate-return kinds of investments. If players are ALREADY creating narratives when we're doing things simply, why spend the time to make it real.

I guess I AM coming down on the side of emergence, but with some agreement with Adam, that very few of the individual interactions are in themselves "emergent", and it's usually the sequence that's the money.

Quick review of GDC: it was a good time, though somewhat sparse AI-wise. I enjoyed the one roundtable I made it to. I unfortunately missed Christian Gryling's Uncharted AI talk (the title made it sound like an animation talk! I guess it serves me right for not reading the abstract). I enjoyed Soren Johnson's Civ4 talk, though it was sadly devoid of any specifics of how they actually did stuff! Giving my talk was fun, though being scheduled in the last session of the last day is not cool. And I'll echo what I think I read above somewhere, that the AI programmer's dinner was great fun, though we missed our friends who couldn't make it!

I'd like to post some further comments on my talk material, in the next couple days.

Posted by naimad at February 28, 2008 09:53 AM

Are we getting back to the game designers/AI topic again? I think that's my cue!

I'll post a reply here when I have a bit more time ...

(PS -- Damian, it looks like it automatically put your comments into the "junk mail" folder; it does that with mine, too. I moved them out of the junk category, but it looks like there are duplicates; you may want to go back into editing mode and delete whichever is the incorrect one, if there's any difference.)

Posted by Paul T at February 28, 2008 10:56 AM

Damian,

Do you have any metrics on the life-span of your baddies in Halo 3? Probably not enough to warrant any serious emergent behavior. I liked what you did (as explained in your session) because it was more than an 'id treatment' of enemies. It lent depth to the opposing forces.

On the other hand, 'emergence' in the full sense, would have been lost in the shuffle. You were creating a different experience from Jeff in that you often had many enemies rather than simply a handful. No one would have noticed any nifty stuff with all of that activity going on. In F.E.A.R., the finer subtleties of what the enemy did was definitely noticeable.

BTW, make sure you get that memorial picture of you and Adam off my Flickr site! And, you can listen in on the other 2 roundtables at the link I posted above.

It was nice meeting you on Friday (although I think I will always associate you with too loud latin dance music now). See you again next year. (Drag Jeff along with you!)

Dave

Posted by Dave Mark at February 28, 2008 06:36 PM

Oh, I don't think emergence has anything to do with subtlety, whether in an individual or in a group. Indeed, I think Halo's large groups of AIs lend themselves very well to emergent situations -- almost everyone who plays recounts some "anecdote" at some point ("I did this, and then they did that, so I did this other thing and they responded by..."), and if the anecdote involves intentionality on the part of the AI in any way, then that is emergence, as far as I'm concerned. Unless I'm misunderstanding what you mean by "emergence in the full sense"!

The lifespan of our enemies is indeed short most of the time, though significantly longer for the higher difficulties, where, as has been widely noted, the AI always seems craftier.

Yes, I got the pic! It's very fun, thanks for taking it! :)

Posted by naimad at March 2, 2008 09:40 AM

Oooh, interesting discussion here since I was gone :) (not that I have much to add)

I've added all the AI notes from sessions I went to all here, and it made interesting reading the other sessions I couldn't make (Drake's, Assassins Creed and the AIIDE Sims talk), so thanks all who put them up!

Posted by Andrew Armstrong at March 2, 2008 02:22 PM

naimad... Or whoever you are ;)

Now that I finally spent some time with Halo 3 yesterday, I can see where you are coming from on the emergence issue. I believe that I had something specific in mind at that moment with regard to emergence - but I don't remember what it is. Obviously any reactive system, especially a multi-agent one, is going to have emergence (i.e. non-pre-arranged behavior). I have no idea where my brain was at that point. Likely still in a post-GDC coma.

Posted by Dave Mark at March 3, 2008 05:53 AM

Ok... I think it's time for me to enter the discussion (Thanks Dave for pointing me to this thread). One thing I have been thinking about lately is where we need more sophisticated AI vs. the scripted or animation-heavy AI. My conclusion is that the more life-like/human the game the more you expect of the AI... more so in military games.
Some examples here would be F.E.A.R and Farcry have enemies that can live for anywhere from a few seconds to minutes. Both of them can do very well with a planning-based AI. On the other hand we have Uncharted which is a fairly linear game in which a less free-roaming AI was ideal.
Maybe this falls in the categories of 'fun' AI vs. 'good' AI? I would argue it does.

Posted by Christian Gyrling at March 3, 2008 11:22 AM

Christian (et al),

My thought is that it almost has to be a hybrid approach. As humans, we have the capacity to think in multiple abstract steps - therefore the ability to plan. However, we also tend to react to immediate stimuli without a lot of thought. Really it is an extension of the "pathfind globally but steer locally" model. Steering behaviors won't get you out of the cul-de-sac and pathfinding breaks quickly in a dynamic environment. So you glue them together.

Alex started a similar thread over on his board along the lines of "Is lookahead planning really necessary?" I figure that the group on this particular thread will jump all over that. Dami...er.. naimad is already on the forums over there. I will make sure he notices that.

http://aigamedev.com/forums/showthread.php?t=459

Jorkin... your services may be needed in defense of planning over there!

Posted by Dave Mark at March 3, 2008 04:56 PM