Shadowrun uses a skill check system based on dice pools and opposed checks. The basic mechanism for opposed checks is quite simple: each party constructs a pool of d6s based on their combined attribute and skill score, and success occurs on a 5 or 6. The person who rolls more successes wins, and the number of successes decides their degree of success.

When I saw this system I thought that there must be a way to recalculate it as a single dice roll. A dice pool of this kind is essentially binomial distributed, and the sum of binomial distributions is binomial, so I thought that the difference of binomial distributions would also be binomial distributed and it would be fairly easy to obtain analytically a formula for a new dice roll based on the probability of success (1/3) and the number of dice in each pool. In fact the difference of two binomial distributions is not binomial (see my appendix below) and the dice pool mechanism is quite complicated. In the case of dice pools of equal size it creates a symmetric, non-binomial distribution that tends towards normality as the size of the dice pools increases; for uneven numbers of dice it creates an appropriately skewed distribution that has no easy calculation formula. In fact, it is fairly easy to show that for equal numbers of dice in the conflicting pools, the probability of success tends towards 50% as the size of the dice pools increases.

To show this, I wrote a simple program in R that calculates the probability of success for opposed dice pools ranging in size from 1 die in each pool to 30 in each pool. I ran the simulation for 10000 rolls for each dice pool, and calculated the probability of success for each roll. In all cases the dice pool of the opponents are of equal size and the success probability is 1/3, as in the standard rules. Figure 1 shows that as the number of dice increases the chance of success tends towards 0.5. That is, a PC with skill and attribute of 10 each, and modifiers of 10, when doing an opposed check against an exactly equally matched PC, will be successful 50% of the time; whereas the same situation for characters with just an attribute and skill score of 1 will show a vastly reduced chance of success.

I’m not sure whether I like this outcome or not. Superficially, given low-skill characters are more likely to fail generally, it makes sense that they should be more likely to fail against an opponent of equal skill. But then, it seems reasonable to suppose that the chance of success when opposed by someone with the same skill as oneself should be constant. Which assumption is better? In WFRP3, difficulty of the check is set by the opponent’s skill but is not random, and usually involves competing against dice with a higher chance of generating failure than one’s own dice have of generating success. Is this a better model? Other dice pool systems probably use a fixed target number – is this better? Maybe a fixed target number can be manipulated to generate a fixed failure rate (if it is based on the contrast of the PC skill and the NPC skill). But then again, this opens the possibility that PCs can do better in opposed than unopposed checks. For example, in Shadowrun, when doing an unopposed check the maximum probability of success for a PC with attribute 1 and skill 0 is 1/3. Presumably when they oppose someone with attribute 1 and skill 0 their chance of success should be less than 1/3? If one accepts this proposition, then Shadowrun is perfectly balanced, and the only question is how long it takes to get to 50% success. This pace can be changed by using different success targets and dice sizes: for example, a success threshold of 7 on d10 slightly reduces the chance of success for any given dice pool.

Note that by the Strong Law of Large Numbers, it is impossible to change the limiting probability for opposed dice pool checks, no matter the threshold probability or the die size. This is because as the dice pool grows in size each dice pool becomes increasingly close to normally distributed; but when subtracting one normal distribution from exactly the same normal distribution there is, of course, a 50% chance of getting a positive number. So as the distributions get more normal, so too does the average chance of success tend to 50%. Increasing the dice size and reducing the success threshold will delay the onset of this 50%, but Figure 1 shows that for most PCs and most campaigns, d6 will suffice.

Given these results, I think that the Shadowrun dice pool system is pretty close to perfect; and there is no easy way to modify it or any similar dice system to get more nuanced results. I will shortly be examining WFRP 3 dice systems to see if they produce more subtle outcomes. Stay tuned!

Appendix: Proving that the difference of two Shadowrun dice pools is not binomial.

When both the PC and their opponent have a total skill of one, the opposed check becomes a challenge of 1d6 vs. 1d6. In this case there are three outcomes: -1 success (opponent wins and PC loses); 0 success (both win or both lose); +1 success (PC wins and opponent loses). For a single success probability of 1/3 the probability of each event can be easily calculated without special mathematics as 2/9, 5/9 and 2/9 respectively. This means that the probability of -1 and +1 are equal. If this distribution is binomial, then it can only occur from a binomial distribution with 2 trials and a probability of p, since this is the only binomial distribution that allows three distinct outcomes. Thus if we calculate the probability of 0 successes or 2 successes under such a distribution and set it equal to the extreme probabilities obtained for the 1 vs. 1 shadowrun check, we can see the conditions under which they are equal. Under a binomial distribution with probability p and 2 trials, the probability of 0 successes is (1-p)^2; the probability of 2 successes is p^2. Comparing with the 1 vs. 1 Shadowrun check, we see that these two probabilities must be equal (as they are in the Shadowrun check). That is, p^2=(1-p)^2. This is only possible if p=1/2. But in the Shadowrun check p=1/3. Thus, by contradiction, the Shadowrun check cannot be binomial. If any one check is not binomial then it follows that we cannot expect a general rule in which checks are binomial. Thus, through contradiction, Shadowrun opposed dice pools are not binomial and no formula can be deduced which will enable calculation of binomial probabilities in Shadowrun.

For general opposed dice pools, the probability distribution is obtained by calculating the cross-correlation of the two binomial probability densities. An equivalent calculation for the Poisson distribution is shown in Wikipedia (the Skellam distribution) and is obviously nasty – it involves Bessel functions, which is an immediate “do not enter” sign. The equivalent calculation for the binomial distribution involves a calculation of products of binomial coefficients, and my combinatorial kung fu is not up to it, but I think at least for opposed checks with equal numbers of dice it can be solved analytically, though not in a way that is useful for gamers. I think such a solution is available in a textbook by Ashkey (?) but I don’t have the book or the will to read it. So more complicated solutions to the problem will be found numerically or not at all. I may revisit this problem in order to compare Shadowrun with WFRP 3. But for now, I’m shying away from it for obvious reasons!