Communities share common knowledge and/or common characteristics. As far as Metacosm is concerned, this can be modelled by an Influence that gathers the common knowledge and expresses the common characteristics in terms of game constructs (Characteristics, Actions, descriptions, etc). Characteristics define the essence of the Entity. These can be very different from an Entity to another in their number, type or value. What makes an Entity different from another is the set of Influences that "influence" its Characteristics. The way that Entities are influenced greatly vary from an Entity to another depending on the number or type of Influences that act on it.
As defined above, Influences define a Community of Entities that are influenced in a similar way. An Influence gathers everything that makes the Entities that it influences special and distinguish them from members of other influenced Communities. It is worth noting that an Entity can belong to several influenced Communities (for cumulative effect) and that influenced Communities can overlap or coincide.
An Influence can modify an Entity in the following ways:
A numerical or text Property may be set to the value of an expression containing constant values, other Properties, standard operators (+, -, *, /, % modulo, statistical functions, string equality, search, replace...). Typical use include absolute modifier (new value does not depends on current value) and relative modifier (new value is a function of the current value).
If the expression result is outside the field of acceptable values, the closest acceptable values is used.
The field of numerical Properties may be scaled by a real factor or translated by a real value.
A new Property may be defined. Initial field and value could be provided. Note that they can be derived from existing Properties through the use of expression.
The value of an existing Property can be changed: the description of the change is stored in a structure called a PropertyModifier. If the new value depends on the current one, the modifier is said to be Relative. If the new value is independent of the current one, the modifier is said to be Absolute.
At any time, the effective value of a Property is defined by the Absolute Modifier of greatest priority and all Relative Modifier which priority are larger than the Absolute Modifier Priority. Relative modifier are applied ordered be priorities, lower priorities first.
New Actions can be added to the list of ones potentially performed by the entity.
The handling of Actions can be modified. Cf Interactions-RFC.
An Access to a shared 'community' memory can be provided.
The description of the Entity can be changed or completed.
Influence Actions on Entity obeys to a rule of priority: the list of Influences acting on an Entity can be seen as a set, the Influences with greater priority apply.
For the sake of understanding, Influence are classified by "theme": for example, Type/Species, Geography, Activity/Job, Individual experience. This classification will become a whole (forest (i.e. several trees) like) hierarchy later when it's needed.
At Entity creation time, some parameters will be choosen randomly and stored in the Entity instance. All other data used to compute Properties values will be extracted from Influences instances.
An Influence may only be applied on an Entity respecting a set of constraints (set of preexisting Influence or Properties, some Properties values must belong to some defined field...). See Predicate-RFC, to see how these constraints are expressed.
Example 1. Midgaard inhabitants
The inhabitants of Midgaard know the city better than the average tourist and can therefore more easily find their way. They might also know that Raoul is the baker that lives in the northern part of Midgaard. They might be particularly resistant to the locally brewed beer making it difficult for wannabe adventurers to get them drunk in order to get information... and so on.
Example 2. King Solomon's palace
King Solomon's palace rooms all share a particular architecture and design. They are all influenced by the same Influence, they are all part of the same Community. Moreover, among these rooms, King Solomon has had some of them decorated in yellow using only a particular kind of fabric so as to create a "Yellow Suite" Community inside the King Solomon's palace rooms Community, each of these Communities being influenced differently.
We think that this concept brings flexibility in Entity management.
We next distinguish between required and optional Influences. Required Influences are Influences without which an Entity cannot exist. They are at the base of all Entities. There are currently two required Influences. Optional Influences are limited by game designers' imagination only.
The Common Influence defines what is is shared by all Entities. This is the minimum required from a game object to be recognized as an Entity. The Common Influence defines a set of Attributes that are common to all Entities or to put it differently, all Entities are part of the Common Community. At the implementation level, it also defines a standard interface to interact with an Entity regardless of its implementation.
There should be exactly one Common Influence per instance. That Common Influence will specify the attributes of all Entities in the world of this instance and will be world- and rule-specific. More precisely, if you want to create a Shadowrun-based world, the Common Influence will describe everything that is common to all players in a Shadowrun game (all the attributes). If you play in DnD-based world, the Common Influence will be totally different. [Shadowrun is a Fasa Corporation trademark and DnD is a TSR trademark]. What this means is that the Common Influence kinda describes a character sheet for a traditional RPG. Each RPG has its specific character sheet (referred to as CS thereafter) which is then filled up according to this RPG's rules. Now, how these CS are filled up is depending on the type of character in traditional RPG. It's also true for Items or Places.
How the CS is filled in Metacosm is determined by the Entity Type. The Type is also an Entity. More precisely, the Type IS the typical Entity of this Type, it perfectly describes the average Entity of this Type. (i.e. the Type is an Entity which Type is itself). To create a new Entity of this Type, the Type is cloned and then its attributes and parameters are randomized according to this Type distribution laws (or otherwise: simulation of number of dices, fixed, etc) and influenced by the creation location (Place) of the Entity. This makes for a pretty simple and powerful system.
An Entity is affected once and only once by a Common Influence.
Types are a special kind of Influence. Entities are created by Types which initialize the Characteristics defined by the Common Influence and add new ones when needed. A Type can reference several different other Influences that are "applied" to an Entity at creation time.
An Entity is affected once and only once by a Type Influence.
Optional Influences are gathered by levels. Each level of Influence represents a particular kind of Influence. We present a list of possible Influence levels here. This list is not necessarily exhaustive.
An Entity can only be affected once by a given Influence. It can be affected by as many as it wants/needs different Influences.
This level gather Influences that modify all Entities found in a given area. There should be rules to establish how geography can influence Entities. We can identify two different modalities for Geography Influences: static or dynamic.
The static modality determines the Entity's parameters at creation time. Static Influence will be handled by Types since Types have the responsibility for creating Entities.
Geography can also influence the development of an Entity after its creation. When an Entity able to evolve is put in a given environment, it will slowly adapt itself to the conditions of that environment so as to optimize its probability of survival.
Every Entity can potentially be influenced by its location at creation time (static Influence). However, only those Entities that can evolve can be dynamically influenced by their environment.
Example 3. Static influence
The composition of the area in which a rock is created, influences the very essence of this rock. Similarly, someone born in a rather cold environment would be more prone to better resist cold...
Example 4. Dynamic influence:
Once upon a time, short-haired rabbits were dominant. But now, these days are over since the planet's inclination has changed slightly, hardening the climate and bringing in cold and ice. Rabbits with longer hair are now more able to resist the low temperatures and the rabbit population slowly evolves to grow longer hair...
As for geography, an Entity can be affected both statically and dynamically at the individual level. When an Entity is created (static modality), it is created with "unique" Characteristics. Exactly how unique those Characteristics are is irrelevant here. It could however happen that two distinct Entity (with different identities, see "Characteristics" for a discussion of identity) have the same Characteristics (twins). If these two are unable to evolve, they will forever be exactly similar. However, if they are able to evolve, they will go through their life experiencing different things and will be dynamically influenced by their deeds and/or their environment at the Individual level. Even though most of the way how an Entity will evolve will be defined by its Type or at the Community level, individual variations can occur. This is of crucial importance for Characters.
Example 5. Non exhaustive list
Diseases, injures, maledictions, benedictions, spells, drugs, magic items, inventory/possessions (weight, volume of possessions, blindfold, etc)
Note that this examples are not necessarily representative of an actual implementation.
Example 6. Elektra's wand
Glass is a fragile matter so a wand made out of glass is rather fragile (-3 in endurance, Type level). However, Elektra, Mistress of illusions, had her glass wand created with a specific process and worked on the glass composition to make it more resistant (+2 in endurance, Individual level).
Type level: made of glass (endurance -3)
Individual level: special creation process (endurance +2)
Result: endurance -1 (-3+2)
Example 7. Earendil the Elf
Earendil is an elf so he is less strong than an average human by heredity (-1 in power, Type level). However, he is a member of a rare elf cast who are stronger than average elves (+1 in power, Community level).
Type level: elf (power -1)
Community level: member of a stronger elfin cast (power +1)
Result: power +0 (-1+1)
Example 8. Adamant
Adamant is Hercules' son. He has thus inherited the physical power of his father (power +5, Individual level). However, he has been cursed by Hera and he's bound to live under the sea which reduces his ability to affect other entities (power -3, Geography level). Moreover, he is suffering from a cold decreasing momentarily his power (power -1, Individual level).
Individual level: son of Hercules (power +5)
Geographical level: lives undersea (power -3)
Individual level: sick (power -1)
Result: power +1 (+5-3-1)