The designs of long-living interactive games evolve through many versions. Changes from one version of a game to the next are typically incremental and often very small. A game designer (or a team of game designers and software engineers) formulates the requirements of the new version of the game, adapts the software for playing the previous versions to meet the new requirements, and implements and evaluates the modified designs of the game and the software. Typically the game designer uses high-level scripting languages to define the game environment (e.g. percepts, actions, rules, constraints) as well as the behaviors of various virtual agents in the game.
We posit that an interesting research issue in game playing is how a virtual agent might adapt its design, and thus its behaviors, to very small changes in its game environment. If the changes in the game environment can be arbitrarily large and complex then this becomes an “AI-complete problem.” However, even if the changes to the game environment are incremental and very small, this is a hard computational problem because changes to the environment can be of many types, modifications to the agent design can be of many types, there is no one-to-one mapping between changes to the environment and modifications to the agent design, and any modification to the agent design needs to be propagated down to the level of program code so that the new software is directly executable in the game environment.
The goal of this project is to develop an interactive environment called GAIA (for Game Agent Interactive Adaptation) in which the game designer generates requirements for a new version of a game, and the designer and the legacy software agents from previous versions of the game cooperatively adapt the agent designs to the new game requirements. We are developing and testing our meta-reasoning technique for adapting a mature program in the domain of turn-based, multi-player, strategy games (specifically FreeCiv).