AI Roundtable Moderator's Report

Steven Woodcock

swoodcoc@concentric.net

Wednesday, March 17th

My first session of the conference was attended by 35 people, a huge increase of previous CGDC first-session turnouts (25 in 1998, 29 in 1997). Every seat was filled and a few attendees had to take wall seats. A quick survey revealed that five of these attendees counted themselves as "newbies", a surprisingly small percentage when compared to previous years. (This was a trend that held true throughout the conference; it is apparent that industry interest in good game AI is increasing rapidly.)

I began by discussing why we had scheduled "topic specific" sessions for Thursday and an "AI for Dummies" session for Friday, then invited anyone who was interested in coming to our Second Annual AI Programmer's Dinner (scheduled for Friday the 19th). With this bit of business out of the way, we got down to discussing AI topics of interest. Over the course of the hour the topics ranged widely:

Discussion on these topics was most interesting, no doubt due in part to the large percentage of experienced developers present. A number of remarkable points were brought forth by the group at large:

Thursday, March 18th

My second session was billed as being a "theme" session focusing on wargames and real-time strategy games, and it was packed to capacity. A whopping 44 people arrived for the session and we had to turn away several after the roundtable began due to lack of space; seven people rated themselves as "newbies". Several people had to stand throughout the hour, though nobody seemed to mind it due to the extremely energetic nature of the discussion. The room filled up so quickly that we began 15 minutes early…….topics were suggested almost immediately and our discussion went non-stop until we ran out of time. This session was the most difficult to control because of the sheer pent-up energy that seemed to infuse everyone present; these people really wanted to talk to somebody about their AI issues!

Our topics ranged all over the map, but the most significant were:

The level and energy in the discussion was amazing; Eric has used the term "horse race" in his report and it's an apt description. Developers were tripping over each other to speak, and every comment raised three or four more. Some of the comments coming out of the above topics included:

Friday, March 19th

Our third day featured our specialized "AI for Dummies" session. Originally proposed to Miller Freeman for a panel format, it was billed as a roundtable (obviously not the best format for this kind of presentation). Due to the relatively low turnout that always marks the last day of the conference (we had only 33 or so attendees), Neil Kirby and I combined our sessions while Eric led a spin-off roundtable of AI experts. Of our 33 attendees, fully 25 identified themselves as "complete newbies", and several were producers or other non-programmer types. We had four or five experts in the session, which greatly helped our Q&A format. Neil conducted most of the moderation while I took real-time notes and offered various references, web pages, etc. where more detailed answers to various questions could be found.

Being a Q&A style of session aimed at developers new to game AI, we tended to discuss topics in a broader, more instructional style. Some of the questions we fielded included:

Q: How do I calculate the CPU my AI is using?

A: Several tools are available to calculate CPU usage, including Intel's Vtune and the Windows timeGetTime() and QueryPerformanceCounter() timers. Most console platforms had some form of debugging tool that could compute CPU usage as well.

Q: What are threads and how are they used for game AI?

A: Conceptually threads are independent programs that share memory space with the main program. Many developers use threads in order to make the AI more independent of, and less intertwined with, the rest of the game. They're very good for ensuring your AI and your game physics are in sync.

Q: How do I avoid doing lots of physics or AI calculations on objects or units that aren't anywhere near the player?

A: Your graphics guys have had to worry about not wasting processing on distant objects for a long time. Ask them how they do this quickly; the same techniques can be used to partition your AI processing.

Q: How do I handle the conflict between game designer and AI programmer?

A: Good question! Designers need to understand that the AI developer needs a fairly stable game platform before he can really focus on building a good game AI, while the AI developer needs to realize that the designer needs to see behavior early in the game's development so he can modify the design as necessary if things aren't working out as envisioned. "Bad" features that are very difficult to implement need to be identified as early as possible in the development process. The best thing the AI developer can do is to build incrementally rather than trying to add every feature at once. The best thing the game designer can do is to clearly define what he wants the AI to do, and give the developer time to actually do it.

Q: What technologies/methodologies are AI developers using to build game AI?

A: Everything, though the most commonly used techniques are rules-based, finite state machines, and fuzzy state machines. Techniques such as neural networks, genetic algorithms, etc. are all great in theory but not often used in practice (and certainly shouldn't be attempted by someone new to the field). Several developers present suggested that books on game theory, dynamic programming, and probability theory could be very useful at generating ideas for fledgling AI developers.

Q: What kinds of games are hard to do AI for? What kinds are easy?

A: It's never "easy". RPGs are often the hardest to develop good AI for, due to the need for believable "conversational" AI; developers would do well to steal ideas from MUD "chatter'bots" and the classic Eliza program. Real-time strategy games are also tricky due to CPU restrictions. Sports games are tough because if you get anything wrong, 100,000 angry fans will write in to let you know. Boardgames with known, fairly simple rules (chess, Risk, etc.) are fairly simple by comparison, as were nearly any turn-based games (you get tons of CPU).

Q: Is cheating okay?

A: If it makes for a better game and the player can't catch you doing it, yes!

Conclusions

Attendance in all our roundtable sessions was up significantly from the 1998 CGDC sessions (236 vs. 190), indicating an upswing in interest in good game AI across the industry. The variety of topics and depth of discussion increased significantly from last year, driven in part by the apparent easing of CPU restrictions for most developers (thus allowing them to indulge in more detailed approaches). The roundtables seem to have become a very popular GDC feature.

The topic-specific sessions on Thursday and the "AI for Dummies" panel session on Friday were all very well received, and we got several specific requests for a similar format next year. While Neil, Eric, and myself are still kicking around ideas on the subject, we're generally in agreement that the "Dummies" panel probably needs to be broken up into parallel sessions aimed at programmers and non-programmers respectively. The success of Eric's "Experts" session on pathfinding indicates a need for sessions focused on that segment of the developer community as well. We'll be giving serious thought to these requests as we think over our proposal for GDC 2000.