Sunday, June 19, 2016

Math: What's Luck Got To Do With It?

It's physical, only logical
For some reason, figuring out an easy way to graph this has eluded me for a while, but then I decided to just write a little loop to go through the numbers. Originally, I was going to run through all 216 * 216 * 216 = 10,077,696 combinations together, but that was a little slow, so I used a fun little memoization technique to reduce it to 16 * 16 * 16 = 4,096 combinations, which is a lot more manageable, friends! Let's investigate these numbers further then.

The Vanilla Distribution

Below is a graph of the probability density function (the odds of getting a certain result exactly) and the cumulative density function (the odds of matching or beating a particular result.) The PDF is more of a curiosity and intermediary step on the road to generating the CDF, which is often a more useful visualization for the sake of GURPS, but I include the PDF for giggles.

The PDF uses the axis on the left, the CDF, the right. This is a nigh picture perfect representation of a bell curve, that is, it would be if dice rolls didn't produce a discrete series. So, looking at this graph, we have a perfect symmetry, and we achieve 50% success rate at 10 or lower, 75% chance at 12 or lower, 90ish% at 14 or lower, and around 98.5% at 16 or lower. It is easier to get results near the middle, and as the number we roll against gets higher, the chances of succeeding increase gently.

The Lucky Distribution

When you use Luck, you get to choose the best of 3 rolls for your result. This changes the graph to our benefit.

This graph is almost the same as the very first one, except I changed to percentage based axes. Compared to the regular distribution that we get without luck, this one has a gangly, lopsided probability density function, and a skyrocketing cumulative density function. Our most likely roll is an 8, and we have a 60ish% chance of rolling an 8 or better, 76ish% chance of rolling a 9 or better, 7/8 chance of rolling a 10 or better, and a 98.2ish% chance of rolling better than 12. Rolling a 15 or higher is next to impossible, meaning a critical failure isn't very likely.

The Delta

To make the comparison more obvious, I now show the delta, or the difference between the two.
This graph shows two things. If we look at the delta for the probability function, the odds of getting a very high number have all decreased a lot, especially those in the middle of the high numbers (around the 3/4 mark?) and we have almost the opposite occurring on the low end near the 1/4 mark. This being an absolute comparison, the reason why the improvements aren't closer to the end is because the chances of getting a 3 or 18 are already so low, they don't have a lot of room for change.
The delta for the cumulative density function on the other hand, is informative, but boring, and just shows that the overall odds of succeeding increase all around, but especially significantly around 7-11, indicating that the Luck advantage is most useful for scores that are pretty mediocre, not abysmal (where the improvement is too small) or excellent (where the original chance of failure is so small, it doesn't matter.) I think if this has any tactical value to a player, it means that Luck with the active modifier should probably be invoked on rolls in that range; less is such a long shot, it doesn't help much, and more is so likely, it has a good chance of being wasted.

Other Thoughts

Why do I care? I was thinking of playing around with some other luck based mechanics and I wanted to use the improvements granted by Luck as a baseline to deciding how valuable it is. The normalized improvement is a little over 15%, while a stat increase has a normalized improvement of 6.25%. Luck in a lot of cases is nearly 2.5x better than increasing an attribute, and it can be used universally, though it is limited by a recovery time that is expensive to buy down with higher levels of the advantage.

2 comments:

  1. Have you ever used Anydice.net? :-)

    ReplyDelete
    Replies
    1. Yeah! And it does have a function for "roll x dice, keep x-y" but it doesn't have a convenient way to do "roll x sets of n dice, take best 1 of n"... without diving deeper into the scripting than I wanted.

      This is the code I cobbled together to calculate the frequencies, by the way, if anyone just loves looking at that stuff.

      http://pastebin.com/a2v0x0GB

      Delete