Model
Submitted by Zachary Booth Simpson
on 12/5/2000

© 2000 - Zachary Booth Simpson. Copied with permission from http://www.mine-control.com/zack. If you find any of this work useful, please sign Zack's guest book: http://www.mine-control.com/cgi/gbook-zbs.cgi.

Intent

Store the state of an object which exists in the game world.

Also called

Database Records, World Items, World Objects, Item Database

Problem

Many games consist of a variety of objects which interact. In some cases, there are many kinds of objects, in other cases, only a few. However, in all cases, each object tracks its state as the game progresses. Game rules define the transition of these states, and are often implemented by the Controller pattern.

Solution

Many Model implementations are polymorphic. For example, each type of Model is given its own class which extends a BaseModel class. Subclasses often overload basic methods to implement a special trait.

Care is often given to optimizing Models so that they can be accessed quickly by the View pattern.

Models may be fixed so as to aggregate more efficiently. See Model Database.

Models may implement the Model Database implicitly with statics.

Structure

Not available at this time.

Examples

Some examples of state information that a model might track: hitPoints, name, type, position, orientation, size, status, animationState, meshPointers, isDead, identification.

Some examples of methods that a model might implement: die(), getHit(), updateAnim(), insertIntoWorldDatabase(), moveTo()

Related Patterns

Model collections are also called a Model Database.

Discuss this article in the forums


Date this article was posted to GameDev.net: 6/19/2001
(Note that this date does not necessarily correspond to the date the article was written)

See Also:
Design Patterns

© 1999-2011 Gamedev.net. All rights reserved. Terms of Use Privacy Policy
Comments? Questions? Feedback? Click here!