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
Attachments
-
cel_diagram.svg
(67.2 kB) - added by caedes
10 months ago.
diagram of cel (svg)
-
cel_diagram.png
(173.7 kB) - added by caedes
10 months ago.
cel diagram (png)

