The Perception Object

Perception in FærieMUD is inherently more difficult to model than in a room-based, object-sparse, function-driven system with atomic actions. A character's perception in such a game is usually compiled by appending a list of objects onto the static description written for each room as one enters it or executes the 'look' command, with additional descriptions possible for certain trigger phrases associated with the description.

In FærieMUD, however, there aren't any static descriptions or rooms, and there aren't any easy triggers on which to base the compiling and presentation of the description. It will depend more on a "play-by-play commentary" approach, which will build descriptions of events that represent a change in the character's surroundings that he is apt to be both interested in and capable of noticing. Because these criteria can change from character to character, each character has an object dedicated to modelling his awareness, called a perception object, which is responsible for filtering the stream of events which is happening around the character into some kind of readable description. It composes scenes, sets the stage, and details the objects being perceived by describing each one at a level of detail commensurate with the perceptiveness of the viewer and the focus of their attention.

Design

The perception object is an instance of the Observer Pattern, though sort of the inverse of what you might expect; each other component of the character are the Observable parts. When an event is dispatched to one of the perception object's observables, the event is sent to the perception object and used to build a description based on the character's traits, activities, and current state. The description is generated by the Rhetoric science.

The Perceptiveness trait will obviously have a great deal of effect on the generated description, but the character's level of activity (ie., how intently she is concentrating on what she is currently doing), any currently applied effects (eg., "dull wits" spell, blood loss, speed of travel, etc.), and other factors will contribute.

Specifications

Peception should support two modes of action: Active and Passive.

Perception should:

  • be able to receive a message from a Verb which causes it to initiate observation.
  • support passive observation by publish/subscribe or the Observer pattern

For active perception, it should:

  • gather a list of objects that are candidates for observation
  • wrap each observable entity in a perception event
  • vet the list of objects gathered against criteria for elimination:
    • low concentration
    • loss of sense necessary to perceive (e.g., blindness, deafness, etc.)
    • interest/disinterest (ranked elimination?)
  • contextualize each remaining event:
  • form a descriptive sentence describing the remaining objects

Scotus adds the following pertinent quote:

THE OBSERVER

  1. Anything said is said by an observer. In his discourse the observer speaks to another observer, who could be himself; whatever applies to the one applies to the other as well. The observer is a human being, that is, a living system, and whatever applies to living systems applies also to him.
  2. The observer beholds simultaneously the entity that he considers (an organism, in our case) and the universe in which it lies (the organism's environment). The allows him to interact independently with both and to have interactions that are necessarily outside the domain of interactions of the observerd entity.
  3. It is an attribute of the observer to be able to interact independently with the observed entity and with its relations; for him both are units of interaction (entities).
  4. For the observer an entity is an entity when he can describe it. To describe is to enumerate the actual or potential interactions and relations of the described entity. Accordingly, the observer can describe an entity only if which he can observe it to interact or relate. This second entity that serves as a reference for the description can be any entity, but the ultimate reference for any description is the observer himself.
  5. The set of all interactions into which an entity can enter is its domain of interactions. The set of all relations (interactions through the observer) in which an entity can be observed is its domain of relations. This latter domain lies within the cognitive domain of the observer. An entity is an entity if it has a domain of interactions, and if this domain includes interactions with the observer who can specify for it a domain of relations. The observer can define an entity by specifying its domain of interactions; thus part of an entity a group of entities, or their relations, can be made units of interactions (entities) by the observer.
  6. The observer can define himself as an entity by specifying his own domain of interactions; he can always remain an observer of these interactions, which he can treat as independent entities.
  7. The observer is a living system and an understanding of cognition as a biological phenomenon must account for the observer and his role in it.

— Humberto Maturana, Biology of Cognition

GedTheGreysHain - 02 Feb 2001