• NOW LIVE! Into the Woods--new character species, eerie monsters, and haunting villains to populate the woodlands of your D&D games.

Monte Carlo versus "The Math"

No, no. The DPR analysis works just fine because its being compared to other DPR values. The relative relationship between two character's DPR calculations and the relative relationship between their "rounds of combat" calculations should be so similar as to be indistinguishable in casual discussion.

Good point.

Try an example, done mathematically. You've got character A, and character B, with DPRs of 9 and 7, respectively. DPR wise, we expect character A to kill monsters approximately 28.6% faster than character B.

Now imagine they're each fighting a monster with 60 hp.

Using what you call the DPR approach, we expect Character A to kill the monster in 6.667 rounds. But if we were to make our analysis more specific, we'd determine that Character A expects to kill the monster in 7 rounds- 6 rounds to get to 54 damage, then one more to get to 63. The remainder is rounded up to the nearest whole number.

Using what you call the DPR approach, we expect Character A to kill the monster in 8.571 rounds. But if we were to make our analysis more specific, we'd determine that Character A expects to kill the monster in 9 rounds- 8 rounds to get to 56 damage, then one more to get to 63.

I agree with your overall point. Just for fun, let's run it through my simulator.

First, I have to find real stats that give the DPR you're talking about. I chose a monster with AC 18 and 60 HP.

Character A: att +10 for 1d12 + 7 dmg = 9.05 dpr = 8.5409 rounds to kill
Character B: att +7 for 1d12 + 7 dmg = 7.025 dpr = 6.6298 rounds to kill

Now let's see what the sim says.

Character A:
Code:
 4: =====================
 5: ========================================================
 6: ===========================================================================
 7: =========================================================================
 8: ===========================================================
 9: =========================================
10: ==========================
11: ================
12: =========
13: =====
14: ==
15: =
Fights simulated: 100000
Average # of rounds per fight: 7.4
Character A most often spends 6 rounds killing his monster but averages 7.4 rounds (not seven, as you had said).

Character B:
Code:
 4: ===========
 5: =================================
 6: =======================================================
 7: =====================================================================
 8: ===========================================================================
 9: =====================================================================
10: ============================================================
11: ==================================================
12: =======================================
13: =============================
14: ======================
15: ==============
16: ==========
17: =======
18: ====
19: ==
20: ==
21: =
Fights simulated: 100000
Average # of rounds per fight: 9.5
Character B most often spends 8 rounds but averages 9.5 rounds.

Using either approach, the ratio is 0.77624 (dpr) versus 0.77894 (simulator) -- close enough. :)
 

log in or register to remove this ad

You can see how the Monte Carlo simulation gives us a much richer, more accurate analysis than the DPR approach. And we're just barely getting started. Next up: feats, powers, and monsters that actually fight back!

I think you should cut to the chase.

I don't know of anyone who is claiming that Level 1 math is bad.

Try Level 15, Level 20, Level 25.

See if the encounters last 5.5 rounds then.
 

I'm very interested in seeing your work on this, but I have to admit, that to my mind, the stochastic analysis will "simply" be giving a more accurate analysis of the same variables that a DPR calculation tries to analyze. While that more accurate analysis will certainly be more useful than DPR, I don't think it will (given the level of complexity you are likely to be able to model) be able to give us anything approaching a mathematically rigorous analysis of a whole D&D combat.

Even given a fight simply between two combatatants, the confounding variables of terrain, condition- and movement-inflicting powers, etc. will, I think, swamp the analysis.

Then, on top of all of those things, you have to consider the impact of player knowledge and judgement on tactics. Will the player use high-damage attacks at optimal times, when the damage will not be wasted, or will he use a high-damage power later in the fight, when it will result in wasted damage? Will a player recognize an optimal tactic, or use a suboptimal one instead? How would you calculate the chances of using suboptimal tactics in each fight?

Again, I think that the work you are doing (for FREE!) is going to be nothing but a very generous benefit for all (as I can't see any way in which it would do anything but give us MORE relevant data than a DPR analysis), but I also just don't see it as being an accurate model of a D&D fight.
 

Wouldn't a better way of trying to gather this information be to crowdsource it?

I'd imagine that it would be easier to make a play area that kept track of how people were playing rather than try to imitate people playing.
 

I think you should cut to the chase.

I don't know of anyone who is claiming that Level 1 math is bad.

Try Level 15, Level 20, Level 25.

See if the encounters last 5.5 rounds then.

That's the ultimate goal, but it's going to take a lot of work to get there. The big question I want to answer is, "is the (year 1) math actually balanced across 30 levels?" But I can't answer that without simulating a lot of feats and powers, not to mention multiple characters, positioning, and conditions.
 

Wouldn't a better way of trying to gather this information be to crowdsource it?

I'd imagine that it would be easier to make a play area that kept track of how people were playing rather than try to imitate people playing.

Easier for you, maybe. Go ahead. :)
 

The Monsters Strike Back

As a few people have mentioned, if all we're doing is a glorified DPR calculation, there's not much point. The real question is, how does each encounter consume the PCs' valuable resources?

To start answering that question, I first added the ability for the monster to fight back. So far, I haven't added initiative rolls, so the creatures act simultaneously--both the monster and the PC get an attack every round even if one of them is killed. (In other words, I only check if someone died at the top of the round.)

Same characters as before, but I added some new stats to the sim:

PC AC: 17
PC HP: 27
Monster attack bonus: 3
Monster damage: 1d10 + 3

Results:
Code:
LEVEL 1 SOLDIER VS. DWARF GREATWEAPON FIGHTER (no feats, no powers)
Fights simulated: 1000000

Avg rounds: 5.1
  2  (2.3%): ======
  3 (19.9%): ==================================================
  4 (43.3%): ===================================================================
  5 (64.2%): ===========================================================
  6 (79.3%): ===========================================
  7 (88.8%): ===========================
  8 (94.3%): ===============
  9 (97.2%): ========
 10 (98.7%): ====
 11 (99.4%): ==

Avg HP remaining: 10.6 of 27
-12  (0.6%): ==
-11  (1.2%): ===
-10  (2.1%): ====
 -9  (3.2%): =====
 -8  (4.5%): ======
 -7  (6.0%): =======
 -6  (7.7%): ========
 -5  (9.8%): ==========
 -4 (12.1%): ===========
 -3 (14.6%): =============
 -2 (17.0%): ============
 -1 (19.4%): ===========
  0 (21.6%): ===========
  1 (24.4%): =============
  2 (26.6%): ===========
  3 (29.0%): ============
  4 (31.5%): ============
  5 (34.1%): =============
  6 (36.7%): =============
  7 (39.3%): =============
  8 (42.0%): ==============
  9 (44.9%): ==============
 10 (47.9%): ===============
 11 (49.9%): ==========
 12 (51.7%): =========
 13 (53.2%): =======
 14 (61.2%): ========================================
 15 (64.7%): ==================
 16 (68.1%): ================
 17 (71.2%): ================
 18 (74.1%): ==============
 19 (76.9%): =============
 20 (79.4%): ============
 21 (81.9%): ============
 22 (84.4%): ============
 23 (86.9%): ============
 27(100.0%): ===================================================================
Under these circumstances, the PC dies 21.6% of the time, and takes no damage at all 13.1% of the time. The fights are over a little more quickly because if the PC can't mop up the monster in a decent amount of time, the monster mops up the PC.

There's an interesting spike at the 14hp mark--for some reason, taking exactly 13 damage is the most common damage, if you're damaged at all. I presume that's because it's critical damage--it's not that criticals are more common, but that critical damage is non-random, making it jump out of the noise more.

Similarly, I presume hp of 11-13 and 24-26 is uncommon because the monster always deals at least 4 damage.
 

No, no. The DPR analysis works just fine because its being compared to other DPR values. The relative relationship between two character's DPR calculations and the relative relationship between their "rounds of combat" calculations should be so similar as to be indistinguishable in casual discussion.

This may be the case when working with simple examples, but as you hint at below, it's not going to hold when comparing, say, crit-centric builds to builds that deal miss damage. The miss damage builds look worse in dpr than they do in average rounds to kill an opponent.

Also, the average number of rounds to kill an opponent isn't all you care about. The players win almost every fight, so variance in general works against them. For example, you'd rather kill the monster in 5 rounds every time than an even chance of 3 through 7 rounds. This again favors builds with low damage variance, given the same dpr for each.

To repeat the link I posted above, there's a lot more discussion of this here.
 

Powers, Surges, and Feats, oh my!

Up until now, we've only been using basic attacks... no wonder our PC dies a fifth of the time. It's time to make things more realistic.

For my level 1 feat, I chose Dwarven Weapon Training, and also upgraded my maul to a mordencrad. This bumped my death rate down to 16.6% and helped bring down the amount of combat time as well. Now the most common combat is 3 rounds long, with an average of 4.3.

Code:
LEVEL 1 SOLDIER VS. DWARF GREATWEAPON FIGHTER (no powers)
Fights simulated: 1000000

Avg rounds: 4.3
  2 (15.8%): ============================================
  3 (39.6%): ===================================================================
  4 (61.7%): ==============================================================
  5 (77.9%): =============================================
  6 (88.2%): ============================
  7 (94.1%): ================
  8 (97.1%): ========
  9 (98.7%): ====
 10 (99.4%): ==

Avg HP remaining: 13.3 of 27
-12  (0.4%): =
-11  (0.8%): =
-10  (1.3%): =
 -9  (2.1%): ==
 -8  (2.9%): ==
 -7  (3.9%): ===
 -6  (5.1%): ===
 -5  (6.4%): ====
 -4  (7.9%): =====
 -3  (9.6%): =====
 -2 (11.2%): =====
 -1 (12.8%): =====
  0 (14.3%): =====
  1 (16.6%): =======
  2 (18.5%): ======
  3 (20.5%): ======
  4 (22.6%): =======
  5 (24.8%): =======
  6 (27.0%): =======
  7 (29.4%): =======
  8 (31.8%): ========
  9 (34.4%): ========
 10 (37.1%): =========
 11 (39.0%): ======
 12 (40.6%): =====
 13 (41.9%): ====
 14 (51.0%): ===============================
 15 (54.9%): =============
 16 (58.7%): ============
 17 (62.2%): ============
 18 (65.5%): ===========
 19 (68.6%): ==========
 20 (71.6%): ==========
 21 (74.6%): ==========
 22 (77.5%): ==========
 23 (80.5%): ==========
 27(100.0%): ===================================================================
Next I replaced my basic attack with the at-will "Reaping Strike." I haven't bothered programming in the other at-will yet (I chose Cleave) because there's only one enemy.

Reaping Strike really helped. Survivability is way up (death happens 6.6% of the time) and combat time is even lower. I attribute this to Reaping Strike's fantastic 'miss' power, which helps reduce the variability of combat. The monster's going down eventually.

Code:
  2 (15.9%): ===========================
  3 (54.8%): ===================================================================
  4 (81.4%): =============================================
  5 (96.4%): =========================
  6 (99.4%): =====

Avg HP remaining: 15.7 of 27
 -8  (1.3%): =
 -7  (1.7%): =
 -6  (2.3%): =
 -5  (2.9%): =
 -4  (3.6%): =
 -3  (4.4%): ==
 -2  (5.2%): ==
 -1  (5.9%): ==
  0  (6.6%): ==
  1  (8.6%): =====
  2 (10.1%): ====
  3 (11.8%): ====
  4 (13.7%): =====
  5 (15.7%): =====
  6 (17.8%): =====
  7 (20.0%): ======
  8 (22.4%): ======
  9 (24.8%): ======
 10 (27.5%): =======
 11 (29.2%): ====
 12 (30.8%): ====
 13 (32.2%): ===
 14 (42.5%): ============================
 15 (46.8%): ============
 16 (51.0%): ===========
 17 (55.0%): ===========
 18 (58.8%): ==========
 19 (62.4%): ==========
 20 (65.8%): =========
 21 (69.2%): =========
 22 (72.7%): =========
 23 (76.1%): =========
 27(100.0%): ===================================================================
The final touch, though, was to implement Second Wind. Ready access to healing is one of the major things that separates PCs from monsters. Since second wind is a minor action for dwarves, it's essentially free (given that there's no other minor actions in play yet). I programmed the dwarf to spend the surge as soon as none of it would be wasted.

While I was at it, I also programmed in short rests. The dwarf tries to maximize his hit points during the short rest, but doesn't want to waste surges either. He's willing to spend a surge if he'll get at least 3/4 of the hit points from it. (In other words, he'll spend an 8-hp healing surge even if he only needs 6 hit points to hit max, but that's as far as he'll go.)

With the new healing ability, our hero is very resilient. He only dies 3% of the time, and easily heals back up to full after each encounter. Now the question isn't how long the fight took, or whether he'll survive, but how many surges the encounter consumed.

Code:
LEVEL 1 SOLDIER VS. DWARF GREATWEAPON FIGHTER
Fights simulated: 1000000

Avg rounds: 3.5
  2 (15.8%): ===========================
  3 (54.1%): ===================================================================
  4 (80.4%): ==============================================
  5 (96.0%): ===========================
  6 (99.3%): =====

Avg HP remaining: 25.1 of 27
  0  (3.0%): =
 23 (14.8%): =====================
 24 (22.8%): ==============
 25 (32.5%): =================
 26 (50.7%): =================================
 27 (87.3%): ===================================================================
 28(100.0%): =======================

Avg surges remaining: 8.4 of 10
  5  (2.4%): =====
  6 (10.7%): ====================
  7 (24.4%): =================================
  8 (48.0%): =========================================================
  9 (72.7%): ============================================================
 10(100.0%): ===================================================================

Death: 3.0%
 

Encounters and Dailies

We have the dwarf's at-will abilities, but what about encounters and dailies? I programmed those next.

First, the encounter. I chose Steel Serpent Strike because it was the only PHB power that did additional damage. The others all apply conditions, and I'm not ready to simulate the effects of conditions yet.

I programmed the dwarf to use the encounter power right away, on the assumption that it didn't really matter when he used it.

Code:
LEVEL 1 SOLDIER VS. DWARF GREATWEAPON FIGHTER
Fights simulated: 1000000

Avg rounds: 3.3
  1  (5.4%): ===========
  2 (36.6%): ===================================================================
  3 (59.4%): ================================================
  4 (79.8%): ===========================================
  5 (91.6%): =========================
  6 (98.3%): ==============
  7 (99.7%): ==

Avg HP remaining: 25.2 of 27
 23 (14.2%): ==================
 24 (21.6%): ============
 25 (30.4%): ==============
 26 (47.7%): ============================
 27 (88.1%): ===================================================================
 28(100.0%): ===================

Avg surges remaining: 8.6 of 10
  5  (2.2%): ====
  6  (9.5%): ===============
  7 (21.4%): ========================
  8 (43.7%): ===============================================
  9 (68.1%): ===================================================
 10(100.0%): ===================================================================

Death: 3.1%
Surprisingly, the encounter power didn't make much difference! The death rate is actually up slightly, presumably due to the lack of Reaping Strike's excellent miss effect. However, it does make fights go faster, and you consume fewer resources as well.

I also ran this scenario against higher-level opponents. When I did that, the encounter power made a much bigger difference, and the chance of death did go down.

Next was the daily power. I chose Brute Strike. To simulate resource hoarding, I decided the dwarf would only use his daily when things were "desperate"--in this case, when he was bloodied.

Code:
LEVEL 1 SOLDIER VS. DWARF GREATWEAPON FIGHTER
Fights simulated: 1000000

Avg rounds: 3.3
  1  (5.4%): ===========
  2 (36.6%): ===================================================================
  3 (60.1%): ==================================================
  4 (80.3%): ===========================================
  5 (91.7%): ========================
  6 (97.8%): =============
  7 (99.4%): ===

Avg HP remaining: 25.2 of 27
 23 (14.1%): ==================
 24 (21.5%): ============
 25 (30.4%): ==============
 26 (47.8%): ============================
 27 (88.1%): ===================================================================
 28(100.0%): ===================

Avg surges remaining: 8.5 of 10
  5  (2.2%): ====
  6  (9.5%): ===============
  7 (21.5%): =========================
  8 (43.9%): ===============================================
  9 (68.2%): ===================================================
 10(100.0%): ===================================================================

Death: 3.1%
Daily used: 10.3%
Again, it didn't make much difference--presumably because the level 1 opponent isn't much of a threat, and the power rarely gets used. (It's a reliable power, so low usage doesn't necessarily mean it wasn't actually attempted more often.)

Bottom line: the big guns don't make much difference against low-power opponents. They're much more interesting against higher-level opponents. More on that in the next post.
 

Into the Woods

Remove ads

Top