Analytical Perspectives in Game Design
Game Database
Home ] Up ] Agent processor ] Command processor ] Data communications unit ] Drama processor ] [ Game Database ] Lock processor ] Login processor ] personality processor ] Pot processor ] Time processor ] View processor ]


 

The game database is the base engine behind the operation of the game. It records all the data and responds to requests. Requests can come in the form of view requests from a viewer or action requests from the command processor.

general_game_database_gom_1.gif (4428 bytes)

A thing is the foundation on which all items in the world are built. Every object that can be manipulated in the world is specified as a thing. Things can be abstract representations or physical entities. The represent objects (nouns) in the real world.

These objects are built using a tree hierarchy. At the root of every tree is a special thing called a game. To enhance the interactions between games a thing does not have to be a root. therefore you can create game-worlds within game worlds.

A thing describes the static components of a game object. Any manipulable components are described in characteristics and capabilities. Hence the game thing acts more a central control point for controlling the thing. This allows the customisation of the things. By simply adding and removing characteristics and capabilities you can control the behaviour of the thing. The net effect of this is that the control is governed by data files that you can manipulate and not by complex lies of software.

Player thing and game thing are special types of thing. There is only one player thing and game thing per game session window. Though there may be more than one game session window.

A game thing processes the general game functions of loading, saving, managing.

A category is represents the type of object. This allows all objects to be defined by a template type to speed processing and allows the cultural conversions of categories into a particular categorisation tree. This is clearly part of a inheritance tree as in any OO design methodology, just that the inheritance is done between classes rather that in the codification of the software.

A characteristic is a description of the thing. A characteristic could be a simple item such as a name. Characteristics are inherited from components. A characteristic associated directly with the thing in question is an intrinsic characteristic. In the game there is a special type of characteristic called a representation.

Characteristics are modelled in the game by state machines. These state machines allow the provision of listeners. A command passed to the state machine will be vetted by a vetoable listener, modifiable by a modifiable listener and received by a change listener.

A capability represents an ability for a thing to do something. A capability can be inherited from a component. A capability associated directly with the thing in question is an intrinsic capability. This is the equivalent of an interface in Java and is used to help overcome the problems with multiple inheritance.

A key difference between characteristics and categories is that the categories represent the prime inheritance tree for an object and the capabilities represent secondary inheritances to supply a real-world multiple inheritance function.

For example a person who is a cricketer has the capability to bat. Now cricketer, person and batter are all nouns. The hypothetical category tree is root-thing » physical-thing » organic-thing » person » cricketer. The capability tree is see-and-move-coordination-ability » hit » bat.

A key difference between the category and capability is the direction of inheritance. In a category the object inherits capabilities and characteristics from the direction towards the root. In a capability tree there is specialisation of a function. The hitter can bat, but not as well as a batter. A thing or category of things obtains capabilities explicitly or from the possession of one-or-more characteristics.

Categories are formed into trees.

All things exist within a context. The context sets a limit on where actions can be performed. For example a view nominally can only see the current context plus 1.

Each thing has a representation. A representation might be a icon, a picture a sound, an avatar or a 2D or 3D model.

22/11/99

 


See also: [Role Playing Games] [Game Engine]
© 1998, 1999 Brian Yap. These pages are available under the GNU licence.