Randomness and Nondeterministic Behavior

From MachinationsWiki
Jump to: navigation, search

Previous: Implementing Machinations Diagrams, next Case Study: SimWar


In many games, complexity is not the only source of nondeterministic behavior. Dice (or other random generators) are a good way to create nondeterministic behavior for those mechanics that are not the core of the gameplay. In this way, dice can be used to simulate the outcome of battles in Risk or Kriegsspiel on the one hand, or to simulate the conditions that affect the rate of production in a game like Settlers of Catan on the other. From the perspective of the Machinations framework, randomness is a good tool to inspire particular behavior from the players but it might also be used to obscure dominant gameplay signatures that originate from certain feedback structures, such as the dynamic engine pattern.

An account on how randomness can affect the behavior of the player is given by John Hopson (2001). He argues that consistent with the findings in behavioral psychology experiments, player behavior is affected by chance and the interval the player is awarded for actions. When a player has a chance to be awarded at regular intervals, the player's attention and activity will spike at those intervals, where as when those intervals have random lengths, the player will be active most of the time. After all, the next action might lead to a new reward. As such, it is vital that in a Machinations diagram you can set up random values as well as random intervals.

The effect of randomness on the dynamic engine signature is illustrated with the following experiment. A simple racing game for two players utilizes a simple dynamic engine. The goal of the game is to collect thirty 'distance resources' by running. But the player can also choose to invest three energy to produce an upgrade which will increase the rate of production of energy (see figure below). The energy production starts at a rate of 0.1 which means 1 resource is produced every ten seconds. Every upgrade improves this rate by 0.1. The artificial players controlling the red and blue diagrams are set up slightly differently. The blue player will first buy four upgrades before it starts running. The red player will buy only two upgrades. Obviously, blue's strategy is superior: blue wins every time.



When the energy sources are changed to have a probable output of 10 percent every second, and each upgrade will increase this probability by another 10 percent (see figure below), the pattern is broken. Red now has a chance of about 23 percent to win. In effect, the randomness can counter the effect of the feedback loop as was also suggested by Ernest Adams and Andrew Rollings (2007: 387).



Specifying Random Values

The Machinations tool allows the designer control over random values produced. As we have already seen, the percent sign ('\%') is used to denote a probability. A source that has probable output is labeled '20\%' will have a twenty percent chance to produce a resource every time step. The tool can also simulate dice rolls by using a similar notation for dice rolls and calculations that is commonly used in pen-and-paper role-playing games. In these games 'D6' stands for a random number produced by a roll of a single six-sided die, where as 'D6+3' adds three to the same dice roll, and '2D6' adds the results of two six-sided dice and thus will produce a number somewhere between two and twelve. Other types of dice can be used as well: '2D4+D8+D12' indicates the result of two four-sided dice added with the results of an eight- and twelve-sided die. Unlike pen-and-paper role-playing games, the Machinations tool is not restricted to dice that are commercially available. It can use five-, seven or thirty-five-sided dice.

Random Intervals

Intervals are created by using a slash ('/') for inputs and outputs. For example, a source that produces 'D6/3' resources will produce between one and six resources every three seconds. Intervals can also be random: a drain that has an input with a modifier that states '3/D6' will drain 3 resources with an interval between one and six seconds.



Previous: Implementing Machinations Diagrams, next Case Study: SimWar