Tuesday, September 14, 2010

Scaling of 4E Essentials fighter at-will powers.

Let's analyze the scaling behavior of the average number of hits it takes for a 4E Essentials fighter (both knight and slayer) to kill a monster, with some very egregious extrapolations. (We will ignore "Power Strike" in this analysis).

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).


The damage done by at-will powers is typically:

[W] + stat mod + magic enhancement + misc.


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 (STR), and the other goes into the secondary stat (DEX).

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.

The magic enhancement for different levels assumes the table:

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.

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 weapon attacks increase as follows.

Slayer

(extrapolating the heroic, paragon, epic "mighty slayer" class ability)
level 5 --> 2 + dex mod damage
level 15 --> 5 + dex mod damage
level 25 --> 8 + dex mod damage
level 35 ---> 11 + dex mod damage
level 45 ---> 14 + dex mod damage
etc ...

(extrapolating the "battle wrath" stance)
level 1 --> +2 damage
level 11 --> +3 damage
level 21 --> +4 damage
level 31 --> +5 damage
level 41 --> +6 damage
etc ...

So for a Slayer always using the "battle wrath" stance, the average damage scales approximately as (above level 10):

avg[W] + level*14/27 + 1 + D + 7*(level-10)/20

where D is the dex mod at level 1.

Knight

(extrapolating the heroic, paragon, epic "weapon mastery" class ability)
level 5 --> +1 damage
level 15 --> +2 damage
level 25 --> +3 damage
level 35 ---> +4 damage
level 45 ---> +5 damage
etc ...

(extrapolating the "battle wrath" stance)
level 1 --> +2 damage
level 11 --> +3 damage
level 21 --> +4 damage
level 31 --> +5 damage
level 41 --> +6 damage
etc ...

So for a Knight always using the "battle wrath" stance, the average damage scales approximately as (above level 10):

avg[W] + level*5/24 + 2 + 7*(level-10)/20


On the monster side, the hit points of various monsters from page 184 of the 4E DMG1 are (assuming this is the same in the 4E Essentials DM Kit box set):

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):

Slayer

N = [ROLE*(level+1) + CON]/[avg[W] + level*14/27 + 1 + D + 7*(level-10)/20]

Knight

N = [ROLE*(level+1) + CON]/[avg[W] + level*5/24 + 2 + 7*(level-10)/20]


Taking the level to infinity, the ratios approach the limits of:

Slayer

N -> ROLE/[14/27 + 7/20] = 1.15*ROLE

Knight

N -> ROLE/[5/24 + 7/20] = 1.79*ROLE


For a skirmisher monster (ROLE=8), on average it will take a Slayer around 9 hits and a Knight around 14 hits (without "power strike") to kill the monster as the level goes to infinity.


Let's compare these results to the older Heinsoo 4E classes.

It turns out the 4E Essentials Slayer using "battle wrath" without using "Power Strike", is approximately equivalent damage-wise to a non-striker Heinsoo 4E class using a weapon with damage dice [W]=d10. The 4E Essentials Knight using "battle wrath" without using "Power Strike", is approximately equivalent damage-wise to a non-striker Heinsoo 4E class using a weapon with damage dice [W]=d4.

4E Essentials D&D scaling analysis articles.

We'll be reposting the series 4E Essentials D&D scaling analysis articles from therpgsite.

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).

In-game probability in practice - part 1.

As one may (or may not) have noticed, rolling a die multiple times does not always follow the theoretical probabilities that closely. For example, it's possible to roll a lot of low numbers on a d20 in a streak. It's also possible to roll a lot of high numbers on a d20 in a row (ie. a hot hand).

So how does the relative frequency of successful die rolls, relate to the theoretical probability for rolling a success?

It turns out, the act of rolling a die multiple times follows a binomial distribution.


To introduce some nomenclature, let's use:

X = number of successes
n = number of trials
p = theoretical probability of success
1-p = theoretical probability of failure

In the case of rolling a die "n" number of times, one will have "X" number of success. (For example, rolling a d20).

The theoretical probability "p" is what one would expect, from examining the DC's for a success. For example, rolling an 11 or over on a d20 is a 50% theoretical probability.

For a binomial distribution, the average value is m = np and the standard deviation is stdev = sqrt[np(1-p)]. For a large enough number of trials "n", one can approximate the binomial distribution with a normal distribution with average value m = np and standard deviation stdev = sqrt[np(1-p)].

(From a probability textbook, such as Sheldon Ross' textbooks on probability, the criteria for the normal approximation being reliable is np(1-p) > 10).

So for rolling a die "n" times and getting "X" successes (where "n" is large), it will follow a standard normal distribution (ie. with mean 0 and variance 1), with:

Z = (X - np)/sqrt[np(1-p)]

Doing some algebra, Z = [(X/n) - p]/sqrt[p(1-p)/n]. In this form, let Y = X/n represents the relative frequency of successes of rolling a die. This would be an estimate "Y" of the theoretical probability "p", from rolling a die "n" times and getting "X" number of successes. We would like to know how "Y" is related to the theoretical "p".

Since Z = (Y-p)/sqrt[p(1-p)/n] approximately follows a standard normal distribution, this means the confidence intervals can be determined for a range of Z's.

For a 95% confidence interval, Z will fall between -1.96 and 1.96 (from a table of areas of a normal distribution). (For a 99% confidence interval, Z will fall between -2.575 an 2.575).

In the case of a 95% confidence interval |Z| < 1.96, this means:

Probability ( |Y-p| < 1.96 * sqrt[p(1-p)/n] ) = 0.95

(Similarly for a 99% confidence interval, Probability ( |Y-p| < 2.575 * sqrt[p(1-p)/n] ) = 0.99 ).

Let the deviation d = 1.96 * sqrt[p(1-p)/n], which represents the deviation of the estimate "Y" from the theoretical probability "p".

From this we can determine how many number of trials "n" (ie. rolls of a die) it takes, such that the deviation between the estimate "Y" and theoretical probability "p" will stay within "d" with a 95% probability.

Doing some algebra, we get "n" in terms of "d":

n = (1.96)^2 * p(1-p)/(d^2)

For various theoretical probabilities "p" and deviations "d", we get:

(For a d20, a 5% deviation d = 0.05 starts to overlap between different values on the d20. If one wants more precision, one can use a 1% deviation d = 0.01).

d = 0.05
p = 0.50 ---> n = 384
p = 0.40 ---> n = 369
p = 0.30 ---> n = 323
p = 0.20 ---> n = 246
p = 0.10 ---> n = 138

d = 0.01
p = 0.50 ---> n = 9604
p = 0.40 ---> n = 9220
p = 0.30 ---> n = 8067
p = 0.20 ---> n = 6147
p = 0.10 ---> n = 3457

These results mean that for 95% of the time when rolling a die to hit a particular DC, the practical in-game probability (ie. number of successes divided by the total number of die rolls including misses/failures) deviating less than 5% from the "theoretical probability", would require at least a few hundred die rolls. (For a 1% deviation between the practical in-game and theoretical probabilities, it would require several thousand die rolls).

Not too surprising that in a generic four-five hour D&D game session where one only does a few dozen or so d20 rolls, the practical in-game probability "Y" does not always converge to the theoretical probability "p". One needs at least several hundred d20 rolls to see this convergence within a 5% tolerance band, 95% of the time.

One shouldn't be shocked at seeing somebody with a "hot hand" streak of rolling lots of high numbers on a d20, or somebody else on a losing streak of rolling lots of low numbers on a d20.

In-game probability in practice.

We'll be reposting the "In-game probability in practice" posts from therpgsite.

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.

4E D&D scaling analysis articles.

We'll be reposting the series 4E D&D scaling analysis articles from therpgsite.

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.

How many hit points should a monster have?

In an older WotC article by David Noonan, it is suggestive that monsters last around 5 rounds. How exactly this is implemented, the article does not state precisely.

Perhaps this "5 rounds" means the number of times it takes to hit a monster, before it is killed by the players?

To investigate this question, we need to recall a few things.

Recall
that the average number of attacks it takes to hit a monster N times is N/p, where p is the probability of hitting a monster.

Also recall that the average amount of damage done by one attack is p avg(D), where D is the damage dice (ie. such as 1d6+2) and p is the probability of hitting a monster. (avg(D) is the expectation value of D).

If a monster dies after being hit N times, it will take on average N/p attacks to kill it. So on average the number of hit points it should have, is the average number of attacks multiplied by the average amount of damage done by each attack. Assuming each attack is done by the same player with the same weapon on the same monster, the number of hit points the monster should have is:

(N/p)(p avg(D)) = N avg(D)

Interesting that the number of monster hit points in this scenario, is independent of the probability to hit the monster. N avg(D) is only dependent on the number of hits a monster will take before dying, and the average damage done by the player.

Average value of a fair die.

Just for completeness, we will show why the average value of a fair dX die is (X+1)/2.

A fair dX die will have X sides with the numbers 1,2, ... to X, which have an equal likelihood of being rolled. Hence the probability of rolling any number is 1/X.

The average value is the sum of the die side values weighted by the probabilities of being rolled. Mathematically, for example the average value for d4 is:

1(1/4) + 2(1/4) + 3(1/4) + 4(1/4) = (1+2+3+4)/4

while for a d6, the average value is:

1(1/6) + 2(1/6) + 3(/16) + 4(1/6) + 5(1/6) + 6(1/6) = (1+2+3+4+5+6)/6

In general, the average value for a fair dX die is:

1(1/X) + 2(1/X) + ... + (X-1)/X + X/X = [1+2+...+(X-1)+X]/X

Recall from high school algebra, the sum of the first n numbers 1, 2, ..., n-1, n is: n(n+1)/2. (This can be shown to be true for any n by mathematical induction).

So for the average value of dX, we get: [X(X+1)/2]/X = (X+1)/2

Average damage.

We will examine the average amount of damage when a player attacks a target (ie. monster).

The easiest way to look at average damage, is to examine the expectation value of the damage rolled.

We start off with a probability p of hitting a target, and rolling D amount of damage for a hit. (D is just a placeholder to represent dice damage, such as 1d6+2).

As a concrete example, let's look at an example where the damage is 1d4 and the probability of hitting is p. (We will ignore critical success and failures).

With probability p of hitting, the possible damage from rolling 1d4 is: 1, 2, 3, and 4 for which each of these damage values have a probability of 1/4. So mathematically, the expectation value of the damage is:

p[1(1/4) + 2 (1/4) + 3(1/4) + 4(1/4)] + (1-p)(0)

which after simplifying is: p[avg(1d4)] = p 2.5

The first term is when the attack hits, while the second term (1-p)(0) is when the attack misses.

Recall that the average value of a single d4 die is avg(1d4) = [1(1/4)+2(1/4)+3(1/4)+4(1/4)] = 2.5. In general, the average value of a single fair die dX is avg(dX) = (X+1)/2. (ie. A single fair die dX has X sides, with numbers 1, 2, ..., X on them, with a probability of 1/X of rolling any number from 1 to X).

To bring this example one step up, let's examine the previous concrete example for two attacks. The probability of hitting a target is still p, and the damage is still 1d4.

The expectation value of the damage of these two attacks is:

p^2 [avg(1d4 +1 d4)] + p(1-p)[avg(1d4)] + (1-p)p[avg(1d4)] + (1-p)^2 (0)

The first term is when both attacks hit, while the second and third terms is when one attacks hits while the other misses. The fourth term is when both attacks miss.

Doing some algebra and noticing that since the 1d4's are independently rolled, avg(1d4+1d4) = avg(1d4) + avg(1d4), we get: 2p avg(1d4) for the average damage done by two attacks.

(In more detail, the values of the total damage done by 1d4 in the first attack and another 1d4 in the second attack: are 2, 3, 4, 5, 6, 7, 8 with probabilities

1/16 for 2 damage
2/16 for 3 damage
3/16 for 4 damage
4/16 for 5 damage
3/16 for 6 damage
2/16 for 7 damage
1/16 for 8 damage.

The average total damage value of two d4 rolls is:

2(1/16) + 3(2/16) + 4(3/16) + 5(4/16) + 6(3/16) + 7 (2/16) + 8(1/16)

which gives: 5 = 2.5 + 2.5

One can do a similar exercise and show that for doing three d4 rolls for damage, the average total damage will be 7.5 = 2.5 + 2.5 + 2.5).

If one has the patience, once can show that for three attacks the average damage done by the three attacks is: 3p avg(1d4).

More generally, if individual attacks have different to-hit probabilities of p1, p2, ..., pN and their respective damage dice rolls are D1, D2, ..., DN, one can show using mathematical induction that the average damage done by these N attacks in sequential order from 1 to N is:

p1 avg(D1) + p2 avg(D2) + ... + pN avg(DN)

(To show this, one uses avg(D1 + D2 + ... + DN) = avg(D1) + avg(D2) + ... + avg(DN) since the damage dice rolls are independent of one another).

Friday, February 12, 2010

Examining average number of attacks more closely.

We examine the result from the last post.

With a probability p of hitting a monster, the average number of attacks it takes to hit is 1/p.

On a d20 (with the mods backed out), the probability of rolling greater than or equal a particular number is:

10 = 55%
11 = 50%
12 = 45%
13 = 40%
14 = 35%
15 = 30%
16 = 25%
17 = 20%
18 = 15%
19 = 10%
20 = 5%

Examining this more closely, we have 1/p for various probabilities p:

prob = 55%, average number of attacks = 1.82
prob = 50%, average number of attacks = 2
prob = 45%, average number of attacks = 2.22
prob = 40%, average number of attacks = 2.5
prob = 35%, average number of attacks = 2.86
prob = 30%, average number of attacks = 3.33
prob = 25%, average number of attacks = 4
prob = 20%, average number of attacks = 5
prob = 15%, average number of attacks = 6.67
prob = 10%, average number of attacks = 10
prob = 5%, average number of attacks = 20

As the probability to hit gets smaller than 25% (ie. greater than 16 on a d20), the average number of attacks it takes to hit such a monster goes up considerably. To minimize combat from becoming too frustrating, it would be optimal to keep the probability to hit in the range of 25% to 50% which would correspond to the range 11 to 16 on a d20. (Less than 10 would be too easy). As one may have experienced, requiring a minimum roll of 18 or 19 to hit a monster can be very frustrating.

From the 4E DMG, the generic monsters typically have minimum defenses which scale as 12+level. So even for level 1 players fighting level 1 monsters, AC/fortitude/reflex/will are at least 13. A minion may only require an 11 or 12 to hit.

Number of attacks to hit

We will examine the number of attacks it takes on average to hit a target monster.

Assuming a probability p of hitting a monster, the probability of missing is 1-p.

The probability of hitting on the first attack = p.

The probability of missing on the first attack, but hitting on the second attack = p(1-p).

The probability of missing on the first two attacks, but hitting on the third attack = p(1-p)^2 .

In general, the probability of missing on the first k-1 attacks, and hitting on the kth attack is: p(1-p)^(k-1) .

To determine the average number of attacks to finally hit a target monster, we take the expectation value of the number of attacks:

sum{k=1, infinity} k p(1-p)^(k-1)

which gives the answer 1/p. (This is using the infinite series 1/(1-x)^2 = 1 + 2x + 3x^2 + 4x^3 + 5x^4 + ...).

With some more work, the variance can be calculated to be (1-p)/p^2.

This probability distribution is better known as the geometric distribution.

http://en.wikipedia.org/wiki/Geometric_distribution

More generally, the problem can be generalized to the case of the average number of times it takes to hit a monster N times. Without going through all the math, one could guess and formally show that the average number of attacks it takes to hit a monster N times is N/p.

In conclusion. With probability p of hitting a monster, the average number of attacks it takes to hit a monster once is 1/p. More generally, the average number of attacks it takes to hit a monster N times is N/p.

Thursday, February 11, 2010

Pattern of the combat to-hit modifier in 4E

One of my posts on enworld dissecting the 4E to-hit modifier.

http://www.enworld.org/forum/5061101-post14.html


Let's look at the pattern of to-hit roll modifier:

[level/2] + stat mod + magic enhancement = to-hit mod

starting with a minmaxed primary stat of 18 at level 1 (ie. stat mod of +4).

The magic enhancement follows the assumed pattern from page 225 from the 4E PHB:

level 1-5, enhancement = +1
level 6-10, enhancement = +2
level 11-15, enhancement = +3
level 16-20, enhancement = +4
level 21-25, enhancement = +5
level 26-30, enhancement = +6

The stat boosts are assumed to be added to the player's primary stat with enough stat boosts at levels 8, 14, 21, and 28, to affect the primary stat mod.

(stat mod = +4)
level 1, to-hit mod = +5
level 2-3, to-hit mod = +6
level 4-5, to-hit mod = +7
level 6-7, to-hit mod = +9

(stat mod = +5)
level 8-9, to-hit mod = +11
level 10, to-hit mod = +12
level 11, to-hit mod = +13
level 12-13, to-hit mod = +14

(stat mod = +6)
level 14-15, to-hit mod = +16
level 16-17, to-hit mod = +18
level 18-19, to-hit mod = +19
level 20, to-hit mod = +20

(stat mod = +7)
level 21, to-hit mod = +22
level 22-23, to-hit mod = +23
level 24-25, to-hit mod = +24
level 26-27, to-hit mod = +26

(stat mod = +8)
level 28-29, to-hit mod = +28
level 30-31, to-hit mod = +29

As an approximation, a possible replacement for [level/2] + stat mod + enhancement = to-hit mod

to-hit mod = level + 3, at heroic tiers of levels 1 to 10
to-hit mod = level + 2, at paragon tiers of levels 11 to 20
to-hit mod = level, at epic tiers of levels 21 to 30.

Not quite a single formula.

Looking at the patterns, I wonder whether it would be easier to just use a to-hit mod = +level, and changing the assumptions of the monsters and skills accordingly to acommodate this. The enhancement bonus of magic weapons for the to-hit and damage, could be stripped out with only the magical properties remaining which may be triggered by critical successes (or something else).

More generally, these approximate to-hit mod equations for a primary stat mod differing from +4 are:

to-hit mod = level + 3 + (primary_stat_mod - 4), at heroic tiers of levels 1 to 10

to-hit mod = level + 2 + (primary_stat_mod - 4) , at paragon tiers of levels 11 to 20

to-hit mod = level + (primary_stat_mod - 4), at epic tiers of levels 21 to 30.

First Post.

First post.

Will attempt to dissect the mechanics in various rpgs.