Inspired by https://gurpsland.no-ip.org/articles/PolyGURPS.htm, which gets rid of ±3 modifiers, but still preserves ±2, expands the result range, and also doesn't go far enough to make use of Catalan dice.
Implications of Central Limit Theorem must be upheld. Singular die has uniform distibution, 2 dice have a triangual distribution, 3 dice start to look like Bell curve, and the more dice, the more normal the distribution, and the smaller the spread.
NOTATION CONVENTIONS:
- Constant: d1
- Coin: d2
- Platonic: d4, d6 (with special dF and dⅢ), d8, d12, d20
- Trapezohedra: đ10, đ10*10 (maybe also d14, d16, d18, d22, d26, d28, and d32)
- Catalan: d12 (rhombic), d24, d30, d48, d60, d120
- Icospheres: d80 (from d20), d180 (from truncated d20), d320, d500 ... (geohedron class I)
- Soccer Balls: d32 (truncated d20), d42, d92, d162, d262, d362 ... (geohedron class II)
- Funky: d(2k+1), d100 (equivalent to d% pseudodie)
đ means either use a 0-based dice or just read the die face count as 0. Conversely, d means either use a 1-based dice or just read the 0 as the die face count. Some expensive design dice have a special symbol to be read either as 0 or the face count. đ% means read 00 as 0, and d% means read 00 as 100. dF is a cube that rolls -1, 0, or 1.
Odd-dice are most easily manufactured as even-dice with each number twice, namely the Roman dIII, but DCC sets include weird-shaped odd-dice, called funky.
This article was written during waiting for "Theory of Infinity" sets that I ordered shortly after Master's thesis defense. What an absolute state of international wholesale shipping. The set also contains d5 (tapered triangular prism), d7, and d16, but these are nonisohedral, therefore not considered (same goes for icospheres and soccer balls). It doesn't include d48 and d120. DCC sets also contain nonisohedral d14.
DICE FUND:
Listing the available dice fund provides substitution constraints. I provide mine as an example of what you can get your hands on in Czechia, it might get outdated over time. Dice of the same design cannot be rolled for different purposes at the same time, you could pick which result goes where.
Total dice: ~500d2, 4dⅢ, 63d4, 4d5, 124d⚅ + 61d6 + 1d🌈, 4d7, 63d8, 65d10 + 64d10*10, 64d12, 4d16, 65d20, 4d24, 4d30, 5d60, 4d100
Same design maximum: ~20d2, 2d{Ⅲ,5,7,16,24,30,60,100}, 3d{4,6,8,10*10}, 36d⚅, 1d🌈, 4d{10,20}
Different designs: ~50d2, 2d{Ⅲ,5,7,16,24,30,100}, 28d{4,10,10*10,12,20}, 25d6, 11d⚅, 1d🌈, 27d8, 3d60
GENERIC DICE SUBSTITUTIONS (BabicaDice):
Cooking recipes of Jiří Babica are notorious for being context-free grammars allowing for some wild substitutions of lacking ingredients, in the form of "when you don't have ginger, put in garlic or onion or horseradish". Might be how potions evolved into soups.
Similarly, Catalan dice may be a bit harder to obtain in Eastern Europe due to international shipping and customs. Replace the dice the roll calls for using factorization and composition into radix rolls like d% (RadixDice):
d120 = 2 * 2 * 2 * 3 * 5 => đ12 * 10 + d10 (or đ 6 * 20 + d20 or đ4 * 30 + d30) d100 = 2 * 2 * 5 * 5 => đ10 * 10 + d10 d 60 = 2 * 2 * 3 * 5 => đ 6 * 10 + d10 (or đ30 * 2 + d 2) d 48 = 2 * 2 * 2 * 2 * 3 => đ 8 * 6 + d 6 (or đ12 * 4 + d 4) d 30 = 2 * 3 * 5 => đ 6 * 5 + ceil(d10/2) (đ6 * 5 + d5 or đ10 * 3 + d3) d 24 = 2 * 2 * 2 * 3 => đ 6 * 4 + d 4 (roll hour as d12 with d2 for AM/PM) d 20 = 2 * 2 * 5 => đ 2 * 10 + d10 d 12 = 2 * 2 * 3 => đ 6 * 2 + d 2 d 8 = 2 * 2 * 2 => đ 4 * 2 + d 2 d 4 = 2 * 2 => đ 2 * 2 + d 2
Cannot do anything about lack of d2. You may be able to do something about lack of d10 and d6 if you have weirdly shaped d5 or d3, which also help with d30. Luckily, d10 comes twice a D&D set (ignore or make up tens as you go), d6 is available in normie stores, and for d2 pay for dice sets in cash and use change.
There is a certain optimization of mental computation. Each đX*Y+dY can be substituted for đY*X+dX. Humans like to read decimals directly, and being guaranteed a smaller non-decimal constant to multiply with is preferrable, that's why d48 is stated as đ8*6+d6 instead of đ6*8+d8, and d24 as đ6*4+d4 instead of đ4*6+d6. Decimally extend RadixDice to virtual d40, d80, d200, d240, d300, d480, d600 etc. by multipling by 10 and adding more d10s as pleased. For binary, mix and match đ2, đ4, and đ8 for desired amount of bits.
There may be a case of lacking enough of a particular type of dice, be it Catalan or Platonic or d100/d10. Pivot around the face count or otherwise redistribute it like so (PivotDice):
2d120 => d180 + d 60 (3d120 => d180 + d100 + d 80) 2d100 => d120 + d 80 (3d100 => 2d120 + d 60) 2d 60 => d100 + d 20 3d 48 => d100 + d 24 + d 20 2d 30 => d 48 + d 12 3d 24 => 2d 30 + d 12 => d 48 + 2d 12 2d 20 => d 30 + d 10 (3d 20 => 2d 24 + d 12) 2d 12 => d 20 + d 4 2d 10 => d 12 + d 8 2d 8 => d 10 + d 6 => d 12 + d 4 2d 6 => d 8 + d 4 => d 10 + d 2 (3d 6 => d 10 + 2d 4) 2d 4 => d 6 + d 2
PivotDice flattens the distribution slightly, usually within margin of empirical error and dice misbehavior. Hoard d120 like a dragon if you cannot 3D print icospheres, or at least d12 and d10, as stated earlier. RadixDice can save you for 3d120 => d200 + d100 + d60 => đ20 * 10 + d10 + đ10 * 10 + d10 + đ6 * 10 + d10 = (đ20 + đ10 + đ6) * 10 + 3d10, as the numbers up there are quite composite.
There may also be cases more conducive to carrying less larger dice that are more universal to emulate smaller dice using binning (1-based) or either modulo or integer division (0-based, cleaner math):
d120: d60, d40, d30, d24, d20, d15, d12, d10, d8, d6, d5, d4, d3, d2 d100: d50, d25, d20, d10, d5, d4, d2 d 60: d30, d20, d15, d12, d10, d6, d5, d4, d3, d2 d 48: d24, d16, d12, d8, d6, d4, d3, d2 d 30: d15, d10, d6, d5, d3, d2 d 24: d12, d8, d6, d4, d3, d2 d 20: d10, d5, d4, d2 d 12: d6, d4, d3, d2 d 10: d5, d2 d 8: d4, d2 d 6: d3, d2 d 4: d2
This also supports some virtual dice that have an isohedral physical form only in form of a trapezohedron or bipyramid, as well as some odd-faced ones. Substitutions for the usual isohedral ones are as such (VirtualDice):
đ60 => đ120/ 2 đ48 => (đ12*12+đ12)/3 đ30 => đ120/ 4 => đ 60/ 2 đ24 => đ120/ 5 => đ 48/ 2 đ20 => đ120/ 6 => đ100/ 5 => đ 60/ 3 đ12 => đ120/10 => đ 60/ 5 => đ 48/ 4 => đ 24/ 2 đ10 => đ120/12 => đ100/10 => đ 60/ 6 => đ 30/ 3 => đ20/2 đ 8 => đ120/15 => đ 48/ 6 => đ 24/ 3 đ 6 => đ120/20 => đ 60/10 => đ 30/ 5 => đ 24/ 4 => đ12/2 đ 4 => đ120/30 => đ100/25 => đ 60/15 => đ 48/12 => đ24/6 => đ20/5 => đ12/3 => đ8/2
Specifically đ48 is quite awkward to emulate, here it's done by a great dozen roll integer-divided by 3. Maybe also hoard that, or at least closely guard your d8 and d6, as stated earlier.
Using factorization from RadixDice, large dice can emulate multiple smaller dice at once with their entropy, assuming the guest dice face count multiplies to a number that divides the host die face count. If equal, the host dice entropy is utilized fully. Sometimes, LaTeX could really be handy. Thereby single đ120 can be a source for virtual đ10+đ6+đ2 like đ120/12+đ120/10+đ120/60, which is PivotDice for 3đ6. Similarly, đ8 can be seen as rolling octal-packed 3đ2, more generally đ(2^k) can roll kđ2 for any natural k. This application of VirutalDice to multiplex entropy can be called EntroMuxDice.
As a last resort, especially with funky prime DCC dice, go with the next higer face count you have or at least can deal with using methods described above, and simply reroll when the result is too high. This application of VirtualDice can be called RejectDice.
Putting it all together, to roll a đ° pseudodie:
đ360 => đ60 * 6 + đ6 => đ6 * 60 + đ6 * 10 + đ10 => đ4 * 90 + đ8 * 10 + đ10
Some games store angle in multiples of tau/256=pi/128 ("binarians"):
đ256 => đ8 * 32 + đ8 * 4 + đ4 => đ4 * 64 + đ8 * 8 + đ8
NPC ROLLS (DirectDice):
This substitution was conceived primarily to eliminate correction constants using combinations of 1-based and 0-based dice. All Nd6-N rolls can be DirectDiced as Nđ6, but this is boring. Reject signifies to reroll on said result. If the extrema of both sides are mentioned, it's possible to treat it as a slight range extension.
OrigExpr From To DirectDice Reject d6-1 0 5 đ6 d6 1 6 d6 d6+1 2 7 d8 1, 8 d6+2 3 8 d8 1, 2 d6+3 4 9 đ10 0, 1, 2, 3 2d6-2 0 10 đ8+đ2 2d6-1 1 11 đ10+d2 2d6 2 12 d8+d4 2d6+1 3 13 d8+đ6 2 2d6+2 4 14 d8+d6 2, 3 2d6+3 5 15 4d4 4, 16 3d6-3 0 15 đ8+đ6+đ4 3d6-2 1 16 đ8+d6+đ4 3d6-1 2 17 đ8+d6+d4 3d6 3 18 d8+d6+d4 3d6+1 4 19 đ10+d6+d4 2, 3 3d6+2 5 20 5d4 3d6+3 6 21 5d4+d2 22 4d6-4 0 20 3đ8 21 4d6-3 1 21 3đ8 0 4d6-2 2 22 2d12 23, 24 4d6-1 3 23 3d8 24 4d6 4 24 2d8+2d4 4d6+1 5 25 3d8+d2 26 4d6+2 6 26 3d8+d2 5 4d6+3 7 27 7d4 28 5d6-5 0 25 2đ12+đ4 5d6-4 1 26 2đ12+d4 5d6-3 2 27 2d12+đ4 5d6-2 3 28 2d12+d4 5d6-1 4 29 3d10 3, 30 5d6 5 30 2d8+d6+2d4 5d6+1 6 31 2d8+4d4 32 5d6+2 7 32 2d8+4d4 6 5d6+3 8 33 2d8+4d4+d2 7, 34
Generally, to ensure minimum result, roll that many dice, and to ensure maximum, ensure the faces add up to it. At medium amounts of d6, the minimum starts getting too high for this approach.
HEROIC ROLLS (AltDice):
These keep mean while trying to minimize extending range, like in the original table. Replacement is by single type of dice, using multiple types is basically PivotDice, since you have to (re)distribute the maximum result plus range expansion between face counts of minimum result amount of dice minus range expansion, so that the face counts are present in your collection. Precise numerical meanings of results of such rolls are unlikely. Shift the corrective constant accordingly.
OrigExpr From To AltDice Expand d6-1 0 5 d4 -1 d6+1 2 7 d8 +1 d6+2 3 8 d10 +2 d6+3 4 9 d12 +3 2d6-2 0 10 2d4 -2 2d6+2 4 14 2d8 +2 2d6+3 5 15 4d4 +1 3d6+1 4 19 2d10 +1 3d6+3 6 21 3d8 +3 4d6-3 1 21 2d10 -1 4d6-1 3 23 2d12 +1 4d6+4 8 28 4d8 +4 5d6-1 4 29 3d10 +1 5d6+2 7 37 3d12 +3 6d6 6 36 2d20 +4 6d6+1 7 37 4d10 +3 7d6-2 5 40 5d8 0 7d6+3 10 45 5d10 +5 8d6-2 6 46 4d12 +2 8d6-1 7 47 6d8 +1 8d6+5 13 53 6d10 +7 9d6 9 54 3d20 +6 9d6+1 10 55 5d12 +5 10d6-2 8 58 6d10 +2 10d6+1 11 61 8d8 +3 10d6+4 14 64 6d12 +8 11d6 11 66 7d10 +4 11d6+2 13 68 9d8 +4 12d6 12 72 4d20 +6 12d6+3 15 75 10d8 +5 13d6 13 78 7d12 +6 14d6-4 10 80 10d8 0 14d6+4 14 84 8d12 +7 15d6-3 12 87 11d8 +1 15d6 15 90 5d20 +10 16d6-2 14 94 12d8 +2 16d6-1 15 95 10d10 +5 17d6-1 16 101 9d12 +7 17d6+1 18 103 11d10 +7 18d6-2 16 106 12d10 +4 18d6 18 108 6d20 +12 18d6+2 20 110 10d12 +10 19d6+1 20 115 15d8 +4 20d6+2 22 122 16d8 +6 21d6-2 19 124 13d10 +7 21d6 21 126 7d20 +14 22d6+1 23 133 12d12 +11 23d6+2 25 140 15d10 +10 24d6 24 144 8d20 +16
At higher amounts of d6, too many polyhedral dice are rolled, albeit less, facing the same problem of counting taking too long, as well as the range being expanded too much. Only dice hoarders have 16 d8 or 12 d12, which only come once per D&D set unlike d10.
SUPERHEROIC ROLLS (LessDice):
Hero System and Shadowrun are notorious for using obscene amounts of d6, moreso than GURPS. They're hard to hold in hands, and the pips take ages to count. This is the time to finally resign at eliminating corrections. 4 or 5 dice (6 or 5 from 54d6, 6 or 7 dice from 63d6, 8 or 7 from 80d6) are enough to invoke Central Limit Theorem, allow the Bell curve to take shape, and provide enough wiggle room for mean coinage payment problem. These mostly Catalan dice aren't typically owned in large quantities of the same type, the most egregious ask is for 3d48 and 3d30. 3d120 enters only at 61d6 and 3d100 at 63d6, where the table used to end originally. Geodesic polyhedrons (d80,d180;d32,d42,d92,d162) would be useful here, since I'm already entertaining the zocchihedral d100.
Die d2 d4 d6 d8 d10 d12 d20 d24 d30 d48 d60 d100 d120
Mean 1.5 2.5 3.5 4.5 5.5 6.5 10.5 12.5 15.5 24.5 30.5 50.5 60.5
d2 1.5 3 4 5 6 7 8 12 14 17 26 32 52 62
d4 2.5 4 5 6 7 8 9 13 15 18 27 33 53 63
d6 3.5 5 6 7 8 9 10 14 16 19 28 34 54 64
d8 4.5 6 7 8 9 10 11 15 17 20 29 35 55 65
d10 5.5 7 8 9 10 11 12 16 18 21 30 36 56 66
d12 6.5 8 9 10 11 12 13 17 19 22 31 37 57 67
d20 10.5 12 13 14 15 16 17 21 23 26 35 41 61 71
d24 12.5 14 15 16 17 18 19 23 25 28 37 43 63 73
d30 15.5 17 18 19 20 21 22 26 28 31 40 46 66 76
d48 24.5 26 27 28 29 30 31 35 37 40 49 55 75 85
d60 30.5 32 33 34 35 36 37 41 43 46 55 61 81 91
d100 50.5 52 53 54 55 56 57 61 63 66 75 81 101 111
d120 60.5 62 63 64 65 66 67 71 73 76 85 91 111 121
For visualization, there could be a coinage compositon graph, but more generically, mean of any dN is N/2+0.5. Therby each compactification of k dice of dN_i into a single dM is sum(i=1)(k)(N_i/2+1/2)=M/2+1/2, simplifying to sum(i=1)(k)(N_i)=M-k+1. This can only work for odd k, for even k there needs to be M_1+M_2-k+1 to add those lingering halves to make it whole.
OrigExpr From Mean To LessDice 6d6 6 21 36 d12+d10+2d8 7d6 7 25.5 42 d12+d10+3d8 8d6 8 28 48 d24+2d10+d8 9d6 9 32.5 54 d24+2d10+2d8 10d6 10 35 60 2d24+d10+d8 11d6 11 39.5 66 2d20+2d12+d10 12d6 12 42 72 2d24+d20+d12 13d6 13 45.5 78 d24+2d20+d12+d10 14d6 14 49 84 d30+d24+2d20 15d6 15 52.5 90 2d24+2d20+d12 16d6 16 56 96 2d30+2d24 17d6 17 59.5 102 3d30+2d12 18d6 18 63 108 d48+d30+d24+d20 19d6 19 66.5 114 2d30+2d24+d20 20d6 20 70 120 2d48+2d20 21d6 21 73.5 126 d48+d30+d24+2d20 22d6 22 77 132 2d48+d30+d24 23d6 23 80.5 138 d48+2d30+2d24 24d6 24 84 144 3d48+d20 25d6 25 87.5 150 2d48+d30+d24+d20 26d6 26 91 156 d60+2d48+d24 27d6 27 94.5 162 3d48+2d20 28d6 28 98 168 2d60+d48+d24 29d6 29 101.5 174 3d48+d30+d24 30d6 30 105 180 d120+d48+d30+d8 31d6 31 108.5 186 d100+d48+d30+d24+d10 32d6 32 112 192 d100+2d48+d24 33d6 33 115.5 198 d100+d48+d30+2d24 34d6 34 119 204 d120+d60+d48+d6 35d6 35 122.5 210 d100+d60+d48+d20+d12 36d6 36 126 216 d120+d60+d48+d20 37d6 37 129.5 222 2d100+d30+2d12 38d6 38 133 228 d120+d100+d30+d12 39d6 39 136.5 234 2d100+2d24+d20 40d6 40 140 240 2d120+d24+d12 41d6 41 143.5 246 d120+d60+d48+d30+d24 42d6 42 147 252 2d120+d30+d20 43d6 43 150.5 258 d120+d60+2d48+d20 44d6 44 154 264 d120+d100+d60+d24 45d6 45 157.5 270 2d100+d60+d30+d20 46d6 46 161 276 2d120+d48+d30 47d6 47 164.5 282 d120+3d48+d60 48d6 48 168 288 d120+2d100+d12 49d6 49 171.5 294 2d100+d60+d48+d30 50d6 50 175 300 2d120+d100+d6 51d6 51 178.5 306 d120+d100+d60+d48+d24 52d6 52 182 312 2d120+d100+d20 53d6 53 185.5 318 d120+2d100+d30+d24 54d6 54 189 324 d120+d60+3d48 55d6 55 192.5 330 2d120+d100+d30+d10 56d6 56 196 336 2d120+d100+d30+2d8 57d6 57 199.5 342 2d120+d100+d30+d24 58d6 58 203 348 2d120+d100+d30+d20+d10 59d6 59 206.5 354 2d120+d100+d48+d20 60d6 60 210 360 2d120+d100+d30+d24+d20 61d6 61 213.5 366 3d120+d60+d2 62d6 62 217 372 2d120+d100+d48+2d20 63d6 63 220.5 378 3d100+d60+d30+d24+d20 64d6 64 224 384 2d120+d100+d48+d30+d24 65d6 65 227.5 390 d120+2d100+d60+2d24+d20 66d6 66 231 396 2d120+d100+d60+d48+d8 67d6 67 234.5 402 d120+2d100+2d60+d12+d10 68d6 68 238 408 2d120+d100+2d60+d10 69d6 69 241.5 414 d120+2d100+2d60+d24+d12 70d6 70 245 420 2d120+d100+2d60+d24 71d6 71 248.5 426 d120+2d100+2d60+d30+d20 72d6 72 252 432 d120+3d100+d48+d30 73d6 73 255.5 438 d120+2d100+2d60+d24+d20 74d6 74 259 442 2d120+2d100+d48+d24 75d6 75 262.5 448 2d120+2d100+d48+d20+d10 76d6 76 266 454 3d120+d100+d60+d6 77d6 77 269.5 460 3d120+d100+d48+2d12 78d6 78 273 466 3d120+d100+d60+d20 79d6 79 276.5 472 3d120+d100+d60+d20+d6 80d6 80 280 480 3d120+d100+3d24+d20
Eventually, the amounts of Catalan dice needed start rising as well, and the variance becomes enormeous, so a different approach is needed. Consider splitting digits, like rolling 6d6*10+4d6 instead of 64d6. Substitute d6 accordingly. Don't roll 1d6 or 2d6 for most significant digit, Bell curve starts only taking shape at 3d6. Numerical inflation makes a TTRPGs feel like Yu-Gi-Oh!, where players become accountants with 8000 LP, instead of more pedestrian 20 Life of MTG.
DEMIGOD ROLLS (NormalDice):
At higher amounts of d6, the Bell curve gets so narrow it's almost better to roll a bunch of dF and modify the mean, so for example 100d6 goes from 100 to 600 with mean 350, but instead of d120+5d100+d48+d24 (8 large dice) or 10d6*10 (digit split loses precission with round numbers, maybe try different radices), roll 350+10dF*10, which gives flatter range from 200 to 500. Generate the least significant digit with d10 if you need precission. This keeps the variance increase in check. There could be a NormalDice table that specifies the exact amount of Fudge dice to replicate the distribution, but just note this:
Nd6: Mean 7N/2 = 3.5N, Variance 35N/12 = 2.9167N, StdDev 1.7078*N^(1/2)
KdF: Mean 0, Variance 2K/3 = 0.6667K, StdDev 0.8165*K^(1/2)
LdF*10: Mean 0, Variance 200L/3 = 66.6667L, StdDev 8.165*L^(1/2)
Therefore, K = 35N/8 = 4.375N, or N = 8K/35 = 0.22857K, and L = 7N/160 = 0.04375N, or N = 160L/7 = 22.85714L
Using dF*10 instead of dF reduces the amount to be rolled to approximate normal distribution to 4 from 438 at 100d6. To reach the range of 100 to 600, there needs to be 25 decadic dF rolled, i.e. N/4. Mean is fixed in all modes, it's just a question of whether to match the variance or the range, and if you don't know, arithmetic mean is 4+25/2=14.5, which rounds to 15, geometric mean is (4*25)^(1/2)=10, and harmonic mean is 2/(1/4 + 1/25)=6.89655, which rounds to 7. Multiply accordingly for 1000d6 or other crazy rolls.
This means the amount of dice rolled is reduced by a factor of 25 when matching variance (realistic), 4 when matching range (cinematic). I propose to balance with a factor of 10, the geometric mean of 4 and 25, for being simpler to conceptualize for decimal beings who create market for artrocities like d100, but post-graduate GMs for whom Master's wasn't enough may have their own opinions.
No comments:
Post a Comment
Barely anyone comments, so I don't moderate. Free advertising, I guess.