AI middleware as means for improving gameplay * Börje Karlsson ICAD/IGames/VisionLab - PUC-Rio Rua Marqu ˆ es de S ˜ ao Vicente, 225 Rio de Janeiro, Brazil borje@icad.puc-rio.br Bruno Feij´ o ICAD/IGames/VisionLab - PUC-Rio Rua Marqu ˆ es de S ˜ ao Vicente, 225 Rio de Janeiro, Brazil bruno@icad.puc-rio.br ABSTRACT Current commercial AI middleware are still far from being a generic and flexible tool for developing computer games. Also the literature lacks proposals in this field. In this work we present some of our current research on developing a new proposal for a flexible architecture that can be used in sev- eral types of games. This AI engine is designed to provide support for the implementation of AI functionalities in com- puter games, streamlining this implementation and allowing the developers to focus their attention on the creative side of the game, but is also focused on introducing new techniques that could allow for an improved gameplay experience or even new gameplay styles. In order to fulfill this goal, this research focuses on the design issues of such a system and its integration into games, using more powerful techniques from academic AI and strongly relying on software engineer- ing principles. Categories and Subject Descriptors I.2.1 [Artificial Intelligence]: Applications and Expert Systems - Games; D.2.11 [Software Engineering]: Soft- ware Architectures - Domain-specific architectures, Patterns General Terms Design, Experimentation, Standardization, Documentation Keywords Artificial Intelligence, Middleware, Computer Games, Soft- ware Architecture, Game AI, Design Patterns 1. INTRODUCTION As entertainment applications (especially digital games) have being steadily growing both in size and complexity, the chal- lenges faced when developing such software have also in- creased dramatically; their users now present higher and * (Produces the permission block, copyright information and page numbering). For use with ACM PROC ARTICLE- SP.CLS V2.6SP. Supported by ACM. higher expectations, requiring quality and believability in the game environment and in character behaviours. In the current stage of computer graphics, computer games can present astonishing scenes and animations but that alone does not guarantee a good game. The usage of Artificial In- telligence (AI) techniques has proved of great help to create a better user experience, even using only simple techniques. And an ongoing trend is to use more sophisticated AI to achieve the goal of creating a game environment as believ- able and fun as possible. With this ever growing necessity of AI functionalities and the fact that some techniques are al- ready in use in game development for some time, supporting tools were created in order to help with these tasks but these first tools presented little flexibility. In other areas related to digital games (such as computer graphics, networking sup- port and physics modeling) it is already a common approach the usage (or, at least, the evaluation) of software packages that help the developer in creating a game (this pieces of software are usually called game engines), and that is only recently starting to be seen in the game AI segment. Middle- ware technologies are taking an increasing importance and it is believed that the next big step in the quality of AI game techniques depends on the creation of this AI middle- ware, to alleviate developers and allow them to concentrate on creative tasks related to AI. In the following sections this work presents what is an AI middleware, some approaches to the creation of such soft- ware, our proposed architecture and some comments and future directions on our research effort. 2. AI MIDDLEWARE An artificial intelligence middleware is basically a software layer (or a set of components) that provides services to the game engine for performing the AI functionalities in a com- puter game. Usually also called an AI engine, the middle- ware is responsible for handling the process of producing the desired behaviours or decision-making of intelligent agents present in the game world. The term middleware is usually associated with distributed system environments but is used here in the sense found in some citations from the 70s that define ”middleware” as computer software which has been tailored to the particular needs of an installation. The comparatively new term at the time was introduced because, as some systems had become more complex, there was a need for systems enhancements