Reputations

Summary

Reputations started as a game that mainly revolved around the use of simple time series analysis methods to incorporate a reputation system, getting the player to have to befriend multiple people with very differing opinions to get a better outcome. As time went on, this evolved into a game that uses events to create a branching storyline, with the reputation system being used for prerequisites of some events.

Reputations

The basis of the reputation system involves single exponential smoothing from time series analysis:

r(n+1) = a * r(n) + (1 - a) * o(n+1)

where r(n) is the reputation at point n and o(n) is the person’s opinion to action n. The value of r, o and a are between 0 and 1, and the value of a depends on the person who is forming the opinion.

The value of a takes into account things like:

  • Whether the opinion of the most recent action is higher than the current reputation value.
  • How long it has been since the first action.
  • Whether the person forming the opinion is more likely to judge a person by their most recent actions, or rely on their already formed opinion of that person

Also, as well as the value of a, the opinion of an action itself differs from person to person. An action can be split up into multiple properties, and each person has their own opinions about what properties they value most and how much each property affects the person’s opinion of an action.

Events

The story is built up of a bunch of different events that can occur throughout the time period of the game. The success of these can rely on:

  • Whether certain previous events have occurred or not
  • Whether certain people are present or missing
  • Whether certain item (or item properties) are present or missing
  • Whether a reputation value is within a certain range
  • Etc…

This web of events lead to a way of making a branching storyline that differs slightly from the normal method of branching storyline. The normal method involves going down one storyline that can branch off at times, but will generally stick to the original storyline rather closely, even to the point of re-joining the original storyline. As this method does not have an original storyline, but a collection of possible events, there is no storyline for the branches to stay close to. The main downside of this method is that the number of events can grow to very large proportions, and can grow exponentially when adding characters/locations.

Currently Working on

Work is currently being split between adding/fixing functionality, as well as the creation of story elements and creating characters/locations. Therefore there will be less work being done on the actual scripts, although it’s not stopped entirely.