New Dice Rules
  • 0
  • Godlike Fuzzydice

    This is a continuation of the Alternate Dice Rules discussion.

    Summary

    We currently are trying to decide what size dice to use for the main rolls.

    Rules

    1. Take the higher of your Skill or Ability; that is the number of dice your roll.
    2. Take the lower of your Skill or Ability; that is the number of dice you upgrade. (Next largest size die.)
    3. Roll dice. Any result larger than the targetNumber is a success.
    4. Roll a d10. If 1, a complication (negative) happens, if 10 a boon (positive) happens.

    Probabilities assuming a d8, and upgrading to a d10

    Ability/Skill levels, as pulled from the Monster Building table (all percentages are rounded approximates).

    Target Difficulty Level 1 (Skill 1, Ability 3) Level 12 (Skill 3, Ability 4) Level 24 (Skill 5, Ability 5)
    1 Trivial 88% / 3 90% / 4 90% / 5
    2 Simple 77% / 2 79% / 3 80% / 4
    3 Easy 64% / 2 68% / 3 70% / 4
    4 Average 53% / 2 57% / 2 60% / 3
    5 Moderate 42% / 2 47% / 2 50% / 3
    6 Advanced 30% / 1 37% / 2 40% / 2
    7 Hard 18% / 1 26% / 1 30% / 2
    8 Severe 7% / 1 15% / 1 20% / 1
    9 Formidable 3% / 1 8% / 1 10% / 1
    10 Impossible 0% / 0 0% / 0 0% / 0

    Generalizations

    • “A first level character will accomplish an average task slightly more often than random chance.”
    • “A max level character will accomplish an average task more often than random chance.”
    • “Higher level characters will succeed any given task slightly more often than low level characters.”
    • “The difficulty of a task is reasonably stable, regardless of level.”
    • “Higher level characters will have a higher number of successes, on average.”

    last edited by Morgul
  • 0
  • Godlike Fuzzydice

    Personally, I really like the 10% drop at higher levels. The number of successes also seems to fit well.

  • 0
  • Godlike Fuzzydice

    @Lord-Null: Next up, it’s going to be:

    1. Add your skill and ability; this is the number of d10s you roll.
    2. Roll dice. Any result larger than targetNumber is a success.
    3. Roll a separate d10. If 1, a complication (negative) happens, if 10 a boon (positive) happens.

    Probabilities

    Target Difficulty Level 1 (Skill 1, Ability 3) Level 12 (Skill 3, Ability 4) Level 24 (Skill 5, Ability 5)
    1 Trivial 90% / 3.6 90% / 6.3 90% / 9.0
    2 Simple 80% / 3.2 80% / 5.6 80% / 8.0
    3 Easy 70% / 2.8 70% / 4.6 70% / 7.0
    4 Average 60% / 2.5 60% / 4.2 60% / 6.0
    5 Moderate 50% / 2.1 50% / 3.5 50% / 5.0
    6 Advanced 40% / 1.8 40% / 2.9 40% / 4.0
    7 Hard 30% / 1.6 30% / 2.3 30% / 3.1
    8 Severe 20% / 1.4 20% / 1.8 20% / 2.3
    9 Formidable 10% / 1.2 10% / 1.3 10% / 1.5
    10 Impossible 0% / 0 0% / 0 0% / 0

    last edited by Morgul
  • 0
  • SA Member

    I think there is something wrong with the code you are using to generate the results. I wrote a script to do the same, and got something very different, and one that jives with intuition: the more dice you roll, the more likely you are to get above the target number, making the target numbers worthless after a very small poolsize. Note that the 100.0% are not because it always succeeded, but because I’m rounding to 1 significant digit.

    Target Pool 4 Pool 7 Pool 10
    1 100.0% 100.0% 100.0%
    2 99.9% 100.0% 100.0%
    3 99.3% 99.9% 100.0%
    4 97.5% 99.6% 100.0%
    5 93.1% 99.1% 100.0%
    6 85.9% 97.6% 99.3%
    7 75.3% 92.0% 96.6%
    8 57.4% 80.1% 89.3%
    9 34.9% 52.9% 65.2%
    10 0.0% 0.0% 0.0%

    The only target numbers worth anything are 7, 8, and 9, and even 7 and 8 lose their worth by level 12.

    Code used to generate results:

    #! /usr/bin/env escript
    
    main([ThreshStr, PoolSizeStr, ItorsStr]) ->
    	main([ThreshStr, PoolSizeStr, ItorsStr, ""]);
    
    main([ThreshStr, PoolSizeStr, ItorsStr, Debug]) ->
    	random:seed(os:timestamp()),
    	Thresh = list_to_integer(ThreshStr),
    	PoolSize = list_to_integer(PoolSizeStr),
    	Itors = list_to_integer(ItorsStr),
    	ResSetCounts = lists:map(fun(_) ->
    		ResList = roll_dice(PoolSize),
    		case Debug of
    			"true" ->
    				io:format("~p~n", [ResList]);
    			_ ->
    				ok
    		end,
    		count_successes(Thresh, ResList)
    	end, lists:seq(1, Itors)),
    	RollsSuccess = lists:foldl(fun(N, Acc) ->
    		if N > 0 -> Acc + 1; true -> Acc end
    	end, 0, ResSetCounts),
    	RawRatio = RollsSuccess / Itors,
    	NicePercent = nice_percent(RawRatio, 2),
    	io:format("~p%~n", [NicePercent]).
    
    nice_percent(Ratio, SignificantDigits) ->
    	Smaller = math:pow(10, SignificantDigits),
    	Bigger = 100 * Smaller,
    	round(Ratio * Bigger) / Smaller.
    
    count_successes(Thresh, ResList) ->
    	Filtered = lists:filter(fun(N) -> N > Thresh end, ResList),
    	length(Filtered).
    
    roll_die() ->
    	random:uniform(10).
    
    roll_dice(N) ->
    	roll_dice(N, []).
    
    roll_dice(0, Acc) ->
    	Acc;
    
    roll_dice(N, Acc) ->
    	roll_dice(N - 1, [roll_die() | Acc]).
    

    Invoked in a loop:

    for tn in `seq 1 10`; do echo "th: $tn"; for ps in 4 7 10; do echo "ps: $ps"; ./r.escript $tn $ps 1000; done; done

    last edited by Morgul
  • 0
  • Godlike Fuzzydice

    @Lord-Null Yeah, more playing with http://anydice.com confirms your numbers.

    Well, shit. Now what?

  • 0
  • SA Member

    I don’t think we need to throw away everything, but we do need to re-think some things.

    If we use a white-wolf style die pool, where any die is above a certain number is a success, we have a system where there’s a clear increase of player capability since each added die increases the number successes on average. If the success threshold on the die is low enough, like 5, it means untrained players have a chance.

    Add in the concept that an encounter (combat or not) is over once a certain number of successes are achieved, or some other less desirable result occurs (too much time passes , or the players are KO’ed). We add in that some things are resistant, and negate successes when ‘attacked’ (for lack of a better term). A locked door with a hard lock might negate 2 lock-picking successes, but if it’s made of rotting wood, negate 0 ‘attack’ successes. An ancient dragon negates more successes than a cabled minion of the same level.

    I’m not a fan of needing to specify how many successes each item should take, but if the system is regular enough, then we should be able to have a table similar to what is in the DnD GM screen: At level L, hard task absorbs N, a standard N - M, and an easy absorbs N - M - O. With a shallow enough pool of stat increases, we may not even need a particularly long table.

    The DOI has a 1/5 chance of making a result more interesting, so having a clear ‘degree of failure’ beyond that is adding complexity to a ‘not fun’ mechanic (as Travis pointed out), but helps turn it to a fun one. It’s also easier to explain than the wild die and exploding die of d6 and white-wolf.

    If that’s the system, d6’s might be nice as they are more common, and would be immediately discernible from a d10. I think I might be getting ahead of myself here.

  • 0
  • Godlike Fuzzydice

    I agree that we shouldn’t need to throw anything out, but as this is really important to get right, I’m not quite ready to just grab the white-wolf system just yet.

    Doing a little bit of research this morning, I found some things. First, this article is a nice comparison of some common dice system, their features, and it even compares % success chances. I’ve skimmed it, and I’ll go on to read it more; it very well may help us to find a dice system that hits more of our goals. (Small point: the percentages on his table are chances to roll equal or under. Subtract from 100 to get our desired ‘beat’ mechanic.)

    Additionally, this page is just a simple description of several RPG dice systems, I’m unfamiliar with some of these, so looking into them and getting a better feel for them might not be a bad thing. I’ll report back if I find anything I think we should look into more.

  • 0
  • Godlike Fuzzydice

    So, the new proposal is this:

    1. Roll a d10. Add your Skill and Ability.
    2. If the total is larger than targetNumber, then you have succeeded.
    3. Subtract the targetNumber from your result, this is the number of successes.
    4. Roll a d10. If 1, a complication (negative) happens, if 10 a boon (positive) happens.

    The trick will be for us to figure out how to scale target numbers at the same rate that skills and abilities scale. Using a d10 gives us our desired percentage scaling:

    Target Success Chance
    1 90%
    2 80%
    3 70%
    4 60%
    5 50%
    6 40%
    7 30%
    8 20%
    9 10%
    10 0%

    Looking at that, a first try at a formula to come up with (an approximate) level appropriate target number is this:

    modifiedTargetNumber = originalTargetNumber + ((4 * level) / 25)
    

    The problem is, that is just looking at the average number of skill points across all levels, and averaging them over all skills. At level 30, it tells us that, on average, a TN of 10 will yield a 50% success chance. But, at level 30, a ‘best’ skill and ability is 11, meaning that it’s impossible to fail for a ‘master’ at level 30. Clearly, we need something better…

  • 8
    Posts
  • 1390
    Views
  • Log in to reply
  • Looks like your connection to New Dice Rules was lost, please wait while we try to reconnect.