Introduction

This is a cooperation between Wizardry and Steamworks and Rachel A. Umoren to create a contagion-like game for health-education purposes. The main idea is to create a game where various avatars can come in contact with various real-life agents that affect their health. There are certain “negative” area-of-effect (AoE) agents, that make the avatar loose health over time (HoT) and there are other “positive” agents, that make the avatar gain health over time.

For example, the following positive AoE agents are defined:

Value Description
-2 wandering of falling in slum water
-3 entering a bus
-3 riding on a motorcycle
-1 standing next to animals

respectively, the following negative AoE agents are defined:

Value Description
+3 sitting in a global health office
+2 sitting in a classroom area

The following rules are defined:

  • An avatar starts off with 100 health and experiences no regeneration of that health.
  • When an avatar enters the range of an AoE beacon, the health either increases or decreases, depending on the agent it comes in contact with, within the interval $[0,100]$.

The elegance of the presented solution comes from the fact that the objects that trigger effects do not have to contain scripts. Just giving primitives on a simulator a special name will be picked-up by the overhead display text. Furthermore, the mini-language that is placed in the name field of the object allows to define both positive and negative effects. Finally, the script uses fast-recursive functions that are able to process surrounding events very fast; a lot of the technolgy comes from the collection of snippets in the Wizardry and Steamworks FUSS LSL repertoire.

Set-Up

  1. Create a primitive on the ground, a sphere for example and drop the script below inside it.
  2. Take the sphere to inventory and wear it. Ideally, attach it to either the nose, skull or any free spot and raise it above your head so it shows clearly.
  3. From the sections below, create a primitive on the ground, or modify a primitive so that it contains the special name syntax. This can be a box, a house, a cow or anything that would trigger an AoE.

Implementation

The cleanest implementation we found, that is able to grant further expansions on the same scheme of “positive” and “negative” AoE agents, was to have a primitive attached to each participating avatar that dynamically adjusts the health by scanning the surroundings.

This is an elegant solution because it requires only one script placed in the avatar's overhead health display and allows builders to create custom primitives and easily add effects.

Example

The following is an example of an AoE agent, in this case a cow:

that triggers an AoE on the avatars overhead display. As you can observe, the name of the cow object is special: it contains a comma-separated list of values that the overhead display reads when it is in close proximity of the cow.

Technically speaking, the overhead display script from the code section reads the specially crafted name of the object and then interprets it. This is done with the quick-description reader which is altered to interpret any string.

Creating Area of Effect (AoE)

The syntax is a comma-separated values of names to keys, for example:

parameter_1=key_1,parameter_2=key_2,...

and the currently implemented parameters are given by:

Parameter Description Example
name the name of the effect name=cow
health the amount of health that will be added to the health of an approaching agent (positive for addition, negative for subtraction) health=-1
range the range of the AoE, measured in meters (if an avatar is further away than this range, they will not be affected) range=5

Reading the parameters for the previous example, the cow object has the following parameters defined:

name=cow,health=-1,range=5

which means that the cow object will trigger a cow effect, decreasing the health of the avatar by 1 per second if that avatar is in a 5 meter radius from the avatar.

This allows you to create AoEs with positive effects, for example:

name=hospital,health=5,range=10

which would mean that when the avatar is in a 10 meter range from the hospital object, the avatar will gain 5 health units per second.

Stressor and Anti-Stressor Model

You can create stressors (environment effects that are harmful) and anti-stressors (environment effects that are beneficial) which will substract, respectively add points to the health-HUD. This is very easily achieved by playing on the parameters described in the area of effect section.

In this example, we create two boxes, the red one being a stressor and the green one being an anti-stressor. As you can see from the illustration, either one of them either adds or subtracts health from the HUD by specifying a positive health=5 or a negative value health=-5 in the object's name.

Keep in mind that the graphical representation can be anything you want it to be, just that the name is set to a list of parameters.

Index


secondlife/contagion.txt · Last modified: 2017/02/22 18:20 (external edit)

Access website using Tor


For the copyright, license, warranty and privacy terms for the usage of this website please see the license and privacy pages.