Showing posts with label rpg. Show all posts
Showing posts with label rpg. Show all posts

Friday, February 17, 2012

4E DMG2 Skill Challenges.

This is an analysis of the 4E DMG2 skill challenges as written.

These are the complexity cases listed on page 80.

Complexity 1 - 4 successes before 3 failures.
Complexity 2 - 6 successes before 3 failures.
Complexity 3 - 8 successes before 3 failures.
Complexity 4 - 10 successes before 3 failures.
Complexity 5 - 12 successes before 3 failures.

Basically it is a "three strikes and you're out" system.

Without going through the technical details, the probability of passing a skill challenge requiring "n successes before 3 failures" is:

{1 + n(1-p) + [(n+1)n/2] (1-p)^2} * p^n

where (for simplicity), we assume each individual roll for a skill check has an probability p of success.


Let's calculate the cases of a level 1 skill challenge with a "hard" DC of 15 (page 80 of 4E DMG2), where p is 0.75 to 0.85 (ie. each player is using their trained skills with their primary stat, and assisting one another).

Complexity 1 - prob of passing skill challenge is 0.83 to 0.95
Complexity 2 - prob of passing skill challenge is 0.68 to 0.89
Complexity 3 - prob of passing skill challenge is 0.53 to 0.82
Complexity 4 - prob of passing skill challenge is 0.39 to 0.74



(Exercise for the reader: show that for a skill challenge with "n successes before 4 failures", the probability of passing is

{1 + n(1-p) + [(n+1)n/2] (1-p)^2 + [(n+2)(n+1)n/6] (1-p)^3} * p^n

where p is defined as before).

4E DMG1 Skill Challenges.

Details of probability of a succeeding a skill challenge from page 72 of the 4E DMG1 as written.

(For simplicity, assume each individual roll for a skill check, has an probability p of success).

- "complexity 1" (4 success before 2 failures)

prob of succeeding skill challenge = 5 p^4 - 4 p^5

- "complexity 2" (6 success before 3 failures)

prob of succeeding skill challenge = 21 p^8 - 48 p^7 + 28 p^6


(An exercise for the reader with lots of patience: calculate the higher "complexity" case).


Let's look at an example for a level 1 group of players. On page 42 of the 4E DMG1, the DC's for skill check rolls are:

10 - easy
15 - moderate
20 - hard

In the case where the players are all using their trained skills (+5 bonus) based on their primary stat (+4 or +5 bonus), with assistance from another player (+2 bonus), the bonus to the d20 skill check roll is already +10 to +12.

So easy skill checks (DC 10) are a done deal, while the probability of success for moderate skill checks (DC 15) are p = 0.75 to 0.85


For a level 1 "complexity 1" moderate (DC 15) skill challenge, the probability of succeeding the skill challenge is 0.63 to 0.84, where each player is using their trained skills with their primary stat, and assisting one another. (ie. +10 to +12 added to each skill roll).

For a level 1 "complexity 2" moderate (DC 15) skill challenge, the probability of succeeding the skill challenge is 0.68 to 0.89, where each player is using their trained skills with their primary stat, and assisting one another. (ie. +10 to +12 added to each skill roll).

Sunday, September 12, 2010

In-game probability in practice - part 5.

Here are the 95% and 99% confidence intervals for the practical in-game probabilities "Y" after rolling a die n times, with an underlying theoretical probability of 50% (p = 0.5).

(They were calculated using a program which implemented the Clopper-Pearson method, when the normal approximation is no longer valid for n < 40).

95%

n = 2 --> (0.0126, 0.9874)
n = 4 --> (0.0676, 0.9324)
n = 6 --> (0.1181, 0.8819)
n = 8 --> (0.1507, 0.8430)
n = 10 --> (0.1871, 0.8129)
n = 12 --> (0.2109, 0.7891)
n = 14 --> (0.2304, 0.7696)
n = 16 --> (0.2465, 0.7535)
n = 18 --> (0.2602, 0.7381)
n = 20 --> (0.2720, 0.7280)
n = 22 --> (0.2822, 0.7178)
n = 24 --> (0.2912, 0.7088)
n = 26 --> (0.2993, 0.7007)
n = 28 --> (0.3065, 0.6935)
n = 30 --> (0.3130, 0.6870)
n = 32 --> (0.3189, 0.6811)
n = 34 --> (0.3243, 0.6757)
n = 36 --> (0.3292, 0.6708)
n = 38 --> (0.3338, 0.6662)
n = 40 --> (0.3380, 0.6620)

99%

n = 2 --> (0.0025, 0.9975)
n = 4 --> (0.0294, 0.9706)
n = 6 --> (0.0663, 0.9337)
n = 8 --> (0.0999, 0.9001)
n = 10 --> (0.1283, 0.8717)
n = 12 --> (0.1522, 0.8478)
n = 14 --> (0.1724, 0.8276)
n = 16 --> (0.1897, 0.8103)
n = 18 --> (0.2047, 0.7953)
n = 20 --> (0.2177, 0.7823)
n = 22 --> (0.2293, 0.7707)
n = 24 --> (0.2396, 0.7604)
n = 26 --> (0.2489, 0.7511)
n = 28 --> (0.2572, 0.7428)
n = 30 --> (0.2649, 0.7351)
n = 32 --> (0.2718, 0.7282)
n = 34 --> (0.2782, 0.7281)
n = 36 --> (0.2841, 0.7152)
n = 38 --> (0.2895, 0.7105)
n = 40 --> (0.2946, 0.7054)


As one can see for less than 4 or 5 rolls of a d20, with a 95% to 99% certainty, the practical in-game probabilities "Y" include the cases of 5% (ie. only hitting on a d20 roll of 20) and 95% (ie. hit on any roll of a d20, except on a 1).

Also in a generic DnD combat encounter which lasts 8 rounds or less, with 95% to 99% certainty, it should not be surprising at all to see a player which only hits once on all of their d20 rolls during the encounter (ie. Pinky's cousin), or a player which only misses once on all their d20 rolls during the encounter (ie. hot hand).

(Pinky is a "cursed" d20 which never rolls a success).


For completion, the number of rounds "n" where it is not surprising to see one with "Pinky's cousin" or a "hot hand", with 95% to 99% certainty.

One hit only (or only one miss on a "hot hand")

95% certainty --> n < 8
99% certainty --> n < 9

Two hits only (or only two misses on a "hot hand")

95% certainty --> n < 11
99% certainty --> n < 13

Three hits only (or only three misses on a "hot hand")

95% certainty --> n < 14
99% certainty --> n < 16

Four hits only (or only four misses on a "hot hand")

95% certainty --> n < 17
99% certainty --> n < 19

Five hits only (or only five misses on a "hot hand")

95% certainty --> n < 19
99% certainty --> n < 22


Sunday, September 5, 2010

In-game probability in practice - part 4.

For completion, the remaining |Y-p| cases for determining with 95% certainty that the underlying theoretical probability is not 50% (ie. p != 0.5). This was done by laboriously going through cumulative binomial distribution calculations, where the normal approximation is no longer valid.

|Y-p| = 0.20 --> n > 29
|Y-p| = 0.25 --> n > 19
|Y-p| = 0.30 --> n > 13
|Y-p| = 0.35 --> n > 10
|Y-p| = 0.40 --> n > 8
|Y-p| = 0.45 --> n > 7

Within a generic four-five hour DnD game with a few dozen or so d20 rolls made, one would certainly notice a bonus/penalty of 5 or greater to the d20 rolls.

In-game probability in practice - part 3.

Let's examine the scenario where one keeps on getting a practical in-game probability Y (from rolling a d20 die "n" times) which appears to consistently deviate from a presumed theoretical probability "p".

We will assume the underlying distribution for rolling a die "n" times is binomial with a theoretical probability p. For n large enough (ie. np(1-p)>10), the normal approximation for the binomial distribution can be used.

The test statistic "z" used to test whether the underlying distribution indeed has a theoretical probability of p, will follow a standard normal distribution with:

z = (Y-p)/sqrt[p(1-p)/n]

For a 95% certainty that the theoretical probability is something other than p, one requires |z| > 1.96 (from a table of areas under the normal distribution). Similarly for a 99% certainty, |z| > 2.575.


For some concrete numbers, we'll look at the case where the presumed theoretical probability is 50% (p = 0.5). From this, we can calculate what the minimum number "n" of d20 die rolls it takes to determine with 95% certainty that the underlying theoretical probability is not 50% (p != 0.5).

Doing some algebra, we get for "n":

n > [1.96/(Y-p)]^2 *[p(1-p)]

for 95% certainty that the theoretical probability is not p. (Similarly for the case of 99% certainty that the theoretical probability is not p, we get n > [2.575/(Y-p)]^2 *[p(1-p)] ).


For the case where |Y-p| = 0.05 which corresponds to a constant +1 bonus or -1 penalty to a d20 roll, one needs to do n > 384 rolls of a d20 in order to determine with 95% certainty that the underlying theoretical probability is not 50% (ie. p != 0.5).

Similarly for different |Y-p| values:

|Y-p| = 0.05 --> n > 384
|Y-p| = 0.10 --> n > 96
|Y-p| = 0.15 --> n > 43
(For |Y-p| = 0.20, the normal approximation to binomial is no longer valid).


For the case where one wants 99% certainty that the underlying theoretical probability is not 50%, we get for different |Y-p| values:

|Y-p| = 0.05 --> n > 663
|Y-p| = 0.10 --> n > 166
|Y-p| = 0.15 --> n > 74
|Y-p| = 0.20 --> n > 41
(For |Y-p| = 0.25, the normal approximation to binomial is no longer valid).

These results suggest that in a generic four-five hour DnD session, there may not be enough d20 die rolls (of a few dozen) with bonuses/penalties of 1 or 2, to determine whether the underlying theoretical probability "p" is not 50% (p != 0.5) with a 95% (or 99%) certainty. One needs more than a hundred or so d20 die rolls to make this determination.

When one is dealing with bonuses/penalties of 4 (or greater), there may be enough d20 die rolls (of a few dozen) in a generic four-five hour DnD game session, such that one can determine with 95% (or 99%) certainty that the underlying theoretical probability "p" is not 50% (p != 0.5).

Bonuses/penalties of 3, are the borderline cases where there may be enough d20 die rolls to determine if the underlying theoretical probability "p" is not 50% (p != 0.5) with 95% or 99% certainty. (One requires at least 43 d20 die rolls to determine this with 95% certainty).

A +5 or +6 magic weapon being used at heroic tier in 4E DnD, or the players are subjected to an "aura" which causes a -4 or -5 penalty to hit, would be noticeable and conclude with 95% (or better) certainty in a four/five hour DnD session that the underlying theoretical probability "p" is not 50% (p != 0.5).


Possibly this explains why so many bonuses/penalties in 4E DnD are +/-1 or +/-2 to the d20 roll, along with all kinds of kludges to prevent the stacking of too many bonuses/penalties on top of one another. Essentially they're attempting to maintain an illusion of "always fighting orcs" with the underlying theoretical probability "p" appearing to be 50% (p=0.5) over a four-five hour DnD game session. (One would need over a hundred or so d20 die rolls with bonuses/penalties of 2, in order to determine with a 95% or better certainty, that the underlying theoretical probability "p" is not 50%).

In-game probability in practice - part 2.

Let's examine the practical in-game probability "Y" in a typical 4-5 hour DnD game. ("Y" is the number of successful die rolls divided by the total number of die rolls including the misses/failures).

Recall the 95% confidence interval for the in-game probability "Y" (in the normal approximation to binomial distribution):

p - d < Y < p + d

where d = 1.96 * sqrt[p(1-p)/n] and p = theoretical probability.

(For a 99% confidence interval, d = 2.575 * sqrt[p(1-p)/n]).

For this normal approximation to be viable, np(1-p) > 10.


In a typical DnD game, the theoretical probability of success "p" for a d20 roll whether for attacks, skill checks, etc ... is around 50%. (For this normal approximation to binomial distribution to be valid, one needs n > 40 for p=0.5).

If in a typical DnD game a player is doing several dozen or so d20 rolls in the session, let's look at the deviation "d" when n = 41 (ie. borderline case).

So for n = 41 rolls and theoretical probability of success p = 0.5, the deviation "d" of the in-game probability "Y" from "p" for a 95% confidence interval is:

d = 1.96* sqrt[p(1-p)/n] = 0.15

This means that when one is doing 41 rolls of a d20 through a generic 4-5 hour DnD game session, there is a 95% probability that the practical in-game probability "Y" is within the interval 0.35 < Y < 0.65. So 95% of the time, the in-game probability "Y" sees when one is rolling a d20 41 times in a game, can vary from 35% to 65% for a theoretical probability of p=50% (ie. rolling greater than or equal to an 11 for a success on a d20).


If we do this calculation for a 99% confidence interval, the deviation "d" of the in-game probability "Y" from "p" for a 99% confidence interval is:

d = 2.575* sqrt[p(1-p)/n] = 0.20

This means that when one is doing 41 rolls of a d20 through a generic 4-5 hour DnD game, there is a 99% probability that the practical in-game probability "Y" is within the interval 0.30 < Y < 0.70. So 99% of the time, the in-game probability "Y" sees when one is rolling a d20 41 times in a game, can vary from 30% to 70% for a theoretical probability of p=50% (ie. rolling greater than or equal to an 11 for a success on a d20).

Wednesday, August 25, 2010

4E powers with half-damage on miss.

Let's examine the case for new encounter powers which produce half-damage on a miss. (These are purportedly being introduced in 4E Essentials). Let's assume the new encounter powers still follow the same damage of the Heinsoo 4E D&D encounter powers, but with the "half-damage on miss" tacked on.

For non-striker encounter powers with half-damage on a miss and a probability p of a hitting a monster of the same level, the average damage per round scales approximately as (after level 10):

0.5(p+1)*[level*(average[W])/7 + 7*(level-10)/20]

So as the level goes to infinity, "R" approaches:

R -> 2*ROLE/{(p+1)*[(average[W])/7 + 7/20]}


For different [W] weapons attacking a skirmisher monster (ROLE=8) with the player having a p=50% of hitting the monster, we have average number of rounds "R" as the level goes to infinity:

average[d12] = 6.5 --> R = 8.34
average[d10] = 5.5 --> R = 9.39
average[d8] = 4.5 --> R = 10.74
average[d6] = 3.5 --> R = 12.55
average[d4] = 2.5 --> R = 15.08

On average, for a player hypothetically repeatedly spamming a new encounter power (with half-damage on a miss) against a skirmisher monster of the same level, the average number of rounds "R" to kill the monster is approximately shorter by 45% compared to at-will powers, as the level goes to infinity.


For completeness, there's at-will powers with half-damage on a miss. (IIRC, there's a few monsters with such an at-will power from the 4E MM2 and/or MM3).

With half-damage on a miss, the at-will with half-damage on a miss reduces the number of rounds R to kill a monster by a factor = p/(1+p) in comparison to ordinary at-will powers. (p is the probability of hitting a monster).

For different p:

p = 100% --> factor = 50%
p = 75% --> factor = 42.6%.
p = 50% --> factor = 33.3%
p = 25% --> factor = 20%

So with a probability 50% of hitting a monster, an at-will power with half-damage on a miss will reduce the number of rounds to kill the monster by 33.3%, in comparison to the same at-will power without the half-damage on a miss part.

Scaling of 4E daily powers.

Let's do the same for daily powers, where the the daily powers have half-damage on a miss.

Recall for half-damage on a miss: R = 2N/(1+p).


For a daily power, the average damage per hit scales approximately as (after level 10):

level*(average[W])/5 + 7*(level-10)/20.


For the easy case where the daily powers of non-strikers always miss, "R" approaches

R -> 2*ROLE/{p*[(average[W])/5 + 7/20]} = ROLE/{p*[(average[W])/10 + 7/40]}

as the level goes to infinity.

Comparing this to the expression "R" for at-wills, it means that daily powers always missing and producing half-damage, is slightly worse than generic daily powers.


For non-striker daily powers with half-damage on a miss and a probability p of a hitting a monster of the same level, the average damage per round scales approximately as (after level 10):

0.5(p+1)*[level*(average[W])/5 + 7*(level-10)/20]

So as the level goes to infinity, "R" approaches:

R -> 2*ROLE/{(p+1)*[(average[W])/5 + 7/20]}


For different [W] weapons attacking this skirmisher monster (ROLE=8) with the player having a p=50% of hitting the monster, we have average number of rounds "R" as the level goes to infinity:

average[d12] = 6.5 --> R = 6.46
average[d10] = 5.5 --> R = 7.36
average[d8] = 4.5 --> R = 8.53
average[d6] = 3.5 --> R = 10.16
average[d4] = 2.5 --> R = 12.55

On average, for a player hypothetically repeatedly spamming a daily power (with half-damage on a miss) against a skirmisher monster of the same level, the average number of rounds "R" to kill the monster is approximately shorter by a half compared to at-will powers, as the level goes to infinity.

This means a repeatedly "spammed" daily power (with half damage on a miss) attacking a skirmisher (of the same level), is on average damage-wise approximately equal to two at-wills in general. If the daily power always misses and always produces half damage, it is damage-wise approximately equal to one at-will power.

Scaling of 4E encounter powers.

Let's examine the scaling behavior of the encounter and daily powers, in the unrealistic scenario where they can be repeatedly spammed every round. We will calculate the average number of rounds "R" to kill a monster by a player of the same level.

Recall that a non-striker repeatedly using at-will powers against a monster of the same level, "R" approaches the limit

R = N/p -> N -> ROLE/{p*[(average[W])/10 + 7/20]}

as the level goes to infinity.

For different [W] weapons attacking this skirmisher monster (ROLE=8) with the player having a p=50% of hitting the monster, we have average number of rounds "R" as the level goes to infinity:

average[d12] = 6.5 --> N = 8, R = 16
average[d10] = 5.5 --> N = 8.89, R = 17.78
average[d8] = 4.5 --> N = 10, R = 20
average[d6] = 3.5 --> N = 11.43, R = 22.86
average[d4] = 2.5 --> N = 13.33, R = 26.66


For non-striker encounter powers, the average damage per hit scales approximately as (after level 10):

level*(average[W])/7 + 7*(level-10)/20.

So for non-striker encounter powers, the average damage per round scales approximately as (after level 10):

p*[level*(average[W])/7 + 7*(level-10)/20].

So as the level goes to infinity, "R" approaches:

R -> N/p = ROLE/{p*[(average[W])/7 + 7/20]}


For different [W] weapons attacking this skirmisher monster (ROLE=8) with the player having a p=50% of hitting the monster, we have average number of rounds "R" as the level goes to infinity:

average[d12] = 6.5 --> R = 12.51
average[d10] = 5.5 --> R = 14.01
average[d8] = 4.5 --> R = 16.12
average[d6] = 3.5 --> R = 18.82
average[d4] = 2.5 --> R = 22.63

On average, for a player hypothetically repeatedly spamming an encounter power against a skirmisher monster of the same level, the average number of rounds "R" to kill the monster is shorter by approximately 4 rounds (compared to at-will powers) as the level goes to infinity. (For a 50% probability of hitting the monster, this would mean that it takes approximately 2 less hits to kill the skirmisher monster).

More generally, a hypothetical spammed encounter power takes approximately 15% to 20% less rounds to kill a monster (of the same level).

Scaling of standard deviation of N for 4E at-wills.

Let's examine how the standard deviation (stdev) of N changes with level.

Recall the average number of hits to kill a monster by a non-striker player character (of the same level) using an at-will power with weapon damage dice [w] = level*[W],

N = [ROLE*(level+1) + CON]/[(average[w])/10 + 7*(level-10)/20]

where one of the egregious assumption made, was that the damage of at-will powers [W] increases each ten levels after level 10, in the pattern of:

level 21-30 --> 2[W]
level 31-40 --> 3[W]
level 41-50 --> 4[W]
level 51-60 --> 5[W]
etc ...

For weapon damage dice 2[W], it means that the number of weapon dice is doubled. For example if the weapon dice [W] is a d6, then 2[W] means 2d6, 3[W] means 3d6, etc ...

The average of damage dice "level*[W]", turns out to be equal to level*average[W].

But the standard deviation of damage dice "level*[W]", turns out to be [sqrt(level)]*stdev[W]. ("sqrt" is the square root). This can be found in any college statistics/probability textbook.

(For example, (stdev[3d6])^2 = (stdev[d6])^2 + (stdev[d6])^2 + (stdev[d6])^2 which gives stdev[3d6] = sqrt(3) * stdev[d6]).


Recall that for individual dice like d4, d6, d8, d10, d12, etc ... the standard deviation is:

stdev[dN] = sqrt[(N^2 -1)/12]

where sqrt is the square root. (A single die follows a discrete uniform distribution).

For example,

stdev[d4] = 1.118
stdev[d6] = 1.708
stdev[d8] = 2.291
stdev[d10] = 2.872
stdev[d12] = 3.452



To get the standard deviation of N, there's the formula:

stdev[N] = |dN/dw| * stdev[w]

where w = level*[W]. The term in between the | | absolute value brackets is the first derivative of N with respect to [W].

Doing the calculation of the standard deviation of N and scaling the level to infinity, we get:

stdev[N] = N^2 *(stdev[W])/[ROLE*sqrt(level/10)]

when the level becomes larger and larger.

Hence the standard deviation of the average number of hits "N" to kill a monster by a player repeatedly using at-will powers against a monster (of equivalent level), scales as:

stdev[N] ~ 1/sqrt(level)


This means the standard deviation of N moderately gets smaller and smaller as the level gets bigger and bigger. The number of hits to kill a monster (of the same level) deviates less and less from the average, as the level becomes bigger and bigger.

Basically while one is "always fighting orcs", the "orcs" are becoming more and more "predictable" as the level gets higher and higher.

Scaling for different levels between player and monster.

One can look at the scaling behavior of the average number of hits to kill a monster being attacked by a player, but for slightly different levels for the player character and monster.

For the level of the monster and player not being equal, we'll indicate their levels by level_m and level_p respectively. So from a previous post, the average number of hits "N" to kill a monster (of level_m) being attacked by a player character (of level_p) is:

N = [ROLE*(level_m+1) + CON]/[level_p*(average[W])/10 + 7*(level_p-10)/20]

Taking the limit where both level_m and level_p are brought to infinity but keeping the ratio (level_m/level_p) constant, we get:

N -> (level_m/level_p) * ROLE/[(average[W])/10 + 7/20].


From this result, we can examine what happens to "N" when (level_m/level_p) is changed.

The easiest case is when the level of the monsters is double the level of the players. In this case (level_m/level_p) = 2, which implies the average number of hits to kill a monster double in level from the players, will take on average two times as many hits to kill in comparison to a monster of the same level as the players.

The second easiest case is when the level of the monster is half of the level of the players. In this case (level_m/level_p) = 0.5, which implies the average number of hits to kill a monster half in level from the players, will take on average half as many hits to kill in comparison to a monster of the same level as the players.

Scaling of 4E monsters fighting against players.

Let's look at things from the monster's point of view. We'll calculate the average number of hits "N" to kill a player character (of the same level) and see how it scales when the level goes to infinity.

For this analysis, we'll ignore healing surges and stat increases to CON.


For the player characters, the hit points H scale approximately as:

H = *constant* + CON + CLASS*level

where *constant* is a number between 6 to 10 (depending on class) and:
CLASS = 4 --> wizard, invoker
CLASS = 5 --> cleric, druid, ranger, rogue, bard, sorcerer, warlock, warlord, shaman
CLASS = 6 --> fighter, paladin, barbarian, avenger
CLASS = 7 --> warden.


For the monster damage, the average damage from the "normal damage expression" table on page 185 of the 4E DMG1, follows approximately:

low damage: 6 + level*5/12
medium damage: 8 + level*7/15
high damage: 10 + level*3/5.

(These were found by doing a simple linear fit to the average values).

Calculating "N" for the monster attacking players and scaling the level to infinity, we get:

low damage: N -> 12*CLASS/5 = 2.4*CLASS
medium damage: N -> 15*CLASS/7 = 2.14*CLASS
high damage: N -> 5*CLASS/3 = 1.67*CLASS


For the new monster damage table from the 4E DMG1 errata for page 185, the average damage follow approximately:

single target: 8 + level
two or more targets: 6 + level*3/4.

Calculating "N" for the monster attacking players and scaling the the level to infinity, we get:

single target: N -> CLASS
two or more targets: N -> 4*CLASS/3 = 1.33*CLASS.


Compare the old damage scheme to the errata update one. For the average number of hits "N" of a monster killing a player character, it is suggestive the errata updated monster damage is a lot more formidable.

Using the new errata monster damage, for example a monster fighting a typical defender player character, it takes around 6 to 8 hits to kill the defender without any healing surges. Using the old monster damage table from page 185 of the 4E DMG1, it would take the same monster around 12 hits to kill the defender (without any healing surges).

In contrast from previous posts which calculated the scaling for non-striker and striker player characters, we calculated that a non-striker player character would take around 8 to 10 hits to kill a skirmisher monster using weapons with damage dice d8, d10 or d12. A striker player character would take around 6 to 8 hits to kill a skirmisher monster using weapons with damage dice d6, d8 or d10.


Indeed, the old 4E monsters using the old damage scheme from page 185 of the 4E DMG1, don't appear to be as much of a threat to the players (even without any healing surges). A reverse "always fighting orcs" where the "orcs" are consistently losing to the player characters.

In contrast with the new damage scheme from the 4E DMG1 errata, the "orcs" can actually win sometimes against the players.

Scaling of 4E ranger's twin-striker power.

This is an analysis of the ranger's "twin strike" power. (We'll ignore the additional complication of hunter's quarry).

We will calculate the average number of rounds "R" it takes to kill a monster (of the same level as the ranger) by being repeatedly twin striked.

We'll assume twin strike is two attacks in one round, where each attack is separately rolled for attack and damage. To make the problem general, we will use the notation:

p1 = to-hit probability of first attack
p1 = to-hit probability of second attack
d1 = damage of first attack
d2 = damage of second attack

The expectation value ED of the twin strike damage in one round is:

ED = p1 p2 (average[d1] + average[d2]) + p1 (1-p2) average[d1] + (1-p1) p2 average [d2] + (1-p1)(1-p2)*0

(EDIT: The first term is when both attacks hit. The second and third terms are when one attack hits and the other misses. The fourth term is when both attacks miss).

Doing the algebra, we get:

ED = p1 average[d1] + p2 average[d2]

(More generally this result can be generalized to any number of attacks. For example, three attacks in one round: ED = p1 average[d1] + p2 average[d2] + p3 average[d3]).

If we assume p1 = p2 = p, and d1 = d2 = d, we have ED = 2p*average[d].


For twin strike, the damage is d = [W] + magic enhancement for each attack.

The magic enhancement scales approximately as level/5, assuming the progression on page 225 of the 4E PHB1.

For the sake of argument, we will look at the case where the weapon damage dice per attack remains [W] for all levels to infinity. (ie. Weapon damage does not change to 2[W] per attack at level 21).


Hence the damage scales approximately as:

average[d] = average[W] + level/5

and ED = 2p*(average[W] + level/5)


Now the average number of rounds "R" to kill a monster by a player of the same level is:

R = [ROLE*(level+1) + CON]/(2p*[average[W]+ level/5])

As the level goes to infinity, R approaches

R -> 5*ROLE/2p = 2.5*ROLE/p.


Recall from the previous post that a similar result for generic at-will powers having weapon dice damage [W] for all levels to infinity was:

R -> N/p -> 20*ROLE/7p = 2.86*ROLE/p.


So even without the stat mod added to the damage to twin strike, the scaling limit for R is slightly better than for generic at-will powers as the level goes to infinity.


If the same analysis is done again for twin-strike, but adding in an egregious assumption where the weapon dice damage per attack increases with level in the form:

level 21 - 30 --> 2[W] per attack
level 31 - 40 --> 3[W] per attack
level 41 - 50 --> 4[W] per attack
etc ...

We will assume the magic enhancement scales approximately as level/5.

Hence the damage per attack scales approximately as:

average[damage] = (level/10)*average[W] + level/5


The expectation value of the damage per round for twin strike with these egregious assumptions is:

ED = 2p*[(level/10)*average[W] + level/5]


Now the average number of rounds "R" to kill a monster by a player of the same level is:

R = [ROLE*(level+1) + CON]/(2p*[(level/10)*(average[W]) + level/5])

As the level goes to infinity, R approaches

R -> ROLE/[2p*( (average[W])/10 + 1/5)].


Plugging in some numbers for a ranger twin striking a skirmisher (ROLE=8), the weapon dice [W] for ranger weapons could be d6, d8 or d10.

average[d6] = 3.5 --> N = 7.27
average[d8] = 4.5 --> N = 6.15
average[d10] = 5.5 --> N = 5.33

(We used R = N/p to get N = average number of hits to kill monster).


In the end twin-strike is also "always fighting orcs" as the level scales to infinity.

Average number of rounds R vs. average number of hits N.

To get the average number of rounds to kill a monster (including the attacks which missed) by a player of the same level as the monster, it turns out it is related to "N". Let's call this average number of rounds to kill a monster, as "R".

We won't include stuff like critical hits, attacks with half-damage on a miss, and other stuff which I haven't thought of yet. With that being said, it turns out the average number of rounds "R" to kill a monster for a player with probability p of hitting the monster, is:

R = N/p

To get this result, this is from the geometric probability distribution. A geometric probability distribution model includes the hits and misses when a player attacks a monster.


More generally, "R" is the ratio:

(hit points of monster)/(expectation value of damage per round).


Let's call

H = hit points of monster
ED = expected value of damage per round.

So R = H/ED.


Let's assume a player has a probability p of hitting a monster.

For an at-will power with weapon damage dice [W] at lower levels, the expectation value of the damage for one round is:

p*average[W + stat mod + magic enhancement] + (1-p)*0

which is simply: ED = p*average[W + stat mod + magic enhancement]


For a hypothetical at-will which does half damage on a miss, the expectation value of the damage for one round is:

p*average[W + stat mod + magic enhancement] + 0.5*(1-p)*average[W + stat mod + magic enhancement]

which is simply: ED = 0.5 (1+p)*average[W + stat mod + magic enhancement].

If every at-will power had "half damage on a miss", then "R" would be:

R = 2N/(1+p)


If one includes critical hits to an at-will power with weapon damage dice [W] at lower levels, the expectation value of the damage for one round is:

ED = (p-0.05)*average[W + stat mod + magic enhancement] + (0.05)*(maximum[W + stat mod + magic enhancement] + average[criticalextra]).

("criticalextra" is the extra damage dice from magic weapons on a critical).


As one can see, incorporating "half-damage on a miss" or "critical hits", can make the equations look a lot messier. They don't fit into a nice form like R = N/p.

Scaling of 4E at-will powers for strikers.

Let's examine how "N" changes with extra damage from striker classes. (The previous post was for non-strikers).

For the ranger's hunter's quarry and warlock's curse, the extra damage is:

levels 1-10 --> 1d6
levels 11-20 --> 2d6
levels 21-30 --> 3d6

while for a rogue, the extra damage for sneak attacking is:

levels 1-10 --> 2d6
levels 11-20 --> 3d6
levels 21-30 --> 5d6.

(This is not very realistic for a rogue to repeatedly sneak attack a monster every round to infinity levels, but in principle it could be done if the monster is marked and tied up by a defender).

Let's make an egregious assumption and extrapolate this extra striker damage as:

- ranger or warlock
levels 31-40 --> 4d6
levels 41-50 --> 5d6
levels 51-60 --> 6d6
etc ...

- rogue
levels 31-40 --> 7d6
levels 41-50 --> 9d6
levels 51-60 --> 11d6
etc ...

So for the ranger or warlock, the average extra damage approximately scales as:

1 + [average(d6)]*level/10

while the rogue's average extra damage scales approximately (at high levels) as:

1 + [average(d6)]*2*level/10


So for the average number of hits to kill a monster (N) by the above striker players of the same level, as the level approaches infinity becomes:

- rangers or warlocks

N -> ROLE/[(average[W])/10 + (average[d6])/10+ 7/20]

- rogues

N -> ROLE/[(average[W])/10 + (average[d6])/5 +7/20]


To plug in some numbers, a rogue repeatedly sneak attacking a skirmisher (ROLE = 8). The weapons the rogue is proficient in, typically have d4 or d6 [W] damage dice.

[W] = d4 --> N = 6.15
[W] = d6 --> N = 5.71

For ranger or warlock at-will powers (excluding twin strike) repeatedly attacking a skirmisher, the damage dice can be d6, d8, or d10.

[W] = d6 --> N = 7.62
[W] = d8 --> N = 6.96
[W] = d10 --> N = 6.4


In contrast, a non-striker attacking a skirmisher with weapons dice [W] of d8, d10, d12:

average[d12] = 6.5 --> N = 8
average[d10] = 5.5 --> N = 8.89
average[d8] = 4.5 --> N = 10

On average, the extra striker damage reduces the number of hits to kill a monster by around 1 or 2 hits as the level goes to infinity.

Scaling of 4E at-will powers.

Let's analyze the scaling behavior of the average number of hits to kill a monster in 4E D&D itself, with some very egregious extrapolations.

Recall that the average number of hits to kill a monster (N) is the ratio:

N = (monster hit points)/(average amount of damage per successful attack).


From the 4E PHB1, the damage done by at-will powers is typically:

[W] + stat mod + magic enhancement.


Stat increases happen at levels 4 and 8, where +1 is added to two stats of choice. We assume one of the stats goes into the primary stat.

At the paragon and epic tiers, the stat mod increases happen at levels 11, 14, 18 (paragon) and levels 21, 24, 28 (epic). At levels 14, 18, 24, 28, the stat mod increases are similar to the ones at levels 4 and 8. At levels 11 and 21, the stat mod increases are +1 to every stat. (This is on page 29 of the 4E PHB1).

The magic enhancement for different levels assumes the table from page 225 of 4E PHB1.

1 -5 -> +1
6 - 10 -> +2
11 - 15 -> +3
16 - 20 -> +4
21 - 25 -> +5
26 - 30 -> +6

(ie. Magic enhancement increases by +1 every five levels).


To make things simple, we will examine the levels 11-30 of paragon and epic tiers as one entity. Over levels 11-30, the total additional damage contributed by the stat increases and magic enhancement is +7, due to +3 from stat increases and +4 from magic enhancement, by the time one reaches level 30. (Heroic tier by level 10, typically already has a +6 to +8 contributed to the damage, where: +3 to +5 is from the stat mod, +1 from the two stat increases, and +2 from magic enhancement).

One egregious assumption we will make, is that this pattern of stat increases and magic enhancement remains the same every 20 levels as one goes to higher levels beyond level 30. For example, stat increases at levels 31, 34, 38, 41, 44, 48, etc ... and magic enhancement increases of +1 every five levels. In effect at level 50, the total additional damage contributed by stat increases and magic enhancement is +7.

So above level 10, the increase to damage from stat increases and magic enhancement scales approximately as: 7*(level-10)/20


Another egregious assumption we will make, is that the damage of at-will powers [W] increases each ten levels after level 10, in the pattern of:

level 21-30 --> 2[W]
level 31-40 --> 3[W]
level 41-50 --> 4[W]
level 51-60 --> 5[W]
etc ...

So above level 10, the average damage from a successful hit scales approximately as:

level*(average[W])/10 + 7*(level-10)/20

(We will ignore the heroic tier stuff, since it will just drop out as a constant when things scale with level. But for reference, the heroic tier will contribute a +6 to +8 to the damage by the time one reaches level 10).


On the monster side, the hit points of various monsters from page 184 of the 4E DMG1 are:

ROLE*(level +1) + CON

where ROLE is:
Artillery, Lurker --> ROLE = 6
Skirmisher, Soldier, Controller --> ROLE = 8
Brute --> ROLE = 10
(Elites double the hit points, while Solos quadruple the hit points).


Now the average number of hits to kill a monster being attacked by a player (of the same level as the monster) is approximately the ratio (for a high level):

N = [ROLE*(level+1) + CON]/[level*(average[W])/10 + 7*(level-10)/20]


Taking the level to infinity, this ratio approaches the limit of

N -> ROLE/[(average[W])/10 + 7/20].


(If one actually ignores the egregious assumption of weapon damage [W] increasing every ten levels, then the average number of hits to kill a monster is just:

N -> ROLE*20/7

as the level increases to infinity. In this scenario, the at-will power [W] remains the same for all levels. At level 21, [W] remains [W] and does not increase to 2[W]).


Let's plug in some numbers. For a skirmisher monster, ROLE = 8. For a weapon with d8 damage dice, average[W] = 4.5. For these numbers, the average number of successful hits to kill a skirmisher being attacked by a [W] = d8 weapon is N = 10.

For different [W] weapons attacking this skirmisher monster, we have average number of attacks N as the level goes to infinity:

average[d12] = 6.5 --> N = 8
average[d10] = 5.5 --> N = 8.89
average[d8] = 4.5 --> N = 10
average[d6] = 3.5 --> N = 11.43
average[d4] = 2.5 --> N = 13.33


More generally for different monster types with ROLE:
Artillery, Lurker --> ROLE = 6
Skirmisher, Soldier, Controller --> ROLE = 8
Brute --> ROLE = 10
(Elites double the hit points, while Solos quadruple the hit points).

For various weapons [W] dice, this limit is:

average[d12] = 6.5 --> N = ROLE
average[d10] = 5.5 --> N = ROLE/0.9 = 1.11*ROLE
average[d8] = 4.5 --> N = ROLE/0.8 = 1.25*ROLE
average[d6] = 3.5 --> N = ROLE/0.7 = 1.43*ROLE
average[d4] = 2.5 --> N = ROLE/0.6 = 1.67*ROLE
average[d2] = 1.5 --> N = ROLE/0.5 = 2*ROLE

(d2 is flipping a coin, where one side is 2 and the other side is 1).


Indeed with these egregious extrapolations, 4E D&D is "always fighting orcs" as the levels go to infinity.

Wednesday, March 3, 2010

How good is the N avg(D) formula for hit points?

Recall the monster hit point formula N avg(D), from a previous post. N is the number of hits a monster takes before it dies, and avg(D) is the average amount of damage a player does per hit.

One can check how well this formula works with an online dice calculator.

Let's examine a case where a player does D=d8+4, avg(d8+4)=8.5 damage every time a player hits a monster. For a monster lasting N=4 hits until it dies, the monster should have 4(8.5) = 34 hit points.

Using the online dice calculator to calculate the total damage after 4 hits, one can see that 34 hit points is at the peak of the distribution for 4d8 + 16, which is distribution of possible total damage from a player doing d8+4 damage per hit for 4 hits. The probability of the total damage being greater than or equal to 34 after 4 hits, is 54.2%.

Next one can examine the distribution of possible total damage after 5 hits, which is 5d8 + 20. From this, the probability of the total damage being greater than or equal to 34 after 5 hits, is 96.09%.

Doing the same calculation for 6 hits, we get:

prob(total damage >= 34) = 99.97%

In general, one can do enough of these calculations and convince one's self that after N hits of a player doing D damage to a monster having N avg(D) hit points, the distribution of the total damage after N hits will be such that:

prob(total damage >= N avg(D)) ~ 50% - 55%

After N+1 or N+2 hits, the distribution of the total damage will be such that:

prob(total damage >= N avg(D)) ~ 90% - 100%.


If one tries hard enough, one can find situations where this doesn't quite hold exactly, such as the case of N=3, D=d4+1, avg(D)=3.5. In this case after 3 hits:

prob(total damage >= 10) = 68.75%.

After 4 hits, prob(total damage >= 10) = 98.05%.

Another extreme case which doesn't quite hold exactly, is the case of N=21, D=d12+7, avg(D)=13.5. In this case after 21 hits:

prob(total damage >= 283) = 52.5%.

After 22 and 23 hits,

22 hits: prob(total damage >= 283) = 81.36%
23 hits: prob(total damage >= 283) = 95.46%

Friday, February 26, 2010

Hit points of 4E monsters (part 2).

Let's look at the hit points of low level 4E monsters again.

From a previous post, the hit points of some favorite generic low level monsters are:

Kobold: 24, 27, 36 (level 1-2)
Goblin: 25, 29, 31 (level 1-2)

Let's assume a level 1 player with an at-will power using a weapon which does d8 damage, and the player's primary combat stat has a mod of +4. Hence the damage the player does with each hit is d8+4. The minimum damage per hit is 5 and the maximum damage per hit is 12. The low and upper limits for total damage done by more than one hit is:

1 hit: 5 -> 12
2 hits: 10 -> 24
3 hits: 15 -> 36
4 hits: 20 -> 48
5 hits: 25 -> 60
6 hits: 30 -> 72

The generic kobold or goblin is dead at minimum after 2 or 3 hits, and definitely dead after more than 5 or 6 hits.

To make things more precise, one can examine the probability of the total damage killing a monster after a number of hits. Let's look at the goblin with 29 hit points, using an online dice calculator. The results are:

3 hits: prob(total damage >= 29) = 23.44%
4 hits: prob(total damage >= 29) = 88.01%
5 hits: prob(total damage >= 29) = 99.83%


At a slightly higher level, the hit points of some generic monsters are:

Orc: 46 (level 3)
Hobgoblin: 39, 47 (level 3)
Skeleton: 45 (level 3)
Lycanthrope: 48 (level 3)
Doppelganger: 45 (level 3)

For our player now at level 3 with the same at-will power with a weapon doing d8 damage, the primary combat stat mod is +4 and maybe the weapon is now magic with a +1 bonus to damage. The damage per hit is d8+5. The lower and upper limits for total damage for more than one hit are:

1 hit: 6 -> 13
2 hits: 12 -> 26
3 hits: 18 -> 39
4 hits: 24 -> 52
5 hits: 30 -> 65
6 hits: 36 -> 78
7 hits: 42 -> 91
8 hits: 48 -> 104

It requires a minimum of 3 or 4 hits to kill a generic level 3 or 4 monster, while they're definitely dead after 8 or more hits.

Doing the same exercise using the online dice calculator for a generic orc with 46 hit points, we get:

4 hits: prob(total damage >= 46) = 5.13%
5 hits: prob(total damage >= 46) = 64.77%
6 hits: prob(total damage >= 46) = 98.11%


At a slightly more higher level, the hit points of some generic monsters are:

Beetle: 88 (level 8)
Behemoth: 82 (level 7)
Boar: 85 (level 6)
Troglodyte: 69, 74, 93 (level 6-8)
Zombie: 71, 88 (level 6-8)
Spider: 80 (level 7)
Shadar-Kai: 77, 86 (level 7-8)
Satyr: 80, 86 (level 7-8)
Ogre: 91 (level 8)
Foulspawn: 86, 87 (level 8)
Succubus: 90 (level 9)

For our player now at level 8 with the same at-will power with a weapon doing d8 damage, the primary combat stat mod is +5 (+1 from enough stat increases) and maybe the weapon is now magic with a +2 bonus to damage. The damage per hit is d8+7. The lower and upper limits for total damage for each hit are:

1 hit: 8 -> 15
2 hits: 16 -> 30
3 hits: 24 -> 45
4 hits: 32 -> 60
5 hits: 40 -> 75
6 hits: 48 -> 90
7 hits: 56 -> 105
8 hits: 64 -> 120
9 hits: 72 -> 135
10 hits: 80 -> 150
11 hits: 88 -> 165
12 hits: 96 -> 180

It requires a minimum of 6 or 7 hits to kill a generic level 7 or 8 monster, while they're definitely dead after 12 or more hits.

Doing the same exercise using the online dice calculator for a generic stayr with 80 hit points, we get:

7 hits: prob(total damage >= 80) = 56.41%
8 hits: prob(total damage >= 80) = 97.38%
9 hits: prob(total damage >= 80) = 98.64%

As one can see from these calculations, the number of hits using only at-will powers with d8 damage (with assumptions from magic bonuses and stat increases), goes from 5 hits to kill level 1-2 monsters, to 6 hits to kill level 3-4 monsters, to 8 hits to kill level 7-8 monsters. (The number of hits are from the first greater than 95% probability of total damage killing a monster, from the online dice calculator).

With the players having more daily powers at higher levels, in principle it should reduce the number of hits it takes to kill such higher level monsters. These calculations will be the subject of a future post.

Thursday, February 25, 2010

Hit points of monsters in pre-4E editions.

In older editions of D&D and AD&D, the monsters' hit points was typically the number of d8's rolled and a constant number added sometimes. (We'll ignore the constant number added for simplicity).

For X hit dice, the average number of hit points is:

X avg(d8) = 4.5X (*)

Recall the monster hit point formula from a previous post:

N avg(D)

where N is the number of hits it takes to kill a monster, and avg(D) is the average amount of damage a player does per attack.

In an easy example where a player's weapon does 1d8 damage per attack, the monster hit point formula is:

N avg(1d8) = 4.5N (**)

Equating the average number of hit points from (*) and (**), we get N = X. This means that without any improvements in weapons, it takes on average X hits to kill a monster with X hit dice.

For low level monsters with 1 hit die or less, they basically function like minions which die after one hit. Monsters with 2 hit dice, on average have to be hit twice to kill. (Etc ...)

Let's examine how magic bonuses to damage changes things. The formula N for the number of hits to kill a monster, in general is:

N = 4.5X/avg(D)

For different magic weapon bonuses to damage, for a weapon which normally does d8 damage, we have:

D = d8, avg (d8) = 4.5 -> N = X
D = d8 + 1, avg (d8+1) = 5.5 -> N= 0.82 X
D = d8 + 2, avg (d8+2) = 6.5 -> N= 0.69 X
D = d8 + 3, avg (d8+3) = 7.5 -> N= 0.60 X
D = d8 + 4, avg (d8+4) = 8.5 -> N = 0.53 X
D = d8 + 5, avg (d8+5) = 9.5 -> N = 0.47 X

It takes at least around a +4 or +5 magic weapon bonus to damage, to halve the average number of hits to kill a monster.

Hit points of generic 4E monsters. (part 1)

Continuing from the previous post, let's examine the monster hit point formula:

N avg (D)

where N is the number of hits it takes to kill a monster, and avg (D) is the average damage done by a player per attack.

In 4E, a player can max out their primary combat stat such that it has a stat adjustment of +4 or +5 to attacks and damage. The damage dice is anywhere from a d4 (ie. dagger) to a d12 (ie. greataxe) or 2d6 (ie. maul, heavy flail). Many weapons and magic attacks typically have damage dice of d6 or d8 for at-will powers.

Let's take an example of a player with a primary stat adjustment of +4 for combat attacks and damage, along with d6 damage dice. For such a level 1 player attacking a monster, the average damage per attack would be avg(d6 + 4) = 7.5.

If we want a monster to die after being hit a number of times, the hit points should be:

- 6 hits -> 6(7.5) = 45 hit points
- 5 hits -> 5(7.5) = 37 hit points
- 4 hits -> 4(7.5) = 30 hit points
- 3 hits -> 3(7.5) = 22 hit points

In the case of where the player's damage dice is d8, the average damage per attack would be avg(d8 + 4) = 8.5.

If we want a monster to die after being hit a number of times, the hit points should be:

- 6 hits -> 6(8.5) = 51 hit points
- 5 hits -> 5(8.5) = 42 hit points
- 4 hits -> 4(8.5) = 34 hit points
- 3 hits -> 3(8.5) = 25 hit points

Looking through the 4E Monster Manual, various low level generic monsters have hit points:

Kobold: 24, 27, 36, 42 (level 1-4)
Goblin: 25, 29, 31 (level 1-2)
Hobgoblin: 39, 47 (level 3)
Orc: 46, 64 (level 3-5)
Halfling: 22, 34 (level 1-2)
Human: 37, 42, 47 (level 2-4)
Wolf: 38, 67 (level 2-5)
Wraith: 37 (level 5)
Skeleton: 45, 53 (level 3-5)
Lizardfolk: 50, 54 (level 4-5)
Lycanthrope: 48 (level 3)
Rat: 36, 38 (level 1-2)
Zombie: 40, 46, 54 (level 3-4)
Elf: 32, 39 (level 2)
Gnoll: 50 (level 5)
Gnome: 34, 46 (level 2-3)
Doppelganger: 45 (level 3)
Drake: 29, 38, 40, 48, 77 (level 1-5)

A number of monsters at level 1 or 2 fit into the range of 3 or 4 hit kills, by players with weapons which do d6+4 or d8+4 damage for their at-will powers.