I’m a big fan of dice and cards, both at a table and when used as an abstraction in video games. I find they add a certain delightful physicality to what would otherwise be a boring random() call.

Dice systems form a language of sorts, with various nouns (numbers and dice) and verbs (operations on them), allowing a player or designer to form sentences (“3d63d6 exploding on sixes”, “2d202d20 keep highest”)—and there exist a number of formal languages encoding that dice–roll language into a form understandable for computers.

Dice System Aesthetics

Certain dice–roll sentences are more aesthetically pleasing or fun to use than others—they exhibit particular desirable properties. Those are, in my opinion, and in vaguely descending order of importance:

  • Non-Arithmeticity: a roll does not involve operations other than counting and comparison. An example is a roll that succeeds if at least one of a pool of six–sided dice comes up with a 6; a counterexample would be something like “the sum of 2d202d20, minus 2, multiplied by 3”.
  • Monadicity: a roll resolves in one operation. The obvious example is the roll 1d61d6; an extreme counterexample would be playing a full round of blackjack to determine success or failure.
  • Criticals: a roll can be exceptionally (critically) successful or unsuccessful. The simplest example is 1dN1dN with critical failure on a 1 and critical success on NN; a counterexample is 1d61d6 with success on a 4+, which only results in failure or success.
  • Augmented Success: a roll conveys more information than just success or failure. The best example is Genesys, which uses separate symbols for Success/Failure and Advantage/Threat, allowing for success (“Yes”), success–with–threat (“Yes, but…”), failure (“No”), and failure–with–advantage (“No, but…”).
  • Constrained Dice Pool Size: as few dice as possible are involved in a roll. 1dN1dN is ideal; rolls involving dozens of dice are unwieldy, prone to miscounting, and can make players run out of physical dice to roll, forcing them to memorize prior results and reroll already–rolled dice instead.
  • Simple Dice Pool Construction: constructing a dice pool does not require complex calculations or lookups in tables. An example system with very simple dice pool construction would be one where the player rolls as many same–sided dice as they have points in a skill.
  • Uniformity: all rolls are constructed the same way. For example, every random event is resolved by rolling 1d1001d100; a less obvious example is rolling as many dice as the character has points in a skill. A counterexample would be systems where e.g. every type of weapon uses a different kind and number of dice for calculating damage.
  • Estimatability: the odds of success are easy to estimate. Blood Bowl is a great example, since it only uses six–sided dice, very rarely more than two, and never more than three per action. Players very quickly pick up that e.g. rolling 4+ on 1d61d6 with reroll only fails (36)2=936=14(\frac{3}{6})^2 = \frac{9}{36} = \frac{1}{4} of the time, or that 3+ on the higher of 2d62d6 with reroll fails only (26×26)2=(436)2=(19)2=181(\frac{2}{6} \times \frac{2}{6})^2 = (\frac{4}{36})^2 = (\frac{1}{9})^2 = \frac{1}{81} of the time. Rolling percentage dice under a target number is also a great example, since the target number is exactly the percentage chance of success.