 |
Basic Engine Components - Component Overview
The world and world space:
The world is (virtually) infinite. Not limited to spatial
constraints by the computer (memory). Each location saved
seperately. Classes saved in a sepeare file, associated with
the seperate object/location files (ie header files).
Real Time Based on real-world time & information:
- Wind, Rain, Sun, Moon
- Temperature
- Night/Day
- Weekends
- Geography
- Other location-specific broad-area definitions (ie
radioactivity, storms, sound of police sirens etc)
All items in world (including world) are objects.
The world has limits. Anything pushed or created beyond those
limits immediately removed from a class (ie removed from
existence). To build onto the world, you would need to extend the
limits of the world class, or build a portal to a new
world class elsewhere (ie different astral plane, etc)
Components of the World Space:
Objects:
- Exist (all objects in a class exist remove from a
class, you remove the object)
- Have Properties
- Move or be moved
- Be created or removed
- Have an owner, group and modifier properties (ie someone
else can pick it up and move it, but not destroy it).
- Have a status: Alive (player or bot) or Dead (player or
bot) or Non-living (class, object, world, portal)
- Have properties removed, added or updated in real-time
Classes:
- Define broad-term existence of object.
- Define function of objects. Ie A room or location is an
object that can contain other objects (people,
interaction object, exits etc)
- Define use of object. Object may have class of
container (or room, box, world), which means
it has the ability to contain other, therefore can be
opened or obstructed. May contain many items
- Classes arent real-world objects, only definition
files.
- Classes have structural definitions (non-interacting
non-visible) available, to determine context of action in
class. Ie a cup can be picked up, drunk from, smashed. A
plate can be smashed, thrown. A door can be picked up. A
door may need 2 people to pick it up (ie have a weight
property)
- Many Classes dont have to be set, or if set
dont have to be acted upon directly. Ie a dog may
have a sound property that defines different actions
barking, growling, whining that occur at
different times, whether an action has been performed on
it or not (ie it might just want to bark at the moon
it doesnt have to, but might have heard
other dogs barking at the moon)
Actions:
- An action is based on a class
- An action is tried, and if a class property is set that
the action can perform. Ie a room has an openable
property, set by a door, set by a lock. A lock has an
action that it sets an openable property against an
object (in this case a door). The door has an action that
sets an openable property against another object (in this
case a room). The room has no action set, so its
just a non-living object (a location object).
- Actions can be learned. A crowbar may be used to open a
crate. The crowbar may then be used to try to open the
lock. The crowbar has the same ability as a key, it opens
something. Therefore if the class that lets a key open a
door is activated by a crowbar, the same action may apply
(if the lock is weak enough. The lock would have to have
a propety that said is breakable, which would
reflect a group of object that is allowed to be destroyed
by someone other than the owner)
- Actions apply to everything. If a class exists an action
can perform, the action is doable, else not.
Function:
- The class-definition for an action
- An action may be to run. This requires a function set
that picks the best direction, then tries to move that
way fast.
- May be attached to an object (ie, The functions of a doorknob
would be 'turn' and 'move' related actions, such as twist and pull)
Players:
- Different classes of player:
- System: Non-interacting bots that perform
functions in the game (ie daemons that take away
dead players)
- User: Someone using a computer to control an
avatar in the construct (world)
- Bot: A computer-controlled player, has a series
of properties, and action properties steerable by
the system or users. Can interact with the
environment (ie steal, walk, talk). Can learn (ie
have classes added to them)
- Can learn new tasks (ie have classes attached to them. Ie
learn how to swordfight.
- Has abilities classes:
- God - can create/destroy anything
- Creator - can create worldspace. Create Objects.
Create actions (therefore functions)
- Mover - can move objects
- Interactable - can have classes attached (ie
talk, pick up) interact with objects (normal)
- Destroyable class - can be attached to objects,
can be performed with players etc with correct
class ability or object ownership (ie owns a
crowbar and knows how to use it)
- Ghost class - (special function) cant
interact but is a spectator. Can move anywhere
(except outside the world space). Cannot be seen,
Or interacted with.
Home | Classic IF Engines | Scalable IF Engines
Basics | Specifics | Program Flowcharts
Objects | Classes | Actions | Players | Functions
Feedback | Code Examples
|