GDC 2004 AI Roundtables Moderator Report – Eric Dybsand
Wednesday, March 24, 2004 – General Topics in Computer Game AI Roundtable
We had 26 people in attendance. Few of these folks were AI programmers. Most were tools developers, students, physics, lead developer, researchers, professor of AI, military simulation developers.
"What are the main issues facing computer game AI programmers in 2004" was the first question posed to the group. The immediate response was to get more resources. Adapting advanced PC techniques to console world. Providing tools for designers and non-technical people. Other issues were looking for what can be done now and in future in game AI. Managing narration or drama in story-telling – creating an adaptive story. Balancing non-determinstic AI vs. scripted events and cut-scenes.
Adaptive story. One attendee suggested that this is a control structure issue.
Autonomy vs determinism – try out autonomy and then curtail behaviors not desired. Problem was raised of how to blend it successfully. It takes lots of tuning to do that. Too much autonomy can lead to misperception by the players. Side-effect behaviors could be used to indicate some form of cue to the player. Truly non-deterministic AI with current game’s animation requirements is truly hard to do. Autonomy can lead to characters being off on their own quest when they are needed to pull the story along.
Thinking state. Is this a reactive model or more of an internal motivation and planning? Most programmers felt their AI was reactive, stimulus – response. Hand signals used to offer a cue to the player that the AI is thinking. Level of "training" as an attribute, is another consideration that shows the agent is thinking. Using a nervous "tick" was suggested and discussed.
Encoding intelligence into terrain or art, may not work for some applications.
High level tension planning was asked about. More narrative games mean that the tension is part of the story. Directing the flow of the story is not really AI.
Try to not make AI code complex. Keep it as simple, triggered behavior.
Emergent behavior is the coolest form of behavior. Several examples of what it might be, to different people, were offered. Generally, it was agreed that emergent behavior was behavior that was not actually coded, and that the behavior unexpected and was intelligent (or beneficial to the game).
What is wanted is "simple state machines" that producers/designers/customers want, so that control can be exercised. Other architectures mentioned are subsumption, blackboards, goal-directed behavior. Emergent behavior is problematic in a single agent, but not so in multiple agents or systems. Coding FSMs by hand was suggested as being painful. One alternative offered was to generate the FSMs dynamically from the agents goals and constraints of the world, producing control structures. The military guys were doing this and would not go into details.
A certain continuity is needed to get superior computer game AI development. Game development projects are short (up to 24 months) and many components (physics, engine, requirements) are changing during the project. This makes AI development hard.
Blending activities for action selection. Steering behaviors is cited as one fine example.
The "fun" component is still the most important, and the goal of computer game AI. The "interesting" behavior must come second to that.
Designers need to have control, and the ability to constrain AI, and thus limit emergent behavior. Priorities were suggested as a way to exercise control. Priorities are difficult to manage in complex systems with competing needs. Even after exposure to allow users to change them. Allow flexibility in models used by AI programmers so that 3rd party content developers can expand the game more easily.
It was suggested that customers are unhappy in games. Customers want a challenge but still win. Players want to prove they are smarter than the AI. However everyone was reminded that producers and publishers are really the customers of the AI programmer. And they may have different needs than the typical game player. Rubber-banding was suggested as a way to make the customers happy, by constraining the NPCs performance (race game analogy), multi-speed health bars (go faster at the start, slower later in the game), having the bots get more (or less) accurate as the game goes on.
What is needed by AI Programmers: more development time, larger budget, more CPU. Under 10% for most games, MMPOGs get more CPU, simulations generally get more CPU.
Thursday, March 25, 2004 – AI in First/Third Person Shooter Games Roundtable
We had 24 people in attendance.
"What are the main issues facing game developers in FPS?" – A mix of 1st and 3rd person shooter developers, those who wanted to learn what the issues were.
What knowledge the NPC has of the world.
Persistence of the agent effects whether the agent should learn.
How does a NPC be fun if it lives only 5 seconds?
Players expect more complex behavior the longer an NPC is around.
Shell shock effect, getting flustered/confused. How is this distinguished from AI Stupidity? SSE happens because of events. Expect AI to get stupid when under fire.
Getting low-levels behaviors that are always going, can be useful. If they support the higher-level goal. Subsumption behavior.
Emotion based system that takes into account stress. Modifies goals based on stress levels. Takes CPU resources. Personality types, with an accurate distribution of traits.
NPCs that speak to the player are considered more intelligent.
NPCs doing things, and the player does not know what the NPC is doing. Improve the perception by using cues (hand gestures, statements). LOS also used to distinguish NPC characteristics.
Panicked AI. Has pathfinding badly been used to suggest panicked state? Some developers have.
How to make sure that the player sees the behavior? Anything done out of sight, is not providing benefit to the game.
Synchronization in a multiplayer FPS is an issue. State being maintained, has to be accurate across clients in a client/server game, otherwise it can cause AI to calculate differently. Hence, many games have the AI on the server.
Goal oriented action planning. In some games, player takes place of planner. Short term goals are often left up to the AI to plan. Clearing a room, crossing a bridge. Combinatorial explosion of options make it difficult to do high level planning.
Biology is cited as being useful for studying low level behavior.
How does action planning work with telling a story? Must turn off AI, go into scripted behavior to perform the "lines" of the "scene", then turn the AI back on to allow it to be reactive when needed. Designers want scripting hooks into the NPC’s state machine.
Pre-canned scenes that were pre-written and shuffled in when they can happen.
Any multi-threading of AI going on? Yes, several game developers rely on multi-threading to allow parallel processing. One thread for each agent, a separate thread for the squad, with shared address space. Helps with cooperation. Common brain for squad goals, yet individual brain for troops. Helps to get back resources because of information sharing and scaling decisions.
Distributing AI processing off to client machines was discussed as a solution to get more CPU resources. Communication is a big issue. Latency and bandwidth will be obstacles to effective distributed AI.
Be careful of using learning mechanisms, because agents may learn something other than what the developer is intending.
Are genetic algorithms used to developed strategies? Learning takes place in testing and development just by testing feedback and bug reports. Useful if the action set is small. Takes a long time to get good results. Learning is not always a good thing.
How do we handle AI when there is no central brain? Some issues, combinatorial explosion of what can be done, CPU resource are not sufficient, coordination is very difficult, more homogenous the bot then the easier it is. When there are multiple types of bots, the explosion of options is prohibitive.
Using blackboard systems for coordination. Problem if no definition of what is to be solved. If it is simple, communication is possible.
Where do we put scripting? Always a question of hard-coded vs. data. Which is best? Expose as much functionality as data. Increases replayability?
Friday, March 26, 2004 – AI for Beginners Roundtable and Interactive Discussion
We had 44 people in attendance.
For the 4th consecutive year, we have tried to hold a roundtable/panel session for people who are not AI programmers and are not knowledgeable about computer game AI, for the purpose of allowing them to pose "dumb" questions about computer game AI topics and get answers. We had hoped that this would be a venue for non-programmers, artists, producers, designers and management to learn about computer game AI without being dominated by discussions carried on by AI experts.
Three quarters of the attendees that came to this session were expert or above level and so this year’s session was weak on "dumb" AI questions. Nevertheless, the discussion was still interesting, and those few "beginners" to AI who were present did manage to sneak in a few low level questions.
Game AI is much less ambitious than academic research. Are there any examples of where hard AI is used in games? One example is Black and White, Creatures.
Any time a decision is made in a game, it is considered AI.
A lot of academic algorithms are too slow. Game AI has limited development time as well as execution time. In MMPOG there is a chance to make a decision and apply it over time.
Predictability is very desirable in a game, and academic AI tends not to be so.
AI of NPC operating on separate servers and logged in just like any user.
One developer suggested that academic AI was tried and not found useful.
Games like GTA and military simulations offer the opportunity for less predictable AI.
Client systems could be used for off-line processing.
Is there a pattern classification system that works with a rule-based approach? Empire Earth was cited as one that did. It would look at the map of the world with terrain analysis, and then major part of the AI was an expert system. In language parsing for NLP use, one developer uses an Augmented Transition Network and if that fails, a general pattern matcher is used. Another developer cited a high level AI that made strategic decisions, and then lower level AI for carrying them out. Autonomous robots for exploration use multi-level AI, which combined high-level decisions with low-level scripting. Script was the most inspired behavior when it was the right thing to do.
Determine choices initially? Every item in the environment broadcasts needs that can be satisfied. Goal directed behavior was offered as a solution. Can model AI using psychology goals and needs. Based on needs defined for the agent.
What would AI developer do if granted a separate processor? One developer suggested behavior modeling. Another suggested that the amount of data would be large, and that determining the search space would be hard. Bus bandwidth would be a problem.
Percentage CPU 10%. One example of multi-threading claimed up to 50%. One developer suggested that multi-threading was very hard to do. Counter point involved main thread running the main game, then other threads are run under control of the main thread.
Is it possible for AI characters to represent absent users in a multi-player game? Rules of Engagement is used as example. One example of diplomatic AI offered was Civilization. The more human the surrogate much be, then the more difficult is the problem. AI characters will do things that the original user may not have done. One system had an AI that ran while the user played, and attempted to learn the user’s style by monitoring his responses to the events in the game. Another suggestion was to set bounds of parameters for decisions that would be followed by the AI when it made those decisions.
Getting into game AI, where technologically speaking, what is commonly the starting points? What is expected to be known by a candidate.
Are any standard libraries being used? Opensteer is mentioned and the AI Standards Committee was mentioned. Commercial libraries like AI.Implant was mentioned. The review on gamasutra of AI Middleware was mentioned.
Is it common for bots to use evolutionary algorithms to develop strategy? One game had to actually shut its AI off because in the beta test, it was too successful. Another game developer found that a learning AI would develop unpredictable strategies. Most games are not shipped with any learning enabled. Several developers mentioned that they were considering using it, but found that figuring out "why" a learning AI was demonstrating certain behavior, created a problem. Tweaking a learning AI so it did not get too smart or too stupid was acted about. Is this a chance for the AI to learn an "exploit"? Madden 2003 Football was cited as an example of this happening from a player’s point of view.
The goal should be to have an AI evolve to be more fun and not smarter.
Compromise the learning, allow it to get smarter up to a point (rubber-banding) and then rein it in.
Agent AI. The world is comprised of agents that have their own perceptions. Depends on the genre. With thousands of agents, then FSMs are all that can be afforded. No game has the true agent with the exact same type of input as the player has – ie there is no visual recognition occurring in a FPS. This is because of the CPU cost. Games have to cheat to do more and get better gameplay. Believability is desired, and requires a lot of data to do so. Grouping agents is cited as an example of getting better agent behavior.
Predictability requires a common random number seed. Testers love complete logging.
What has been the most significant advancement in AI over the last few years? Increase in CPU, increase in number of AI programmers. More effort has been made to explain the language of AI to non-AI members of the industry. Pathfinding is solved!
Next big thing in AI is AI hardware was suggested by one developer who sells AI hardware. Terrain Analysis is also a next-big-thing.
What level of education should one go for to be an AI programmer? A masters was suggested. A counter-point was that a masters is not required in smaller companies like game developers, but that a college degree always helps. A general education is desirable with some exposure to algorithms and classic artificial intelligence.
Could AI be capable of problem solving? Seeing boxes and figuring out that it could stack them to climb to reach a goal location.
Problem with AI is getting enough data to make better decisions. World representation needs to change in next few years.