Today's blog update will be about the core dice resolution system used in the game. Even though it could still change until the game is finished, the ideas behind it will remain the same.

The input of this resolution is a value, usually a character skill. A check can be attempted against a fixed target, or against an opponent skill. In the latter case, we simply roll for each character, and the one with the highest score wins.

Characteristics of dice systems

When I started designing homebrew pen and paper RPG, I used to pick a dice resolution system because it looked cool, or because it was widely used. But it made me realize which features were important in a dice resolution system, and the way they vary with skill levels. These characteristics are :

  1. The range of possible results
  2. The distribution of the results
  3. The variance

Even though it is rather obvious, it can be easy to forget to pay attention to some of the consequences of choosing a particular resolution system.

Result range

The range of possible results is the possible outcomes of a single dice check. The range can be open-ended or not, and fixed or depending on skill level.

Open ended

An open ended dice roll system (also called exploding dice system) is one in which there is no maximum value : Some scores allow you to add a new die to the total (which can also explode if you roll one of the exploding values) It would also work for the minimum value, but the latter case is much rarer. Open ended systems allow an infinite range of task difficulties, going from lacing your shoes to inventing time travel, but then, it can be hard to picture what each difficulty represent, and they add some discontinuity to the result distribution for a given skill level.

Fixed or moving result range

This characteristics is simply the evolution of the range of result with the skill level. For instance, in systems using dice + skill (D20, CODA, West end Games Star Wars), where you add a die, or several dice to your skill, the range is minDice+skill-> maxDice+ skill, so it varies with the skill level. You can make some results an automatic failure, but it introduces some other problems, like never ever being able to get past 95% chance of lacing your shoes. The range, for D20 becomes 1, skill+2->20. On the contrary, a fixed result range system will have the same range of results for characters of different skill levels, but the probability of achieving a higher result will be much lower for someone with a lower skill level. GURPS is an example of fixed result range, where 3D6 are rolled, and are compared to a target number which depends on the skill and difficulty of the task.

Probability distribution

The curve of the result is usually either a flat one (D20) or a bell curve one (roll and keep, dice pool systems, Gurps). The bell curve has a larger probability of getting values around the average, while with a flat curve, each result in the range will have the same probability of occurring.

probability distribution for a roll of 3D6 vs a roll of D20

Distribution and variance for 3D6 1D20. Both have the same expected value, but their probability distribution and variance are quite different

The roll and keep system will result in an asymmetric curve, as the more dice you roll (and don't keep), the more often higher results will occur. Given that we settled for a fixed result range, we wanted a bell curve distribution for the game, to make it less likely that a champion would hurt himself with his own sword and bleed to death.


Variance represents the sharpness of the curve. A low variance random event will strongly gravitate towards the mean, while a high variance one will have results that differ significantly.


High variance (green) and low variance (red) rolls with the same expected value of 0.

The two exemples we saw (3D6 and D20) both have the same variance regardless of skill level, but we may want to have variance change with skill.

What about Zodiac Legion?

Monkey with typewriter

(The infinite monkey theorem states that a monkey hitting keys at random on a typewriter keyboard for an infinite amount of time will almost surely type a given text, such as the complete works of William Shakespeare.).

So what are we looking for in the game? Given that Zodiac Legion is mostly about combat, we decided to go for a fixed result range, meaning that no one is ever safe from a pitchfork hit by an untrained peasant. That would also mean that a chimp would have a chance to discover time travel, but that would only be a consequence of the Infinite monkey theorem.

Given that we use a fixed result range, the probability distribution needs to be a curve that peaks at low score values at low level, and goes to high values at higher levels. The variance question is trickier : Ideally, we'd like a low skill character not to pose a problem by himself to a higher skill one, but still have a chance to cause some damage to the stronger one. We first went with using a variation of the Silhouette system (Jovian Chronicles, Heavy Gear), where we roll n dice, and keep the highest. This system has a high variance for low skill values, and a low one for high skill values. But its major shortcoming is that skill peak pretty quickly (at skill level 3, you already have 42% chance of scoring the maximum value if using D6, and 27% if using D10), so we went with the following

The result of a skill check is the 2nd highest die among (skill + 2) dice

Score distribution

Distribution and variance for 50000 rolls of (skill+2)*D20, where we keep the 2nd highest die

But it occurred too often that someone with low skill would murder someone much better, or champions being stopped by an untrained guard, so we decided to go with a very low variance at both end of the skill spectrum, so that untrained characters have a very low chance of achieving anything, and heroes are guaranteed to do well. But characters in the middle will have a higher variance score, and be able to perform awesome deeds, while occasionally failing at basic tasks.

A system which has these properties would be one where we roll a fixed amount of dice, and keep the (skill)th.

In the following graph, we roll ten 20 sided dice, and keep the skillth lowest, for skill varying between 1 and 10.

Score distribution

Distribution and variance for 50000 rolls of 10D20, where we keep the skillth lowest

As wanted, skill 1 character will perform consistently very badly, while skill 10 have awesome performances, and skill 6 has a large variance. But the variance is much lower for both ends, so if we want variance to be smoother, we can soften both ends as follow :

The result of a skill check is the (a + skill)th lowest die among n dice rolled where Skill + 2*a <  = n and a is a fixed parameter.

We can then fine tune the system by modifying the size of the dice and the paramater a after the skill range is fixed. If we use a = 1 as parameter, and roll 12 dice, we get the following distribution :

Score distribution

Distribution and variance for 50000 rolls of 12D20, where we keep the (skill+1)th lowest

Further readings

If you happen to be looking for more reading on the properties of specific dice systems, I recommend you the following links :

If you want to discuss this topic, or if there is a book or article I have missed, please join us on the forum