Report by Robin Baumgarten
I attended the Games Developer Conference (GDC) in San Francisco. It happened from the 18th to the 22th of February 2008, with the first two days dedicated to tutorials and summits covering specific topics like independent games, serious games, casual games, physics, audio, mobile entertainment and so on. The main conference took place in the remaining three days. While there was a big career and exposition area for games companies, middle-ware developers and universities, the main aspect of the conference was the lectures and round-table talks that were scheduled throughout the days. With over 400 events available, the choice was not easy and I had to skip many interesting lectures. However, there were not very many AI-related events, so that I could attend most of them.
There were three AI roundtables spread over the conference days. Audio recordings and notes are available here: http://www.intrinsicalgorithm.com/GDC/. The first roundtable was a general AI session, where the topic revolved mainly around these topics:
- How can we make the player aware of the smartness of an AI? It turns out that very many players do not notice smart maneuvers or interpret random behaviour as intelligence. (There is a follow-up discussion of this problem on AIGameDev.com: http://aigamedev.com/discussion/notice-intelligence-bioshock )
- Animation and AI: Controlling, triggering and blending animations is an important part of an AI programmer, as the AI has to take the duration and purpose of given animations into account when choosing actions.
- Designers want control: Many developers face the struggle to defend their AI system against the desire of designers to have fine control over behaviour of units in a scene. This is one reason why games with a complex story seldom use advanced AI techniques.
The second roundtable focused on technical details in real-time strategy games and role playing games. The topics were:
- Multi-threading: As the number of core grows, parallelising tasks and elaborated data management become very important. Proposed solutions were hierarchical simulations (only passing summaries to other processes), pre-computation of possible paths, separating rendering and AI, separating individual agents in a game.
- Use of AI algorithms in games: The most used algorithms are pathfinding and Finite State Machines. No one (of the roundtable participants) uses neural networks or genetic algorithms, a few developers use learning behaviour (mostly variable adaption), planning, fuzzy logic, flocking, gesture recognition, minimax and influence maps. Reasoning under uncertainty is not used, most of the time the AI is just cheating. That is much easier and the player doesn't notice.
- Use of middleware is not very common, only one of the participants is using it (Kynogon), for path generation. The main reasons given for not using them are that the developers feel that they do not have enough flexibility and would have to design their world for the middleware.
- Emotions: Most of the emotional content is delivered over pre-designed cut-scenes. Some use music triggers to sell emotions to the player.
The third roundtable session was supposed to be a beginner's session, but it turned out to be a general Q&A session.
- A military representative talked about using neural networks in a military simulation for non-player character behaviours. He wants to commercialise this technique. The present game developers have some resistance against using NNs, as they are difficult to use and tweak. It has been applied to Day of Defeat, Wii gesture recognition (though not very accurate at the moment), Colin McRae racing.
- Smoothing movement: Subsumption architectures and considering momentum in decisions can be used to smooth movement of units.
- Very few people approached universities for their problems, it has been used by EA for NHL '08 to determine the Golden Path. I pitched the Artificial Intelligence and Games Research Network from Imperial College here, with little response.
(Slides are available at http://www.designer-notes.com/PlayingToLose.zip) Soren Johnson argues that cheating is can enhance the fun and reduce development efforts when done properly. He explains that AIs in modern video games are designed to lose against the player. The structure of the game must allow cheating though, in very symmetric games like chess cheating would destroy the credibility and enjoyability of the game. Very asymmetric games (for example desktop tower defense) the notion of cheating is not really applicable, as the rules of the game can be defined arbitrarily without having to worry about a loss of symmetry. Most games, however, fall somewhere in between these two extremes. In this area, cheating is an accepted technique to simplify the design process of the AI without breaking the illusion of a smart enemy. Examples include the non-adherence of hidden information (i.e., the fog of war), breaking rules the player has to follow (i.e., letting cars in a racing game catch up with faster than usually possible speed, the so called “rubber band-effect”), or reduced costs / more resources for the AI.
This Keynote was more or less a two hour advertisement for Microsofts XNA platform which is used to develop games for the XBox 360 and (soon) the Zune. XNA is arguably the best supported platform for independent and hobby developers to develop console games. The resources Microsoft provides are advertised as superiour and easier to use than the rivaling products from Sony and Nintendo.
Ray Kurzweil gave a lecture on his Law of Accelerating Returns and how it affects the future of mankind and gaming. There were no really new ideas in his talk, and his ideas are well documented in the internet (for example Wikipedia: http://en.wikipedia.org/wiki/Accelerating_returns).
Nicole Lazzaro compares a large social network (Facebook) with a large multiplayer video game (Halo) with respect to interaction, communication, social play and emotions. She introduces four concepts of fun: Hard Fun (“fiero”, personal triumph, e.g., in shooter games), Easy Fun (curiosity), Serious Fun (relaxation and exitement) and People Fun (amusement). According to Lazzaro, game best sellers contain at least 3 of these concepts, and inversely, the more of these concepts are included in a game design, the better it's reception will be.
(Slides: http://www.bungie.net/images/Inside/publications/presentations/betterbattle.zip) Damian Isla talked about the Behaviour-Tree based AI system in Halo 3. Units are put into different branches of a tree containing actions depending on a fitness function (which depends on factors like the distance to a target, group size and priority of the action). According to Isla, the use of behaviour trees worked well as a compromise between autonomous AI behaviour and direct control through designer-created scripts. More on behaviour trees can be found at http://aigamedev.com/hierarchical-logic/bt-overview.