Intro

Here follows what tries to be a vocabulary and a taxonomy (or something :)) for cel objects. I've done a couple simplifications (like assuming Quest:Sequence is an implementation of Quest:Reward, which it's not exactly) for clarity, or lazyness, however, the big picture should be possible to grasp. For more details, consult the manual and API.

For some objects i have added AKA terms, which is how this objects might be known in similar systems as CEL, note that is totally unofficial. Also, i've used Implementation (Impl. in the diagram) for Specialization.

Descriptions

Physical Layer

Manager for all entities, property class factories, behaviour layers and entity templates. There is only one physical layer.

AKA: CEL

Has: Zero or more: Entities, property class factories, behaviour layers, and entity templates.

Entity

A logic representation of a world object.

Examples: the world itself, players, non-players, cameras, items

Has: Zero or more property classes, and up to one behaviour.

Property Class Factory

A factory for a type of property classes

Implementations: http://www.crystalspace3d.org/main/Pcclass_matrix

Can build: Property classes

Property Class

Provide specific attributes, functionality and constraints to Entities.

Examples: This may be a simple attribute, such as allowing an entity to store it's weight, or it may provide more complex functionality such as receiving input from the keyboard or drawing a 3D object such as a mesh. The set of properties provides by all the property classes together defines what the entity really is, and what functionality is provided. A quest is a property class (see below).

AKA: CEL:Components

Has: Properties and Messages

Property

A value that can be stored inside a property class.

Example: Velocity, RunningForward, Opacity

Message

A command that can be sent or received by a property class. Messages have certain ids, and require a certain amount of parameters. They can also yield a value.

Example: Time passed, Entered a trigger, Finished doing something

Quest

An implementation of a property class factory, that embodies a finite state machine. It can hold a number of states, sequences and defaults.

AKA: FSM

Has: Quest:States

Examples: Door, PickableObject

Quest:State

A unique configuration of information in a quest.

Has: Quest:Triggers

Quest:Trigger

A condition or set of conditions to wait for.

AKA: Sensor, Condition

Has: Quest:Rewards

Implementations: entersector, inventory, meshentersector, meshselect, propertychange, sequencefinish, timeout, trigger, watch, message... (user can define more)

Quest:Reward

A reward is basically some specific operation that needs to be done in response to a trigger.

AKA: Side effect. Actuator.

Implementations: action, changeproperty, cssequence, debugprint, destroyentity, inventory, message, newstate, sequence, sequencefinish... (user can define more)

Quest:Sequence

An implementation of a Quest:Reward. A collection of Quest:SequenceOperation

Has: Quest:SequenceOperation

Quest:SequenceOperation

An operation over some parameter that takes place over time.

Implementations: debugprint, transform, light, (future: property).

Entity Template

An specification for creating an entity. Specifies property classes, behaviours, and parameters for them.

Behaviour Layer

A factory for behaviours.

Implementations: Python behaviour layer, xml behaviour layer, test behaviour layer.

To be merged with property class factory

Can build: Behaviour

Behaviour

A component which dictates how an Entity will behave within the constraints placed upon it by the Physical Layer.

Implementations: actor, lookat.... (user defined)

To be merged with property class

Graph

cel diagram (png)

Attachments