༺☆༻ V ༺☆༻

Exploring Dice Pools - A Probability Analysis

Posted on Wed Dec 25 2024 00:19:39 GMT+0000 (Coordinated Universal Time)

I’m currently designing my own tabletop RPG and considering using dice pools as the core mechanic. I believe that to effectively implement a dice mechanic, you first need to thoroughly understand it. So, I’ve analyzed various probability distributions related to dice pools, and plotted a few of them.

Definitions

For the purpose of this post, a dice pool is a mechanic where you roll a number of dice and count how many of them succeed based on a threshold value.

A dice pool system has the following properties:

Here, I’ve chosen to only consider six-sided dice, due to their popularity. Also, I find a pool of d6s more esthetically pleasing than a pool of other dice - d8s, for example.

Probability of Passing the Test

I’ve plotted the probabilities of passing a test for pool sizes ranging from 1 to 12 dice, with thresholds from 2 to 6, and required successes ranging from one up to the pool size (where every die would need to succeed).

Several interesting patterns emerge:

Analysing Difficulty Granularity

Dice pools are often criticized for offering less granular difficulty scaling than other dice systems.

Below, I’ve plotted the probabilities of passing different test configurations for each pool size, ordered from hardest to easiest. The label X:Y represents a test with Threshold X and Y required successes. When probabilities were too close together, I’ve only labeled the first test in the cluster.

Key observations:

My conclusion is that yes, you can make dice pools very granular, it would be, however, quite tricky.

Analysing Success Requirements and Thresholds

The above probabilities were calculated using a fixed threshold of 4.

Some key insights:

Opposed Tests

An opposed test occurs when two characters roll their respective dice pools and count successes, potentially with different thresholds. The test’s outcome is determined by the difference between the number of successes rolled by each party.

Dice pools demonstrate particularly predictable and intuitive behavior in opposed tests. The plots above show probability distributions for various combinations of pool sizes and thresholds. Each row represents a different matchup (4 vs 4, 6 vs 4, and 7 vs 4 dice), while the columns show different threshold combinations (3 vs 5, 4 vs 4, and 5 vs 3). The x-axis represents the difference in successes (attacker’s successes minus defender’s successes), while the y-axis shows the probability of each outcome.

We can observe that the most probable outcome tends to be the difference between the expected results of each individual pool, with more extreme outcomes becoming increasingly unlikely. This creates a bell-curve-like distribution centered around this expected difference. Adjusting the thresholds affects the shape of this distribution - a higher threshold for one side creates a steeper probability drop-off in that direction, while a lower threshold produces a more gradual slope. This makes opposed tests particularly suitable for modeling competitive situations where small advantages should typically produce small but meaningful differences in outcomes.

Conclusion

Generally speaking:

Given all that, I’ve chosen to use linear die (one die + modifier, roll over) in my system.

Mathematical Analysis

Here are the equations used in the above analysis.

For a die with nn sides and a threshold tt, the probability of rolling a success on a single die is:

P(success)=nt+1nP(success) = \frac{n - t + 1}{n}

For a pool of dd dice where we need exactly ss successes, the probability follows the binomial distribution:

P(exactly  s  successes)=(ds)ps(1p)dsP(exactly\;s\;successes) = \binom{d}{s} \cdot p^s \cdot (1-p)^{d-s}

where pp is the probability of success on a single die.

The probability of achieving at least kk successes is the sum of probabilities for all possible success counts from kk to the total number of dice:

P(successesk)=i=kd(di)pi(1p)diP(successes \geq k) = \sum_{i=k}^d \binom{d}{i} \cdot p^i \cdot (1-p)^{d-i }

For opposed tests between an attacker with aa dice and a defender with bb dice, the probability of achieving exactly a difference of Δ\Delta successes is more complex. When Δ0\Delta \geq 0:

P(Δ)=i=ΔaP(exactly  i  attacker  successes)P(exactly  iΔ  defender  successes)P(\Delta) = \sum_{i=\Delta}^a P(exactly\;i\;attacker\;successes) \cdot P(exactly\;i-\Delta\;defender\;successes) =i=Δa(ai)pai(1pa)ai(biΔ)pdiΔ(1pd)b(iΔ)= \sum_{i=\Delta}^a \binom{a}{i} \cdot p_a^i \cdot (1-p_a)^{a-i} \cdot \binom{b}{i-\Delta} \cdot p_d^{i-\Delta} \cdot (1-p_d)^{b-(i-\Delta)}

When Δ<0\Delta < 0, the summation changes to:

P(Δ)=i=0a(ai)pai(1pa)ai(biΔ)pdiΔ(1pd)b(iΔ)P(\Delta) = \sum_{i=0}^a \binom{a}{i} \cdot p_a^i \cdot (1-p_a)^{a-i} \cdot \binom{b}{i-\Delta} \cdot p_d^{i-\Delta} \cdot (1-p_d)^{b-(i-\Delta)}

where pap_a and pdp_d are the probabilities of success for the attacker and defender respectively, based on their individual thresholds.

The expected value of the difference in successes can then be calculated as:

E[Δ]=i=baiP(i)E[\Delta] = \sum_{i=-b}^a i \cdot P(i)

These equations form the foundation for all the probability distributions shown in the previous plots and can be used to precisely calculate the odds of any particular outcome in a dice pool system.