AI Roundtable Moderator’s Report

2002 Game Developer’s Conference, March 21-23

Steven Woodcock

NoSpam_ferretman@gameai.com

 

Background

Neil Kirby, Eric Dybsand, and myself have had the honor of moderating a series of AI roundtables at the Game Developer’s Conferences for the past six years. These roundtables grew out of a sense of frustration at the 1996 GDC when we found ourselves shut out of AI session after AI session. Further, the sessions we could get into were packed to standing-room only capacity and just plain uncomfortable. Knowing that we could do better and that the field seemed ripe for greater levels of discussion, we submitted a proposal to the GDC folks for a series of three simultaneous roundtables. The idea was that with these sessions we would both accommodate the massive numbers of people who seemed to want to talk about the topic and be able to focus the sessions on problems developers were facing day to day. GDC agreed, and the GDC AI Roundtables were born.

This year’s sessions followed essentially the same format as the 2001 roundtables did. Day One focused on general AI topics—whatever the attendees wanted to discuss. Day Two broke up the roundtables into specific topical areas. My session focused on wargames and strategy games, while Eric’s was aimed at RPGs and Neil’s discussed FPS games of all types. This devotion of sessions to specific arenas of game development were intended to help satisfy attendees who had questions or comments specific to a current project, which might otherwise not come up in the more general sessions.

Day Three changed the format slightly with a combined roundtable we dubbed "AI for Newbies". In this session we attempted to address the needs of developers new to the field of game AI who often didn’t know where to start. We also tried to reach out to artists, producers, and others involved in the game development process who were interested in the field of game AI but who really didn’t know much about it. Our hope with this session was that we would be able to both help developers new to the field and aid in bridging the "understanding gap" that can crop up between AI developers and others on their team. Several more experience AI developers assisted in answering questions and providing examples of why a particular technology or problem was good or bad based on their real world experiences.

Overall the sessions went very well and seemed to be quite popular. The following are notes from the sessions that I moderated. Neil and Eric's moderator’s reports can be found online wherever the reader found this report.

Thursday, March 21st

We kicked off the first session with a bang, all things considered. The session was well attended with 24 people representing a wide variety of experience, from folks who had worked on big titles such as Empire Earth, Kohan and MOO3 to writers (such as myself) who had done articles for the Game Programming series and AI Game Programming Wisdom.

As in previous years I asked the attendees about their resources for game AI and the number of developers per project. Twenty of the 24 attendees were actual game AI developers, two of the remainder represented the academic community, and at least one was there purely to learn about techniques that could be useful in military simulations. We also had representatives from two different AI middleware/SDK vendors (more on that later), which sparked some discussion later in the roundtable.

Average CPU utilization was somewhat down from previous years, though everybody thought they had plenty of resources::

Average CPU Utilization

Number of Attendees

1 - 5%

4

5 – 10%

4

20%

1

15 – 40%

3

50%

1

5 – 60% (varied by game need)

2

100% (turned based games)

1

Didn’t Know

3

Every developer reported that they had plenty of programmers dedicated to working game AI:

Number of AI Developers

Number of Attendees

1/3

1

1/2

2

1

8

1 1/2

2

2

6

A brief discussion of why there seemed to be fewer developers with lesser CPU percentages ensued. For the most part developers seemed to feel that overall CPUs and graphics cards were incrementally faster than in previous years and that they thus had more cycles than previously. The number of programmers dedicated to game AI was roughly the same as in recent years, though it should be noted that the turn-based strategy game folks reported both more available CPU (100%) and more dedicated developers (anywhere from 1 to 2) than other developers did.

The roundtable covered a huge variety of topics:

(In a subsequent roundtable I found an experience on the part of the Halo developers most interesting and somewhat related to the issue of difficulty levels. The Halo folks found that players tended to equate greater intelligence on the part of the AI with greater hit points on the part of each individual enemy, and think the AI was dumber if units were easier to kill. This was true even if the AI used exactly the same tactics—if they were tougher the player thought they were smarter.)

This list definitely is not doing justice to the wide variety of topics discussed but it was difficult for this moderator to jot everything down! The session ran a few minutes long with the discussion going strong on several fronts. It was difficult to keep up with things at times!

Friday, March 22nd

The sessions on the second day focused in on specific areas of game AI. My session covered RTS games, wargames, and strategy games in general.

The room was overflowing with 37 people attending and we started a few minutes earlier as a result. We started quickly and as the roundtable progressed there seemed to be two main themes of conversation—implementation of AIs that could handle diplomacy and implementation of personalities.

Diplomatic AIs and the problems of building them were something not often covered in previous roundtables. Engaging the player in a believable "give and take" of positions and moves that one gets when playing with many humans is something that current AIs don’t do very well. This was of particular interest to some folks present who were very interested in building computer opponents for the old Avalon Hill boardgame Diplomacy—it depends heavily on how you can convince your opponents to support your moves towards winning. Many topics were touched upon:

The other major topic was implementation of computer AI personalities, making the AIs seem "real and human" by having them act in a consistent fashion. Nearly all of the developers were already doing this in one way or another and thought that a wide variety contributed greatly to replayability. The discussions here tended to focus more on neat tricks and enhancements than anything else:

As with the previous day’s sessions we were going strong when we hit the end of our time, and it was clear that there were many other issues that could be discussed. Some of these spilled over into a later Strategy AI Roundtable the next day.

Saturday, March 23rd

Day Three was another "AI for Newbies" session, following up on the popular format we began in 1999. Neil, Eric, and myself combined our separate AI roundtables into one large session devoted to helping folks new to game AI get answers to their questions. The session had right at 42 attendees—up from the similar 2001 session, but in line with the convention averages. The room seemed to have just the right amount of people for a good "give and take" session.

In order to help facilitate the discussion we had put together a handout with pointers to references on a variety of the most common game AI topics. This seemed to go over fairly well with the attendees sparked some of the questions from attendees..

Neil and Eric moderated while I took notes on the whiteboard (thanks to the GDC staff for providing that!). What follows are the questions I got onto paper together with the best summation of our answers (and related discussion) I could get down:

A great question that reflects just how far AI has advanced. We’re now kicking around how we might standardize AI interfaces in order for the H/W vendors to possibly build a specialized board (Alexander Nareyek had an excellent roundtable on this earlier in the day). Three or four years ago that was just plain unthinkable.

It would be great to have H/W that would do more association. Line-of-sight calculations in H/W would be wicked fast if there were some way to pull it off. Beyond that, it was clear (especially from the session earlier in the day) that game AI just wasn’t standardized enough yet for H/W (beyond faster CPUs) to help us much.

Well, everybody uses them because they work. More than that they’re quite debuggable. The "software" AI technologies such as Neural Networks (NNs) and Genetic Algorithms (GAs) have a lot of issues, among which are they’re unpredictable given a particular test case. Your QA guys will kill you if you make them test that.

Beyond that, scripting is very popular but can be fragile. Some games (such as Kohan, Jak & Daxter, and Halo) have AIs that are heavily scripted and that work best when the player behaves as expected.

A good way to make your FSMs and FuSMs more flexible is to investigate Brook’s subsumption architectures. This is basically an approach in which one dos not build one or two giant state machines to consider every option; one builds small, single-purpose state machines to handle specific tasks and layers them to interact with each other. This allows for all kinds of unexpected yet testable behavior and has been used very successfully in a number of games. Decision trees (having multiple options and choosing from them randomly) can also work well and be very hard for the player to spot.

NNs and GAs can cost $$$ both in testing and development costs.

No, not really. There are a few games that use them successful—Creatures, BC3K, Black and White, a couple of racing games—but they’re few and far between. Nobody lets their games out the door with the "learning" part turned on since it’s just too dangerous—there’s no way to allow for unsupervised learning ultimately making your AI turn into an idiot.

Great question and something we often overlook when we’re thinking about our game designs. This is also where we in the game community have somewhat misled our academic and military cousins, as our needs are different. Our AIs usually only have to be smart for five seconds or so—that’s the average life-span of an enemy unit of some kind in most FPS games, for example.

It’s easy for programmers to think that they have to beat the player, when their real goal is merely to entertain and be challenging. It’s easy to do too much and forget that advanced AIs are not always more fun—sometimes all the developer has to do is make things a little harder. The Halo guys provided a good example of this when they noted during playtest that players tended to equate greater intelligence on the part of the AI with greater hit points on the part of each individual enemy, and think the AI was dumber if units were easier to kill. This was true even if the AI used exactly the same tactics—if they were tougher the player thought they were smarter.

Remember too that players will not get subtlety—they just will not understand it. If an AI’s actions are hard to understand or don’t make sense based on what the player can see he’ll think it’s dumb.

Whatever works best! :)

Actually, players expect intelligent, believable, consistent behavior on the part of the AI. So long as its decisions are rational you can get away with tossing dice behind the scenes all day long.

Virtually everybody uses C and C++; those are the tools we have at the moment and it’s the reality of the business. A few games use Visual Basic. LISP is more a favorite of academics and rarely used by game developers, though the AI in Halo makes heavy use of LISP scripts.

Well, not really. The problem is that if the server in a multiplayer game handles all of the world stuff, while the AI resides on the player’s machine, you leave your game open to cheating. Having enough bandwidth is also a problem, as is data locality—your AIs spend a lot of time working with outdated data.

Perfectly doable and in fact many games depend on this for their layered AIs but you’ve got to do it smart. Line-of-sight checks, for example, can interfere with scalability unless you make smarter simplifying assumptions in your design.

Decoupling the AI from the main game loop helps, and you can further build your AI so that portions of it update at different frequencies or only when something interferes with a plan.

There are many in development that are trying some new ideas but most currently out there cheat like crazy. Most use pathfinding of some kind to find their way around the tracks, but none of them think much about long term goals or anything. "Give the player a good race" is the motto of most racing games.

Well that’s a matter of opinion (much laughter here). Black and White does a great job of learning and uses NNs. Halo is a great example of combat AI and mission scripting. Age of Empires 2 and Thief are good examples of tactical and stealth AIs. Falcon 4 probably handles flight and air combat better than anything overall.

Very few folks are using the more exotic technologies for the reasons covered in Question #2.

AI middleware (or toolkits or SDKs) have gotten popular as a topic over the past several years and there are some interesting solutions available. In general they’re still a hard sell to management, in part because of the infamous "Not Invented Here" syndrome. For many games (such as sports titles) the AI is one of the main discriminators and so it’s very hard to get either developers or management to turn the task over to middleware.

Nobody present was using middleware though there were a couple of vendors in the roundtable. Biographic Technologies had an updated Maya plug-in named AI-Implant (formerly known as ACE) while a new player named Mindlathe was offering an AI engine named Pensor. They were all too new for anybody to have considered using them yet.

It’s possible that AI middleware won’t gain widespread acceptance until some common specifications for game AI (possibly a standardized interface) evolves. The acceptance of other middleware products, such as the Havok physics engine, will help get developers and producers used to the idea.

We touched on this a bit earlier in Question #4. Beyond that there are some things to investigate. Flocking/swarming techniques can help you with your formation movement and getting around obstacles. Steering behaviors (an offshoot of flocking) can also help when setting short-term goals.

Great question. Fortunately most of the more experienced developers present seemed to have the same general sense of things here.

Games in general will feature less scripting on the part of the developer or designer and more sophisticated actions on the part of the game’s agents. AIs will make heavier use of layering and perform more strategic planning with less emphasis on templates. We should also see better tactical coordination among AIs and their individual units than we’re seeing now. There will probably continue to be very slow investigation and adoption of the more exotic AI technologies.

We should also see more text-to-speech and speech recognition built into game AIs in the future as developers seek to make the experience more realistic. This still sucks up a lot of CPU cycles, however, so progress and demand will be slow.

Human capabilities may well be something of a limiting factor when it comes to what game AIs do. As has been noted in previous roundtables, there’s no point in doing something that the player can’t see.