Back to index

The copyright situation for this article is unclear. It does not belong to the author of this site. Please see the copyright notice. If you have information about the copyright contact me!

The Skotos Proximity System

by Skotos Tech Inc

A Sense of Place

Characterization and a Sense of Place

In fiction offering a sense of place is an important part of the author's craft. Most writing instructors suggest giving the reader a distinct sense of place and time in the opening paragraph if not the first sentence. If a writer fails to do so, the reader can be confused. Without a location to anchor him, the reader will be unable to envision either the characters inhabiting that location or the actions they engage in.
The pioneer of computers

Alan Turing stepping out of a bus.

When multiple characters are involved, it is also important to explain how characters are positioned relative to another. This not only gives the reader a better sense of place, but also offers characterization. As an example, notice the sense of place in the opening sentence of Dashiel Hammett's _The Thin Man_:

"I was leaning against the bar in a speakeasy on Fifty-second Street, waiting for Nora to finish her Christmas shopping, when a girl got up from the table where she had been sitting with three other people and came over to me."

In this introduction we discover the protagonist is quite comfortable lounging in an illegal bar, probably in the twenties, in some large urban city in the USA. He has a girlfriend or wife that is wandering elsewhere, and he isn't too worried about being separated from her. A young woman socializing with others notices him, though he's doing nothing in particular to attract attention, and goes over to him. You already know that she wants to speak to him.

This paragraph gives a remarkable sense of place and of characterization in just a few words.

Interactivity and Problems of Place

In multiplayer interactive fiction, a basic sense of place is easy. Either the player exists in a room that can be examined or the player exists in a scene that will be described as he takes actions. However, multiplayer interactive fiction does a poor job of integrating that sense of place with other players in the game.

This probably comes from multiplayer interactive fiction's roots in single player games like "Adventure" and "Zork" , where there is truly only one significant and realistic character--the player. At Infocom's height, the best NPC were just a notch above a puzzle--not truly a character.

In multiplayer interactive fiction, everyone is significant, and everyone passes the Turing test (well, almost). So we need to find a way to describe a player's interaction with his environment and with other players in a fashion that is significant to characterization.

The locale has been described, but how does the player fit in? Is he comfortably leaning against a wall, resting at a table with his head in his arms, or nervously standing at the door, waiting for someone? When someone else arrives, how does he react? How does he show his interest or lack of interest?

Problems solved by the Skotos Proximity System

Skotos solves some of the problems of characterization and a sense of place through a technique called "Proximity". With the Skotos Proximity System, combined with the Skotos Expression System (described in another Technical Summary), a player can be near a door, sit at a table, pray before the altar, or kneel in front of his bride.

The proximity system also solves other problems. If someone approaches you to kiss you, you have an opportunity to retreat before the kiss is completed. If you drop something, it is close to you and someone else will have to be just as close before they can pick it up. If you are sitting at a table, you will not notice other people in the room unless they are shouting, or unless you decide to pay particular attention.

Summary of the Skotos Proximity System

The Skotos Proximity System creates proxes, or proximities, which qualify associations between objects.

The Prox

A prox (short for proximity) is a distinct association between two objects that describes the spatial relationship between those two objects. It always includes a preposition (on, near, in, etc.) and a vector.

Example:

   spoon->ON->table

In this case the preposition is _on_ and the vector is from the spoon to the table. In this situation, the spoon is described as "The spoon is on the table" and the table is described as "The table has a spoon on it."

The spoon is considered to be a "child" of the table, and the table is considered to be the "parent" of the spoon. The vector from the spoon to the table (i.e. child to parent) is considered "up", and the reverse vector from the table to the spoon (i.e. parent to child) is considered "down".

Prox Chains

If you choose an object, find its parent (there can only be one), follow that parent's prox up to another parent, etc., the entire set is known as the "prox chain".

For example:

   statue->ON->pedestal->NEAR->northwall->IN->room

Prox Tree

If you choose an object, find its children, and discover all the children of every child, all the way to the bottom of every chain, the entire set is known as a "prox tree".

For example, this is a prox tree of a room:

   statue->ON->pedestal->NEAR->northwall->IN->room
                 painting->ON-/              |
        bowl->ON->table->NEAR->southwall->IN-/
       spoon->ON-/                           |
     chair->NEAR-/                           |
                                   floor->IN-/

Adjacent, Nearby, Vicinity, Chamber, and Bordering Proxes

Every object is "adjacent" to its parent and children. For instance Alice is sitting next to Carol who is sitting next to the table; Carol is adjacent to both Carol and the table, but Carol is only adjacent to the table.

By default, unobvious actions and quiet sounds can be heard by all objects that are adjacent. Thus when Alice whispers, Carol can hear her. When Carol whispers, Alice can hear her, and if the table could listen, it would hear her as well.

The "nearby" class of an object is determined by going up the object's tree until the first non-volitional parent is found. All children of that parent, down several levels, are "nearby". For instance, everyone sitting at a table is nearby to each other, including the Alice who is sitting next to Carol who is sitting at the table, and Bob who is standing on the table.

By default everyone that is nearby will see all the actions and hear all the sounds of those who are also nearby. Thus everyone speaking in a normal voice will be heard by everyone at the table, and they will see all normal actions.

"Vicinity" is defined as everything associated with the same detail of a room (or container). The prox chain is traced up until a room/container detail is reached. Then, all children down several levels are considered to be in the "vicinity". For instance, Carol is sitting at a table in the back corner of a room (a detail of the room). She is in the vicinity of everyone at her table, of everyone to in the back corner of a room, and of everyone sitting at other tables in the back corner of the room.

By default only significant actions and loud sounds will be seen or heard by all that are in the same vicinity. Thus when Bob shouts and dances on the table, all in the vicinity will see and hear it, but they will not hear the normally voiced complaints of those that are at Bob's table.

Every object that is inside the same room (or container) is considered to be in the same "chamber". By default, a few very significant actions and very loud sounds can be seen or heard be everyone in the same chamber.

Two rooms (or containers) that share a common entrance/exit pair, are considering to be "bordering" one another. Very loud sounds or a general "din" of noise may also be heard in rooms bordering each other. Proxes in Practice/h2>

Proxes have a number of basic effects in the game:

Level of Description

In most cases when an object is described, only one level of proximity up and down is detailed.

   spoon->ON->plate->ON->table->IN THE MIDDLE OF->room

If you "look at room" you'll see "You are in a room with a table in the middle of it."

If you "look at table" you'll see "You see a table with a plate on it, in the middle of the room."

If you "look at plate" you'll see "You see a plate with a spoon on it, on a table."

If you "look at spoon" you'll see "You see a spoon on a plate."

Proxes with Stances & Poses

Prepositions are often combined with stances (i.e. "standing against the wall" or "sitting near the flowers"), or with poses (i.e., "reading in the chair") or both (i.e. "kneeling and praying before the altar"), as per the Skotos Expression System (see that Technical Summary).

However, certain proxes may be disallowed with specific stances or poses; for instance, you can't "kneel above the altar". Others stances or poses may require specific kinds of proxes, for instance, "with his arm around Carol".

The Power of Proxes

Proxes also allow for some more advanced effects:

Personal Space & Consent

People have personal spaces and proxes can be used to model this. Two proxes are defined for every player: Near and Close.

Characteristics of the Near prox:

Characteristics of the Close prox:

All volitionals (players, NPCs, and other living creatures) have some control over what happens when other people try and enter their Near or Close prox.

Avoiding Near Proximity

Volitionals may avoid approaches to Near proximity by changing prox before the attempt is complete.

Take an example where Bob is approaching Carol, who is sitting at a table. He moves across the room, approaches the table, then enters Carol's Near proximity. There's a slight delay before Bob's approach to Near proximity succeeds. Carol chooses to leave the table during this pause. She gets up and walks quickly away. Bob's attempt to approach Carol fails because her prox has changed.

Denying Intimate Proximity

Volitionals may refuse the close approach of another volitional into an intimate prox.

If Carol had not moved away in the example above, Bob would have then tried to enter her Near proximity. Carol sees the message "Bob begins to move close to you -- D)eny, A)ccept, R)eturn, or C)ounter".

Once Bob has entered Carol's Near proximity, a number of consensual actions are possible and objects can easily be traded.

A Sound System

A proximity system also allows for the creation of a more realistic sound system. Rough guesses can be made as to the distance of objects by using the prox classifications already described: Adjacent, Nearby, Vicinity, Chamber, and Bordering.

The basic of the Skotos Sound System is the son. This is a sound scale basic on subjective perception. It is used because it reflects the way in which humans respond to sound. The volumes of some basic evocations have been defined in sons:

Proxes, Speech & Sons

Proximity affects how clearly things can be heard. In an average room (ambient sound of 1 son) things are intelligible down to the level of a soft whisper (1 x 1/4 son) for adjacent proxes.

Each additional category of proximity (nearby, vicinity, chamber, bordering) increases the level of infallibility by approximately x4. Thus the minimum intelligible level for nearby objects in a normal room (1 son) is 1 son (1/4 x 4^1 x 1 son). Normal human conversation (4 sons) can be heard in the vicinity (1/4 x 4^2 x 1 son). Quiet shouts (16 sons) can be heard in the chamber (1/4 x 4^3 x 1 son). Screams can be heard in bordering areas (1/4 x 4^4 x 1 son).

Below these levels, words are increasingly garbled, down to the level of inaudibility (a multiplier of x1/4). Thus the minimum level at which something garbled can be heard in an adjacent prox is 1/4 son. This multiplier could be carried through all the categories: nearby 1 son; vicinity 4 son; chamber 16 son; bordering 32 son.

Other activities can increase these levels, such as paying attention, which is a x4 multiplier. Thus the absolute minimum level at which something garbled can be heard by an attentive listener in an adjacent prox is 1/16 son. This multiplier could be carried through all the categories: nearby 1/4 son; vicinity 1 son; chamber 8 son; bordering 16 son.

Conclusion

Proxes are a very useful method for setting up dynamically controled room descriptions. They are a very flexible method of controlling the depth at which you display descriptions and dealing with these sorts of problems in real time. In addition they allow for the creation of more fully modeled systems, such as the consent and sound systems described here.


Skotos is a game company currently writing a series of online multiplayer games. This article is copyright © 2000 by Skotos, used with permission.

(See also article "An Evening At Chez Skoot - Proxes Part 1: Consent" at http://www.skotos.net/articles/chezskoot.html)