Putting AI in entertainment: an AI authoring tool for simulation and games

D. Fu, R. Houlette
2002 IEEE Intelligent Systems  
A few years ago, we attended a conference bringing artificial intelligence researchers and game developers together. Having just begun enhancing our company's suite of AI tools for simulation development, we were ready to be enlightened. AI researchers were going to offer up the latest technological advances, while the game developers were going to wow us with their tried-and-true techniques for authoring game AI. While the conference was enlightening, what we found most surprising was that
more » ... rising was that game AI developers almost always implemented their AI from scratch. Every game was just too unique and so resisted reuse of existing representation and code. In fact, several developers openly stated that a general "AI toolkit" couldn't even exist. What's even more surprising is that these opinions were expressed even though much of the work in game development focuses on creating authoring tools. Given that most games adopt standard AI techniques that were solved decades ago, why hasn't there been a concerted effort to create a standard way of articulating AI? Pessimism aside, research, game, and simulation communities have shown considerable interest in such a toolkit. Developers could use this kit to create the AI in a game quickly without having to start from scratch. Ideally, the kit would consolidate the existing branches of work in the field and provide developers easy access to the fruits of mature research. For the past couple of years, a small group of us at Stottler Henke Associates, an AI consulting company, have been working on techniques to write better AI behavior for simulations and games. We are focusing on a visual authoring tool that provides a way to quickly synthesize complex behavior, and are building a corresponding AI engine to run with a simulation or game. For game development uses, we see our tool as making the AI under-standable to game designers and end users, as well as improving developers' productivity. This work will also be useful for simulation developers and subsequently for analysts, operators, and instructors. Here, we explain some of our tool's features and how the AI engine processes the resulting content. A new way to view behaviors Instead of attempting to write a universal AI code base, we started by looking at what was common to most simulations and games. One requirement was that our software had to be accessible-more accessible than to just simulation or game developers. We knew that many game designers, while being perhaps the most creative part of a development team, did not know how to program a computer in the strict sense. However, we felt that if they could understand the visual representation of behavior, they could at least modify it, if not author behavior later with a developer. About two years ago, we started with a graphical authoring tool based on one of our existing authoring tools for a Navy military simulation for tutoring student tactical-action officers. In the simulation, students command an Aegis cruiser and are confronted with realistic (and hostile) situations. The tool provides a visual way to look at behavior for a single entity but is not wedded to the actual simulation. The author can define his or her own AI vocabulary. We used finite-state machines to describe behavior. FSMs are common to almost all games and simulations, and we figured this would be a good place to start because of favorable properties, such as simplicity, compactness, and efficiency. After several iterations of extensions and reworkings of the visual interface, we arrived at a much more powerful way of articulating complex behavior. However, the authoring tool only creates a description of behavior-it doesn't actually implement behavior. For that, we need a runtime engine that will take the description and make it operational in the game. The engine that we created had to satisfy three criteria: developers can easily interface to its API, it runs efficiently, and it is highly scaleable. Our current software, BrainFrame, combines both the authoring tool and the runtime engine (see Figure 1 ). The AI author first uses the authoring tool to declare a basic vocabulary of actions and conditions. A primitive action could be to jump up or to compute a path from one location to another. A condition could be, "Is there a threat nearby?" The authoring tool only declares an entity's
doi:10.1109/mis.2002.1024756 fatcat:hkj6g2brfjbnblxwyu7biaewoq