Working Group on World Interfacing

Ten game AI developers and middleware vendors out of the games and military oriented sector build the AI Interface Standards Committee's (AIISC) world interfacing group. We are the central hub, coordinating ourselves with all other groups to create standardized interfaces to interconnect the games AI, e.g., other AIISC interface implementations, with the non-AI games world representation. Christopher Reed took over the coordinator role from Michael van Lent due to his time constraints last year and is now organizing the groups' work and moderates its forum discussions.

Without any doubt, the world interfacing group is the most active discussing with over 500 forum postings. Many of our arguments circle around the question what it is exactly what is needed by a game world and AI connecting interface and how and on which level to represent it, e.g., on a very concrete level or top-down from a more abstract meta-level.

Goals for a World Interface Standard

Our primary goal is to provide a functional AI interface to any run-time simulated game world.

Important requirements to realize include:

The Game World

What is the game world? The group has struggled with this question from the first day of discussion to the present. The only game world component that is currently in consensus is the "entity".

The game world is composed of entities.

Game World Entities

Though we don't have a concrete definition, examples of entities are easy to come by. Doors, tables, chairs, weapons, ammo, bombs, grenades, missiles, clocks, and characters are all common examples of entities in games. There are many different classes of entities, and many different instances of these classes.

For example, in chess, there are six entity classes (King, Queen, Knight, Bishop, Rook, Pawn). At the beginning of the game, there are 32 entity instances (16 on each side); however, the number of instances changes as pieces are captured or promoted.

Each entity class has any number of member variables representing the state of the entity. These variables are often used for concepts like health, position, velocity, size, animation, and model. In chess, all the entities would have member variables for their positions on the board (X, Y coordinates probably). The values of these variables change for each instance when it is moved.

We are currently working on a language for building these entity classes from a standard template.

AI from a World Interface Perspective

As with the definition of the world, our group has no official definition for AI and very little consensus of what it involves. In fact some of what follows may be too recently introduced to really be considered in the consensus, but it's here to help support the concepts that are. While the role of AI may seem intuitively obvious, the only element in consensus is that AI "plays the game".

AI is the controlling force behind all non-human players.

What is a Player?

Non-human AI controlled players - or "players" for short in the following text - vary drastically in shape and function from game to game, but they all have these elements in common:

Objectives
Why the player is participating.
Senses
Describe what the player can see, hear, know, and generally sense.
Actions
What the player can do.

Playing the game then involves responding to senses by doing actions that further the players objectives.

Objectives

There hasn't nearly been enough discussion on this topic to say much more about it than the general principle, e.g., in chess the primary objective of the game is to "Capture the enemy king".

Senses

We've talked in great detail about senses, how they work, and what they do. We have had some trouble trying to come up with concepts that can work in any architecture. We have established two types of senses:

Events (world push to player)
Events occur at a time in the game and are instantly delivered to players, or recorded for later perusal (or both). Events are not necessarily related to entities, though they are often caused by entities.
Queries (player pull from world)
Queries occur when the player actively uses his available senses to examine the state of the game. Queries are also not necessarily related to entities, though they often are.

Examples for events and queries in First Person Shooters (FPS):

Currently, the exact mechanics of sensory perception is still under debate, as it can be affected by many factors:

  1. existence of the sense, e.g., in many games there is no "hearing" (what is there to "hear" in Chess?),
  2. players abilities, e.g., even if "hearing" exists, not all players are able to do it, or do it as well as each other.
  3. state of the world. For example, even if a player can "hear" anything, sound may not go through walls and closed doors to reach him.

Actions

Actions are the way a player does things in the game. There are two types of actions:

Actuators
These occur at a time in the game and are of a finite duration, e.g., in Chess, an actuator may be "Move diagonal".
Effectors
Effectors occur continuously, applied at all times to the game state. In an FPS, an effector may be "Aim at enemy".

Actions suffer similar problems as senses, not all players can do all actions, and even if a player is technically able to execute an action, the state of the world may prevent it. A further example may illustrate this: in Chess, a Bishop may be able to "Move diagonal", but if it is blocked...

Interfacing between AI and the World

Though the group mostly agrees on these concepts, the particulars of where they are defined, owned, registered, and created are still very much up in the air. Questions of threads, and synchronous vs. asynchronous architectures have yet to be worked out, although we are confident that eventually, we can make it work. The further interaction with other working groups and their progress will help to advance our work as well, providing more concrete requirements on functionality for the world interface.

Group Members

Current members of the working group on world interfacing: