Programming to test dice systems
when your system is sort of unique
For most dice systems, the math is known. There are already several pages that let you model dice and into a straight line or a curved line.
But sometimes inspiration hits you, and you come up with something so unique that only playtesting used to be the way of sorting out problems that may arise from the dice you want in your system.
If you know enough of any computer language, you can model small tests, and then test small runs of a thousand to a million dice throws to generate enough data for your curves or straights.
If you don’t know about programming, this is harder as you must understand some concepts like variables, functions, conditionals, etc. It’s not hard to start, for example, a variable is a named point in memory where you can store data, and later get the content back by using the exact same name.
For a simpler explanation, a variable is a container with a name to store and retrieve data. It looks like a = 0 or headerText = ‘Programming to test dice systems‘ .
Luckily, there are languages like Python that are relatively easier to get into than most languages. There is also a lot of written material and videos to get into a tutorial for basic stuff, and later on, more advanced material.
And in doing so, obtaining data that lets you model how each combat worked, or getting the final result along with the XP obtained in that single instance of combat.
For example, this is a subset of a ten thousand run done in Python with asymmetrical combat that showed my PC only winning one third of the fights against an NPC that had fewer hit points but did more damage.
The end result showed exactly what I wanted: how many hit points each warrior had at the end, the first being the PC and the second the NPC. Since my system gives a single XP on misses, it also shows how many XP the character got in that combat.
The result is shown vertically, with each entry above the next, but I’ve reformatted it to a horizontal display to make it more manageable for this post.
0 - 3 XP 4 0 - 1 XP 4 4 - 0 XP 1 4 - 0 XP 2 0 - 3 XP 4
I hope this gets you into the mindset of a programmer, even if you are only testing dice. A lot of the programmers I know are into RPGs, so even if you don’t learn programming, there’s a chance somebody in your group is a programmer, so they can make this for you.

