Working Group on Steering
The steering work group is formed by game developers, game AI middleware producers and academics. All of which contribute with their different backgrounds and points of view to the task of trying to create an interface between a game and a steering system. Much brainstorming has been done and many points of discussion have been started but most currently have not been concluded or reached any agreement. So this is still a preliminary report on the current work of the Steering group.
GoalsThe goal of the steering group of the AI Interface Standards Committee (AIISC) is to define a standard interface to ease the integration of game AI with a steering system. The interface will allow the expression of the following:
- Physical state of a navigating agent. This has to be expressive enough to allow arbitrary movement, but it is not required that all of the state components are specified.
- Steering actions. Again, most forms of movement must be available. Perhaps A and B can ultimately be merged into one?
- Locomotion properties of the steering agent, e.g., degrees of freedom, max velocity, min turning radius, max rotational acceleration, etc.
- Steering behaviors, i.e., the driving force motivating the movement. They turn physical state of an agent into steering actions. They will require access to world interface. They may also require access to locomotion properties (another sticking point).
- Environmental constraints, e.g., obstacle avoidance, agent avoidance, etc. They may be just a type of steering behaviors.
- (Optional) An arbitration system which, given a set of steering behaviors/constraints, locomotion properties and the physical state, produces the ultimate steering action.
Having defined some abstract concepts and the components of a steering system (as can be seen on last year report), the working group is currently working on a requirements specification and on reaching a conclusion on the following issues:
- A universal representation for A and B. Are a couple of vectors sufficient for most applications or do we need a comprehensive set of primitives, such as linear velocity, linear acceleration, angular velocity, angular acceleration, turning radius (scalar or vector), priority (if multiple goals are supported, see below), time (if goal-oriented planning is supported, see below), destination location (ditto), destination orientation, etc. etc? An open data structure allowing an arbitrary combination of these components has also been discussed, but there is no agreement on its adoption.
- Separate steering behaviors from the physical substrate and express their workings in more abstract terms. This is most likely to apply to goal B. The most pertinent example is to use values corresponding to signals received from the control pad. Again, the group has not yet able to decide if this will give a sufficient freedom of expression.
- Number of alternative actions that a steering behavior/constraint is able to produce. The standard approach is to only allow one, but there are situations (e.g., in obstacle avoidance) when multiple outputs enable more informed decision making.
Support of continuous planning. Should the group strive to provide generic enough a specification for A and B that it allows an arbitrator to construct a detailed space of available trajectories on which a general goal-oriented planner can be run?
While no final interface has yet been decided on, the following requirements specification has been outlined and is currently being discussed:
- 1.1. Supports the steering behavior Seek in 2D and 3D
- 1.2. Supports the steering behavior Flee in 2D and 3D
- 1.3. Supports the steering behavior Arrive in 2D and 3D
- 1.4. Supports the steering behavior Wander in 2D and 3D
- 1.5. Supports the steering behavior Pursuit in 2D and 3D
- 1.6. Supports the steering behavior Offset Pursuit in 2D and 3D
- 1.7. Supports the steering behavior Evade in 2D and 3D
- 1.8. Supports the steering behavior Wall Avoidance in 2D and 3D
- 1.9. Supports the steering behavior Obstacle Avoidance in 2D and 3D
- 1.10. Supports the steering behavior Collision Avoidance in 2D and 3D
- 1.11. Supports the steering behavior Path Following in 2D and 3D
- 1.12. Supports the steering behavior Interpose in 2D and 3D
- 1.13. Supports the steering behavior Hide in 2D and 3D
- 1.14. Supports the steering behavior Separation in 2D and 3D
- 1.15. Supports the steering behavior Alignment in 2D and 3D
- 1.16. Supports the steering behavior Cohesion in 2D and 3D
- 1.17. Supports the steering behavior Flow Field Following
- 1.18. Supports the steering behavior Queuing in 2D and 3D
- 2.1. Supports the truncated sum method of arbitration
- 2.2. Supports the weighted truncated sum method of arbitration
- 2.3. Supports prioritized weighted truncated sum method of arbitration
- 2.4. Supports the prioritized dithering method of arbitration
- 2.5 Supports a custom arbitration policy specified by the client
- 3.1. Supports activating/deactivating individual behaviors
- 3.2. Supports querying if a behavior is activated or not
- 3.3. Supports querying the combined steering goal produced by 2.x
- 3.4. Supports querying the forward component of the steering goal produced by 2.x
- 3.5. Supports querying the side component of the steering goal produced by 2.x
- 3.6. Supports querying the up component of the steering goal produced by 2.x
- 3.7. Supports some sort of ‘smoothing’ mechanism to avoid jitter
- 3.8. Supports altering the parameters that affect each behavior
- 3.9. Supports querying the parameters that affect each behavior
(Optional, as steering code could query the client interface for this info)
- 4.1. Supports specifying a 2D/3D goal position
- 4.2. Supports specifying a 2D/3D offset vector
- 4.3. Supports specifying 1..n “target” agents (for pursue/evade/interpose etc)
- 4.4. Supports specifying a “path”
Current members of the working group on steering:
- Group coordinator: Marcin Chady - Radical Entertainment
- Co-coordinator: Mike Ducker - Lionhead Studios
- Mat Buckland - ai-junkie.com
- Philippe Codognet - University of Paris 6
- Thaddaeus Frogley - Rockstar Vienna
- Leon C. Glover - Entropy Unlimited
- Daniel Kudenko - University of York, UK
- Dave C. Pottinger - Ensemble Studios
- Craig Reynolds - Sony Computer Entertainment America
- Adam Russell - Pariveda
- Login or join to post comments
Post to Twitter
