Gaming Object Model Requirements
Gaming Object Model Requirements
General Requirements
Listed below are the general requirements of the Gaming Object Model.
- The Object Model is language neutral and platform independent.
- There will be a core GOM that is applicable to all gaming modules.
- The Object Model can be used to build and deconstruct a game.
- The Object Model will not preclude use by either agents external to a game’s contents, or scripts embedded within the game itself.
- Consistent naming conventions must be used through all levels of the Object Model.
- A UI component will not be required for a conforming implementation of the Object Model.
- The specific object models for each module will be driven by the underlying constructs of those module types.
- It must be possible to extract a game’s information and input structurally identical information back into game (both data streams can be represented by the same raw structural model).
- The Object Model will not expose the user to problems with compatibility, playability, or networking issues.
- The Object Model will not preclude other mechanisms for manipulating games.
Structure Navigation
This refers to the navigation around a game’s structure, such as finding the goal of a given game agent (e.g., player), or what items are in a agent’s possession.
General Requirements
- All of a game’s contents, including agents and items, will be programmatically accessible and manipulable.
- There will be a way to uniquely and reproducibly enumerate the structure of static games.
- There will be a way to query for objects and properties, subject to security and privacy considerations.
- Basic low-level functions (get first, get next, etc.) will be provided, along with convenience functions that build upon them, but have a consistent access method.
Non-Core Requirements
These are specific to non-core modules.
- All objects known to the game engine are exposed.
- Unknown entities and items are exposed.
- Implied properties are exposed even if not explicitly defined in the game (time, spacial dimensions, etc.)
- There will be guidelines for the inclusion of new game objects and properties in the object model.
Game Manipulation
- There will be a way to add, remove and change agents and/or items
(if permitted by the Game Type Definition and not precluded by
security or validity considerations) in the game’s structure. - There will be a way to add, remove and change properties (if not precluded by security or validity considerations) in the game’s structure.
- Operations must restore consistency before they return.
- A valid static game acted upon by the GOM will deliver a
consistent reproducible game structure.
Object Manipulation
- There will be a way to determine the containing object from any property of the game (subject to security considerations).
- There will be a way to manipulate (add, change, delete) objects.
Event Model
The event model must be rich enough to create completely interactive
games. This requires the ability to respond to any user action that
may occur in the game. Therefore, many of these requirements only
apply if a UI component is involved.
- All objects will be capable of generating events.
- There will be interaction events, update events, and change events.
- The event model will allow responses to user interactions.
- The event delivery mechanism will allow for overriding of default
behavior. - Events will bubble through the structural hierarchy of the game.
- Events are synchronous.
- Events will be defined in a platform independent and language neutral
way. - There will be an interface for binding to events.
Graphic Display Object Model
A graphic display is one model for manipulating the output of
the game. The graphic display object model exposes the ability to create,
modify, and associate visual elements with the game. The graphic display
model will be extensible to other output formats in the future.
- All graphic elements will be represented in the object model.
- There will be a graphics model. The graphic object model will be
defined as part of an output model, where the core part of
the model may be applicable to other output types. - Elements and properties of individual graphic displays can be
added, removed and changed. - All elements of a graphic display can be added, removed, and changed in the
object model. This includes but is not limited to:
- sprites
- polygons
- wireframes
- NURBS
- voxels
- colors and textures
- lighting
- other effects
Error Reporting
- The GOM will provide a game-wide error logging and reporting
mechanism. - Error reporting will be primarily via exceptions.
- The GOM error state can be queried.
Game Engine (GE) Information
These are requirements for information about the game engine environment,
if applicable
- There will be a way of obtaining relevant information about the
display environment, including the GE brand information and version
number. - A way of determining support for a
game type will be available.