The topic for the developer discussion two weeks ago was What Trends in Game AI Do You Anticipate for 2008?. Here’s a quick summary of the including comments and personal opinions, as well as tips to help you make the most of 2008.
The first few predictions cover the AAA games industry and how AI is going to affect the design of games made, both on next-gen consoles and PC. The latter predictions go into more technical details, which applies to lower budget and independent games too.
Screenshot 1: Alyx in Half-Life 2 Episode 2
Developers are getting much better at building cooperating groups of enemies. But in 2007, Half-Life 2 Episode 2 pushed the boundaries of character interaction with Alyx, gathering great reception from the players. HL2E2 in fact was voted given the 2007 AiGameDev.com Award for Best Game AI last month.
Prediction: Increasingly, developers with the bigger budgets and whole sub-teams of AI designers, animators and programmers will include cooperative AI characters to help emphasize the player’s emotional involvement with the story. In particular, watch out for the dog in Fable 2, which is an amazing idea and a lower-risk way to provide an AI sidekick.
Tip: Think about cooperative characters early on in the design and implementation, and iterate often over the behavior. Use traditional AI techniques to implement the behaviors, but make sure the top priority is to interact with the players without getting in their way.
Screenshot 2: Faction around a campfire in S.T.A.L.K.E.R.
Games like S.T.A.L.K.E.R. and Crysis are leading the way in taking first-person shooters to new heights by giving the player more freedom, inspired by the roaming worlds of Grand Theft Auto. A sandbox means that the whole game becomes more of a simulation where AI plays an important role. For FPS games, this means that squads are setup to be much more autonomous, and the gameplay flows thanks to the goals set by the level designers.
Prediction: GTA 4 will take the genre to new levels with its next-gen AI, but sandboxes will generally become more popular as they provide diverse gameplay and more replayability. These environments will allow the AI to show it’s true colors… Expect to see both amazingly intelligent or terribly stupid enemies as developers try to move away from short-term scripting!
As ToddM points out :
“There’s definitely a trend toward so-called ’sandbox’ games, and away from scripted games, which is expected to continue, and to create greater use of autonomous agents and everything that they entail. It seems that this is much more of an evolution than a revolution though.”
Tip: Build autonomous AI characters that can respond to their environments, and place them within more open areas. Try to think of additional gameplay features as interactions with characters.
Emergent Behaviors within Stories
Screenshot 3: Group dynamics form the story within BioShock.
Game developers are also becoming increasingly skilled at integrating forms of emergence within linear story-like progressions. For example, the ecosystem in BioShock is designed in such a way that you have to understand its functioning to use it to your advantage. The enemies in Halo 3 also exhibit forms of emergent group behaviors when you fight against heterogeneous groups (e.g. and take out the leader).
Prediction: Even in story-driven games, developers will increasingly use pockets of emergent behaviors to increase variety and replayability. This is a great way to bring a sandbox-like environment into a more traditional AAA form, getting the benefits of both.
Tip: Design groups of characters together, and build the AI so that it responds to the rest of the group and not only the environment. Traditional techniques like finite-state machines are perfectly acceptable to achieve this kind of emergence.
F.E.A.R. came out in 2005 and was the first major title to handle the enemy behaviors using an AI planner. Since then, the amount of R&D on the subject in both industry and academia has been increasing dramatically. A few games resulting from these ideas have already come out in 2007, but many are still to be released.
Prediction: In 2008, expect to see even more planning in games as well as middleware vendors for game AI. This should not only help improve the development efficiency so more time can be spent on little details, but it should also make the behaviors more intelligent. Many of the features discussed in the previous points will become possible thanks to this kind of technology.
As Dave Mark comments :
“I think that the major break away from state-based machines will be a big deal. Look for more autonomous agents and less scripting. Certainly that will be limited to the games that can support and show off these sorts of behaviors, but the change will happen nonetheless.”
Tip: Watch out for middleware solutions shipping with HTN planners, and consider these as serious contenders. Also look into the theory and practice behind hierarchical planners. Get comfortable with them!
Games like World of Warcraft rely heavily on Lua, which shows how mainstream the language has become. Certainly, WoW isn’t famous for it’s AI, but this language is suitable for building AI frameworks too. The CryENGINE (behind Crysis) for instance is written mainly in Lua — with only the computationally intensive routines written in C++.
Prediction: Rather obviously, 2008 will see an even wider adoption of Lua from across the spectrum of AAA games to independent games. Developers are finally getting a grip on building good debuggers for the language, handling errors robustly, and getting comfortable with its semi-coroutines.
However, as companies use the language for more and more aspects of the game logic and AI, some cracks will show up increasingly:
Memory allocation and garbage collection causing performance problems.
Pure performance issues with the efficiency of the interpreter itself.
There are no obvious solutions in sight during 2008 sadly. This topic was brought up by Sergio in this thread of the Game AI Forums (registration and introduction required).
Tip: Don’t go too far by relying on Lua to build your entire architecture. Keep it in a statically compiled language and use scripts only where necessary, like before!