April 4, 2005
I was really pleased with how the AI roundtables went this year, and the post-GDC moderator's ratings seem to bear out that Neil and I did a decent job. (Not easy with the nonsense setup they had at the convention center this year; more on that later.) In short the roundtables went great! Neil and I were both jazzed after this year. It was amazing talking to folks about what they’re doing and helping them to figure out what they might want to do. I came back re-energized, refreshed, and having more ideas than I reasonably have time to do them all. All in all it was a good trip.
The convention center itself is very nice and large but we didn’t use all of it. It’s also not nearly as well suited for our needs as San Jose is, in part because it’s all built to handle much larger crowds—the rooms were huge.
This greatly affected our first AI roundtables though. These were our most annoying ones thanks to (what I view as) the blundering of the GDC schedulers. Maybe they were just making the best of a bad situation with Moscone Center, but apparently the new convention center doesn’t have nice small meeting rooms like the San Jose convention center does. The GDC staff came up with two ideas to handle this (both bad I thought). Some roundtable rooms were in little office-wall partition like spaces they set up in bulges at corners of the main hallways near the big rooms, and others were in a huge room that they hung a curtain I wouldn’t make that up) down the middle to make it two rooms. Neil and I got the divided room and we both knew immediately that this wasn’t going to work at all….we’d be talking over each other and frankly I talk louder than Neil. We ended up combining our two groups into one of about 45 or so, which was definitely too big but at least everybody got to speak and hear (more or less). People who went to roundtables in the little partitions said it was even worse since there was a huge amount of hallway traffic for them to deal with—it was very frustrating for everybody. At least one group just migrated everybody down the hall to a more or less empty corner and they just sat on the floor to talk there—it was quieter!
The layout of the convention center also left a bit to be desired, at least for something like the GDC. Moscone West (where we were) is on three floors…the Expo was on the bottom floor, with the big meeting room on the middle floor and another large room on the top floor. The rooms with most of the lectures/talks/etc. were in a kind of U-shape around the big rooms—but you couldn’t walk through those rooms! That meant if you were out in the main hall and had to get to something that was, effectively, right on the other side of the wall…you had to walk all the way around all the other rooms on the U-shaped hallway to get there. Very frustrating and it led to many folks coming in late due to the length of the walk (and frankly you had a greater chance of running into folks you knew).
The post-GDC survey had places for folks to comment on the Moscone Center and what they thought of future GDCs being there. I sure hope that this idea went down in flames....
The food was about the same, perhaps one step up in quality from San Jose. While there were still silly sandwiches at least they were in a bag with chips and cookie ready to go…about the only big issue was figuring out what kind of chips were in what bag (they were just kinda random). The staffers were a bit "enthusiastic" about sodas though and were jumping all over people for taking more than one can (which is of course ridiculous--those sandwiches were dry). As speakers we could just get a second can back in the Speaker’s Lounge but most folks didn’t have that option. I know there were several complaints that the convention staff hadn’t prepared any better for our group than the San Jose staffers had-not sure what the GDC folks can really do about it though since both centers are unionized to the hilt. I've always thought that if they really, really want to do this right they need to just put 100 pizzas out on a table interspersed with huge bowls of salad—these are game developers after all.)
I'm just sayin'....
But I digress. The Expo was pretty darn neat and there were a ton of folks there….it was perhaps 50% larger than the one in San Jose. (I have no idea where they will put everybody when they go back to San Jose next year if the same number show up.) Sony had an enormous booth and were showing off their new handheld PSP, while Microsoft was basically showing off every upcoming and big game they had together with some development tools. All of the major book publishers were there and it was interesting to talk to them—sales over this last year had really taken a hit for everybody unless it was a major, hot book. Things were picking up though and everybody seemed to have a pile of books in development—some AI but more overall development-oriented books I thought. Companies seemed like they were a bit less free with the handouts this year but trying to answer questions and be helpful to the folks that stopped by. I thought it was all going well.
The Expo was definitely a notch more E3-like again than it had been the year before, much I’m sure to Eric’s annoyance. There were some genuine booth-babes at one display which they had carefully matched…every one had blond hair or had dyed her hair to be blond, and they were all wearing short blue hotpants and black blouses. And, of course, high heels. Not sure what they were selling…some kind of sound system I think…but they certainly drew a huge crowd.
There was one new AI group there pitching some middleware I’d never heard of, a group called XSG out of San Diego. Their tool is called the Northstar SDK and handles "…pathfinding, group movement, and collisions for thousands of AI agents…". That collision detection stuff is something a bit new compared to most of the others I thought. They seemed like nice folks and knowledgeable about their subject though I thought they were new to the game industry; I had the impression that they were mostly out of an academic area somewhere and might have been a bit overwhelmed by everything going on around them. Still, they were getting a lot of attention and their product came up a couple of times in my roundtables so I think they’re getting some traction. They’re pitching their product as a way for development to reign in costs (a popular topic at the GDC this time around) so who knows….this might be the year for Northstar and other SDKs to really get some serious attention within the various shops.
There seemed to be somewhat more AI sessions than at last year’s GDC and this was a good thing. Most of them talked about how they implemented the AI in their particular game, which is always kinda interesting since you’re dealing more with practical matters than theoretical ones that way. The first session I went to as called "Adaptive AI for Opponents, Teammates, and NPCs" and covered some of the AI designs that went into Full Spectrum Warrior (which, some may recall, my good friend Eric worked on a bit…some of this work had his stamp on it). They use an approach wherein they describe a bunch of behaviors and actions, then assign them to NPCs as needed. There was some discussion of cloning human behavior for your teammates and your opponents too…very interesting. They stressed reliability and repeatability a lot, though they also stressed how much your QA folks would probably hate you for this kind of design.
(On a related note, on the Expo floor I talked a bit with a company that was coming out with a new voice-controlled RPG called Spellcaster, in which you the player speak the words of your spells into a mike. Very interesting, and like the session I just described reminded me a lot of Eric’s work with Rebel Moon Rising. )
Later that day I went to a big presentation about the HALO 2 AI, and it was pretty neat. They used a rules-based system which added or removed rules dynamically in a manner similar to SOAR, but more flexible. Using this approach there were around 130 behaviors in total with any one AI accessing about 80 or so. They weighted behavior with relevancy to the situation and chose from them dynamically based on the activation criteria registered by each behavior when it was loaded. Individual behaviors were marked as to whether or not they could be interrupted so that AIs didn’t flail around between behaviors, and some had higher priorities if they were urgent (like returning fire or getting under cover). Very interesting.
The second day at the GDC started with an interesting talk called "Virtual Humans: Advanced AI to Create Characters that Thinks, Feel, and Talk". It was pretty neat though it seemed to have a lot in common with the Full Spectrum Warrior-related talk I described above. It was interesting in that they were trying to provide military trainers for soldiers aimed at handling particular situations, such as when an American jeep on the way to a riot accidentally hits a child. How to handle the situation, and what kind of FSM/FuSM setups were intrinsic in the NPCs was very interesting….their program used a voice interface so that the NPCs could pick up on the tone and words of the soldiers and react according. (So if the soldier was a real ass they might get angry, whereas if they were scared they might get threatened, etc.) The whole approach reminded me a bit of SOAR in that it felt a bit clunky and slower than one would want for a game proper, but the techniques were interesting.
An interesting couple of sessions! The first was something called "Using a Goal/Action Architecture to Support Modularity and Long-Term Memory in AI Behaviors"…a huge name for what was really a pretty neat talk. It was really more about the AI design for SWAT 4 and Tribes Vengeance than anything else and I learned a lot. I didn’t know for example that these two games used the exact same AI engine at their core, something called Tyrion. It was another well-designed goals/action/resources kind of engine, with goals selected by the AIs and resources claimed to achieve those goals. Actions resulted in behaviors and particular ways to go about making things happen. Much like with HALO 2, the AI agents could swap in new goals as they went and discard obsolete ones. The whole system was message-based (which the developer highly recommended) and goals were prioritized. They stressed that the various agents at each level of the game—team, squad, vehicles, drivers/gunners—didn’t have different AI levels, just different suites of goals they could chose from. It took them about 16 months to develop Tyrion and they ended up with around 50 behaviors overall. It was pretty neat.
Another session late in the day about the AI in the game Killzone, but I missed it completely…I was on the Expo floor running around. Sounded good though from the folks I talked to about it.
The last day: There were several fun sessions. The first was entitled "An Orwellian Approach to Game AI", which really wasn’t quite what it sounded like. The "Orewellian" part of his design dealt more with having a centralized "dispatcher" that collected information on status and resources from all the other AI agents and then assigned each one goals. Every agent automatically knew what resources had been allocated to a given agent, and the dispatcher prioritized goals so that agents wouldn’t fight over things. Individual agents didn’t really know much about each other except when they needed to work together on some goal. As near as I could tell the whole thing was a standard FSM structure with messaging, and I couldn’t really see what game (if any) this had been used in yet. It had rather an academic feel to it, but otherwise was proposing very similar approaches to some of the previous talks at the convention. (More on this later.)
There was another AI Interface Standards meeting after this talk but I couldn’t make it. I think I was browsing around the Metreon at that time looking for possible gifts for my brother and lovely wyfe Colleen. Cool place, the Metreon...wish there was something like it near me!
The last AI session I went to (besides my roundtables) was what they were calling a "Poster Session" on the subject of State Estimation for Game AI. It was basically the work of a college student wherein he proposed using a particle filter to estimate where enemies might be in a first person shooter…a single particle was placed in each location where an enemy (now out of sight) might have moved to. The spacing was increased over time if the AI didn’t get updates or check a given area out, and particles were "released" for placement elsewhere as potential areas were checked out. You could increase or decrease the "smarts" of the AI by modifying the number of particles he had available to "speculate" with. Very interesting stuff, and fairly impressive speeds for his calculations….he seemed very pleased when I told him, "Good work" after the presentation.
There were two other AI sessions at the tail end of the last day that I utterly missed, since most of us broke to head back to our hotels to get ready for the AI dinner. Don’t know anybody who went unfortunately so I’ve no notes to report there.
Without a doubt the funnest session (though not AI related) was on the last day. Entitled "Burning Down the House: Game Developers Rant" it was a tour-de-force of a half-dozen developers and designers essentially bitching about things like forced overtime, poor pay, bad royalty and bonus arrangements, etc. It was based in large part on the recent lawsuit against Electronic Arts (they had some folks there who were very, very quiet too) and in part on the recent IGDA white paper on Quality of Life issues. The room was absolutely packed, people cheered and clapped, and the whole thing was undoubtedly very, very scary if you were in any kind of management. Personally I think the industry is very likely to move towards some kind of union model rather like the movie industry—I don’t necessarily think this will be a good thing but I do think it’s coming. A lot of developers are pissed at how they’re being treated.
Far and away the highlight of the GDC for me happened back on the afternoon of the first day, that being the Game Design Challenge. The challenge to three developers/designers was to design a game based on the works of Emily Dickinson, believe it or not. The designers were Clint Hacking (Splinter Cell), Peter Molyneux (Black and White, Populous), and Will Wright (famous for about everything). They’d been briefed on this a couple of months prior so they’d have a chance to ponder and design.
It was amazing to watch what these guys had come up with! Chris went first and described a game in which the player would be presented with one of Emily Dickinson’s poems and them guide her character around her home town, Sims-like, to "collect" ideas that related to the poem. When you gathered enough ideas the program would "write" a poem based on those ideas and grade you on how close you got to the original. So, if a poem was about a stately oak tree in the summertime, you’d have to wait until summertime and have to direct her wanderings through the local park so she would spot the big oak tree and muse upon it. The program would also make a little movie to match your poem, and you could share your movies up on a web site so folks could take about the whole thing, offer clues on writing poems, etc. Very neat idea…
…but not nearly as neat as Peter’s. His idea was that every poem basically painted a mental image, so he would provide one of her poems for your perusal. You the player would have to create a picture representing the poem using what he called "digital clay" in the house of Emily Dickinson (there are plans for it on the web, I guess). This clay could be stretched and molded, pushed through mirrors to reverse, etc….when you got it into a shape that came close to matching something in the poem, the game would "snap" it into the object in question and then you could arrange it with other objects to make the final picture. Very innovative, and the digital clay was fun to play with. Everybody gave great applause and thought it was a superb idea….
….until Will stepped up and showed why he’s the King. His idea was to build a cross between the EA game Majestic (which would call you, email you, etc.) with the annoying Microsoft Paperclip from Word to create a Virtual Emily. To get market share he would embed VE into USB memory sticks…just plug it in and it would be active. He showed all kinds of fantastic uses and applications—she would pop up and say, "I see you’re writing a letter…may I read it?" and then comment in some flowery Emily Dickinson prose about the letter. She would email you love notes, comments on the time of year (by accessing the calendar), etc. She could develop new poems based on her previous ones and then read them to you, together with little movies she developed by matching key words from the poems to Google picture searches. Fantastic! Even better though, you could develop multiple personalities…Einstein, Stalin, Poe…and plug them all in and they’d talk to each other! It was fantastic, and Will got a standing ovation at the end….his design was simply amazing.
Let’s see…what else? The 2005 AI Programmer’s Dinner was a lot of fun. We had just under 50 people (the full 50 registered but a couple never showed) across the street at the Metreon. The food was excellent, there was much talk about the GDC, San Francisco, and game development in general. We raised a toast to Eric at the beginning and a few folks said a few words about him being gone but it was good, not depressing. The whole get-together was a great deal of fun and everybody had a good time.
It's late after the dinner and I'm just winding down before hitting the sack and heading back to Colorado tomorrow. I mentioned earlier something about AI designs that I noted at the GDC and I wanted to get into it more here. I was struck by how the major talks I attended had all essentially boiled down their AI designs to the same basic structure:
I think this is a positive indicator of a growing maturity in AI design. There simply wasn’t any talk of pathfinding, or the benefits of agents, or FSMs vs. FuSMs…all of the talk was about building a good AI engine that would provide value over several game iterations. I think this might be the kind of stability that is needed for AI middleware to have a chance of catching on as well. There’s simply no point in looking at such tools if you’re constantly designing a new engine. On the other hand if you’ve got an engine you like and plan to use over several projects, this automatically brings with it engineers dedicated to this software package and makes them more inclined towards looking at outside sources for enhancements. I think this explains what I was seeing as a slowdown in game AI development…in retrospect I think it’s more of a "maturing" than anything else.
This all also tells me that the focus of some of the books in the industry (such as the Gems series) needs to change, and I talked about that a little bit with Steve Rabin. When we go to do AI Game Programming Wisdom 3 I plan to help select articles with an eye towards this very feature—I want to see more engine-related and design stuff, not just another pathfinding article. Should be interesting.