Skip to main content

Worlds

A world encompasses a complete team of player personas needed for a single model run. The users participating in the run are a subset of a group and are assigned to the world.

A user session can contain the user's connection to a world and their roles in that world.

learn more

Worlds are implemented in the JS libraries by the World adapter.

Attached run

A world contains a run key for the model run it is associated with.

When you start the run associated for a world, Epicenter restores the run identified by the world's run key. If the world's run key is set to null, Epicenter starts a new run for it.

In some cases you need to assign a different run to the world. For example, if the facilitator wants the simulation to start over, or the group wants to play the simulation again.

To attach a different model run to the world, update the run key using the worldAdapter.update() function.

warning

Epicenter does not validate the run key you assign to the world. We just store it. You must ensure that you assign a valid run key to a world.

Orbit

The world's orbit is the group or episode that the world belongs to. Essentially, the orbit is the scope of a world.

World persona

A persona identifies the role a user plays within a world during a model run. Figuratively speaking, a persona is a character in a game.

A specific user can only be assigned to a single world persona within the orbit of that world.

Populace

A populace is a set of personas for a world. It is a template of how a world is composed of users. A populace is scoped. If you anticipate always using the same set of personas for a model, set the populace' scope to be the project. Alternatively, if runs of the same model can have a different set of players depending on the circumstances, you can create different populi with various scopes.

Note

A populace doesn't have to be scoped to a world. You can assign a populace to other entities, such as projects, groups, and episodes.

Populace functions

Assignment

An assignment is a user's connection to a persona in a specific world. A user can only be assigned to one world within that world's orbit.

The Epicenter JS libraries offer three ways to assign users to world roles:

  • To assign the current session's user to a world, call the selfAssign() function.
  • To assign multiple users to a specific world, use the editAssignments() function. In this case, if a user is already assigned to a world within the same orbit, Epicenter removes them from the previous assignment and assigns them to the specified world.
  • Automatic world creation. In this case you provide Epicenter with a list of user assignments by calling the autoAssignUsers() function. Worlds are created automatically as needed, and all the users in the provided list are assigned a persona. If one of the specified users is already assigned in the same persona in the same orbit, that assignment is left unchanged.
Note

When a persona for assignment is not specified, Epcienter uses an assignment objective value to determine how many users to assign to each role.

Assignment objective

The assignment objective is a concept used when users are assigned to world personas automatically, i.e. if you don't specify a persona when assigning a user.

A persona can specify a minimum, a maximum, and an optimal number of assigned users. The assignment objective directs Epicenter to use one of those three metrics when automatically assigning users. For more details, read about the OBJECTIVE enum.