Back when the original Halo helped launch the Xbox into the popular consciousness, it was difficult to pick up a game magazine and read a review that didn’t mention AI.
Thanks to Bungie’s efforts to create a believable battlefield experience, gamers had their eyes opened to the possibilities: enemies could be more than pop-up targets in a shooting gallery, and proper adversaries. Remember the first time you played Half-Life, and a soldier tried to flush you out by throwing a grenade into your warm little cubby hole?
Fast forward to the end of the decade, though, and AI isn’t quite such a hot topic. Every now and then there’s a game that shows something new, but for the most part gamers realised that for every game pushing the boundary there were ten that didn’t. We’d reached a new level, but failed to go any further.
Despite even a new hardware generation, the advances didn’t seem that palpable to the people playing. So what happened? For the most part, it’s not like there wasn’t actually any progress: the environments that level designers and artists created got bigger and more complex, thus leading to more work having to be done on things like pathfinding and navigation.
This decade also saw physics come into its own, and game designers revelled in throwing as much around as they could. But that created a huge problem in, once again, pathfinding and navigation – things that seem so simple and so normal to players, but present a massive challenge to developers. In order to go beyond focusing all their efforts on just these low-level necessary tasks, a number of companies are providing AI middleware to help.
“Today the term AI middleware is loosely defined – certainly far more loosely than say physics or animation middleware,” says Dave Gargan, principle engineer at Havok, which this year introduced its first AI middleware product.
“Havok AI focuses on a set of low level AI services centered on efficient and reliable pathfinding and following for dynamic environments. Developers understand where that starts and ends and how it can integrate in their existing pipelines. Anything higher level should require significant convincing. I’m not convinced that there are widely applicable general approaches yet that are suitable as middleware.”
German developer Xaitment, however, believes that there is a place for higher-level AI middleware – in particular, tools that help designers implement and tune complex behaviours beyond the sort that we currently see today.
“It is not a lack of CPU power that limits the AI in a lot of the games these days, it’s the fact that there are not suitable tools to make the implementation of AI faster and easier,” explains the company’s CEO, Dr. Andreas Gerber.
“Especially at the end of the development process, when the pressure grows and grows, we always see that developers go back to their old, well known tools or do everything by hand. But these tools don’t solve the ‘old’ problems, and that’s exactly the reason why we developed our modular AI approach to help in the development process.”
A real problem to seeing AI middleware become more adopted, believes Gerber, is that AI programmers often feel that their livelihood is at stake if they defer to outside techology. “Our experience over the past five years is that, the smaller the development team, the more programmers really believe that they can do everything on their own. We often see the typical ‘not-invented-here-syndrome’ that makes project planning and managing a nightmare in the end.”
“Look at the Halo series, or the Forza series, both of which have amazing AI. All these game studios do one thing right: they are aware that AI is as important as graphics and physics, and therefore spend the same amount of money for developing the AI. These teams have up to 12 people concentrating on AI and content for AI, over the space of the whole project.”
One thing that Xaitment always promotes is the idea of a new role in the team: the AI designer.
“He or she develops all the behaviours and configuration of the NPCs as the game designer dictates. This seems obvious to us – why should a programmer do design tasks? He is not the specialist. A programmer can implement the algorithms, but the creative things should be done by people who are trained to do just that. By using middleware and working together with AI specialists, really good-looking AI can be implemented with much smaller budgets.”