Go Back   EN World D&D / RPG News > D&D 4th Edition Discussion > D&D 4th Edition Rules

D&D 4th Edition Rules Ask questions about 4th-Edition rules and the like in here. General discussion about 4E or any other game belongs in General RPG Discussion, above.

 
Share LinkBack Thread Tools Display Modes
Old 1st November 2009, 10:20 PM   #1 (permalink)
Registered User
 
Join Date: Oct 2008
Posts: 171
Truename Goblin Sharpshooter (Lvl 2)
Monte Carlo versus "The Math"

There's been a lot of criticism of the 4e "math" lately. No biggie, really, but one thing has been bugging me. The analysis is incredibly shallow--nothing more than comparing one number (of dozens!) to another--and it's combined with this bellicose attitude and slapping down of anyone that dares disagree. Ptui.

The 4e math may be broken, or it may not be. The existing analyses don't prove anything. Play experiences back up the opinion of whoever's speaking. I'd like something more substantial.

Besides, I'm a programmer. This is my idea of fun.

Okay, so the purpose of this thread is to do a stochastic analysis of the 4e math, using something called a Monte-Carlo simulation. Basically, what we do is write a program that simulates a 4e fight, random dice rolls and all, and we run it a few hundred thousand times. From that, we get a complete view of everything that can happen. Not just the average case, but full range of possibilities. Because it's a simulation, we can incorporate a lot more variables than the typical DPR calculation.

This is a big project, so I'll be taking it one piece at a time. I hope you'll join in with your comments. First up: a look at how many rounds it takes to kill a monster.

Last edited by Truename; 1st November 2009 at 11:25 PM.. Reason: Corrected 'First up' preview
Truename is offline   Reply With Quote
Old 1st November 2009, 10:31 PM   #2 (permalink)
Registered User
 
bonus's Avatar
 
Join Date: Aug 2009
Posts: 28
bonus Kobold Slinger (Lvl 1)
A tool for 4e fight simulations and statistical experimentation would be pretty cool, although take note that if you try to simulate everything that can happen in a fight, your program would have an exponential asymptotic time complexity. Also, you'd have to implement the whole 4e rule system, which would be very hard to say the least. But if you start small and build up, you could produce some very cool things, especially if this is undertaken as a collaborative effort. So, yay!
bonus is offline   Reply With Quote
Old 1st November 2009, 10:47 PM   #3 (permalink)
Registered User
 
Join Date: Oct 2008
Posts: 171
Truename Goblin Sharpshooter (Lvl 2)
Quote:
Originally Posted by bonus View Post
A tool for 4e fight simulations and statistical experimentation would be pretty cool, although take note that if you try to simulate everything that can happen in a fight, your program would have an exponential asymptotic time complexity. Also, you'd have to implement the whole 4e rule system, which would be very hard to say the least. But if you start small and build up, you could produce some very cool things, especially if this is undertaken as a collaborative effort. So, yay!
There's a lot to do, for sure! I think the model will have to make some simplifying assumptions, but I've made good progress so far. I'm definitely hoping this will attract a lot of collaboration--it's too much work to continue if nobody else is interested.
Truename is offline   Reply With Quote
Old 1st November 2009, 10:53 PM   #4 (permalink)
Registered User
 
Join Date: Jan 2002
Location: Palo Alto, CA
Posts: 1,549
Elric Goblin Sharpshooter (Lvl 2)
Quote:
Originally Posted by Truename View Post
This is a big project, so I'll be taking it one piece at a time. I hope you'll join in with your comments. First up: a look at basic hit probabilities.
Unfortunately, there's no way to derive a "basic scenario" for D&D combat given the range of characters that could be played and tactics that could be employed. There's enough variation in characters that the choices here will drive the conclusion. Monsters have some variation as well.

The question "Suppose I have a party with hit bonuses H who will use XYZ abilities in a preset order against monsters that all have defense M and equal hit points (and sit there without attacking back). What will their overall chance of hitting be?" would be more reasonably answered.
Elric is offline   Reply With Quote
Old 1st November 2009, 11:23 PM   #5 (permalink)
Registered User
 
Join Date: Oct 2008
Posts: 171
Truename Goblin Sharpshooter (Lvl 2)
Monte Carlo vs. DPR

Let's start by looking at the difference between a stochastic analysis and a DPR analysis. For this one, we'll start very simply. The question we're analyzing: How many rounds does it take for a PC to kill a monster?

The PC: a level 1 dwarf great-weapon fighter, using Character Builder's recommended stats, wielding a maul. No feats or powers yet--just basic attacks.

PC Attack bonus: 7 (4 stat + 2 maul + 1 greatweapon)
PC Dmg dice: 2d6 (maul) + 4 (stat)

Character Builder summary

====== Created Using Wizards of the Coast D&D Character Builder ======
Dwarf-Fighter, level 1
Dwarf, Fighter

FINAL ABILITY SCORES
Str 18, Con 12, Dex 14, Int 10, Wis 13, Cha 8.

STARTING ABILITY SCORES
Str 18, Con 10, Dex 14, Int 10, Wis 11, Cha 8.


AC: 17 Fort: 16 Reflex: 12 Will: 11
HP: 27 Surges: 10 Surge Value: 6

TRAINED SKILLS


UNTRAINED SKILLS
Acrobatics +2, Arcana, Bluff -1, Diplomacy -1, Dungeoneering +3, Endurance +3, Heal +1, History, Insight +1, Intimidate -1, Nature +1, Perception +1, Religion, Stealth +2, Streetwise -1, Thievery +2, Athletics +4

FEATS

POWERS

ITEMS
Scale Armor, Adventurer's Kit, Maul
====== Copy to Clipboard and Press the Import Button on the Summary Tab ======


The Monster: a generic level 1 soldier, created using p184 of the DMG.

Monster AC: 17 (1 level + 16 soldier)
Monster HP: 29 (8 soldier + 13 con + (1 level * 8 soldier)

A DPR analysis of this fight says the monster lasts 4.6 rounds on average.

DPR breakdown

Avergae damage for maul: 2d6+4 = ((2 + 12) / 2) + 4 = 11
Crit damage for maul: 2d6+4 = 12 + 4 = 16
Roll to hit = 17 AC - 7 att bonus = 10

Chance to roll miss = (roll to hit - 1) / 20 = 45%
Chance to roll crit hit = 1 / 20 = 5%
Chance to roll normal hit = 1 - miss chance - crit chance = 1 - 45% - 5% = 50%

Average crit damage = crit chance * crit dmg = 5% * 16 = 0.8
Average hit damage = normal hit chance * normal dmg = 50% * 11 = 5.5

DPR = 0.8 + 4.95 = 5.75
Avg rounds = 29 HP / 5.75 DPR = 4.6 rounds


The stochastic analysis shows us something completely different. It says the average fight lasts 5.5 rounds, not 4.6. That's a significant difference... big enough that, if correct, pretty much invalidates DPR as a trustworthy approach.

Source code (in Ruby)

Code:
REPS = 1000000
PRECISION = 1
DISPLAY_WIDTH = 75

MONSTER_LEVEL = 1
MONSTER_CON = 13

PC_ATT_BONUS = 7
PC_DMG_BONUS = 4

class Monster
    def initialize
        @ac = MONSTER_LEVEL + 16
        @hp = 8 + MONSTER_CON + (MONSTER_LEVEL * 8)
    end
    
    def dead?
        return @hp <= 0
    end
    
    def defend(att, dmg)
        @hp -= dmg if att >= @ac
    end
end

class Pc
    def attack(monster)
        att_roll = die(20)
        att = (att_roll + PC_ATT_BONUS)
        dmg = damage(att_roll)
        
        monster.defend(att, dmg)
    end
    
    def damage(att_roll)
        dmg_dice = die(6) + die(6)
        dmg_dice = 12 if att_roll == 20
        return dmg_dice + PC_DMG_BONUS
    end
end

def die(size)
    return 1 + rand(size)
end

def fight
    monster = Monster.new
    pc = Pc.new
    round = 0
    until monster.dead?
        round += 1
        pc.attack(monster)
       end
  
    return round
end


def analyze
    results = {}
    total_rounds = 0
    max_value = 0
    REPS.times do
      rounds = fight
      results[rounds] = 0 unless results[rounds]
      new_value = results[rounds] += 1
      max_value = new_value if new_value > max_value
      total_rounds += rounds
    end
    
    results.keys.sort.each do |key|
      value = ""
      
      ticks = (results[key].to_f / max_value.to_f * DISPLAY_WIDTH).to_i
      ticks.times do
        value += "="
      end
      puts "#{key.to_s.rjust(2)}: #{value}" if value != ""
    end
    
    avg_rounds = total_rounds.to_f / REPS
    format = "%.#{PRECISION}f"
    puts "Fights simulated: #{REPS}"
    puts "Average # of rounds per fight: #{format % avg_rounds}"
end
    
analyze


Why the difference? I'm not entirely sure. (Hopefully it's not a bug! That's why I included the source code.) I think it's partly because, in a real fight, some damage is "wasted" after the monster hits zero HP.

The Monte Carlo analysis also gives us a histogram that summarizes all of the fights. For this simulation, I ran a million fights. 'Cause I could.

Code:
LEVEL 1 SOLDIER VS. DWARF GREATWEAPON FIGHTER (no feats, no powers)
  2  (2.3%): =======
  3 (18.0%): ==================================================
  4 (38.7%): ===================================================================
  5 (57.8%): =============================================================
  6 (72.6%): ===============================================
  7 (83.0%): =================================
  8 (89.8%): =====================
  9 (94.0%): =============
 10 (96.6%): ========
 11 (98.1%): ====
 12 (99.0%): ==
 13 (99.4%): =
Fights simulated: 1000000
Average # of rounds per fight: 5.5
So, although the average # of rounds is 5.5, the majority of fights take 4 rounds. Over 80% of fights take 7 rounds or less to complete, although a very small fraction of this simulation's fights dragged on and on, presumably due to lots of bad rolls.

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!
Truename is offline   Reply With Quote
Old 1st November 2009, 11:29 PM   #6 (permalink)
Registered User
 
Join Date: Jan 2002
Location: Palo Alto, CA
Posts: 1,549
Elric Goblin Sharpshooter (Lvl 2)
Quote:
Originally Posted by Truename View Post
Let's start by looking at the difference between a stochastic analysis and a DPR analysis. For this one, we'll start very simply. The question we're analyzing: How many rounds does it take for a PC to kill a monster?

The stochastic analysis shows us something completely different. It says the average fight lasts 5.5 rounds, not 4.6. That's a significant difference... big enough that, if correct, pretty much invalidates DPR as a trustworthy approach.
As you say, that you can "overkill" the monster is the reason why HP/DPR doesn't equal average rounds to kill the monster. Average rounds to kill the monster must be weakly higher than this figure. You can see a lot more discussion of this here
Elric is offline   Reply With Quote
Old 1st November 2009, 11:37 PM   #7 (permalink)
Registered User
 
bonus's Avatar
 
Join Date: Aug 2009
Posts: 28
bonus Kobold Slinger (Lvl 1)
That's pretty cool! Ruby's a good choice for this. Interested in seeing the rest of the simulations!
bonus is offline   Reply With Quote
Old 2nd November 2009, 12:02 AM   #8 (permalink)
Registered User
 
Join Date: Oct 2008
Posts: 171
Truename Goblin Sharpshooter (Lvl 2)
Quote:
Originally Posted by Elric View Post
As you say, that you can "overkill" the monster is the reason why HP/DPR doesn't equal average rounds to kill the monster. Average rounds to kill the monster must be weakly higher than this figure. You can see a lot more discussion of this here
Interesting stuff. Most of it went over my head, I'm afraid--I'm a programmer, not a mathematician, and I don't know much about statistics. I hope you'll contribute your expertise to this thread, too.
Truename is offline   Reply With Quote
Old 2nd November 2009, 01:02 AM   #9 (permalink)
Registered User
 
Join Date: Jun 2006
Posts: 4,608
Cadfan Snaketongue Initiate (Lvl 7)Cadfan Snaketongue Initiate (Lvl 7)
Quote:
Originally Posted by Truename View Post
The stochastic analysis shows us something completely different. It says the average fight lasts 5.5 rounds, not 4.6. That's a significant difference... big enough that, if correct, pretty much invalidates DPR as a trustworthy approach.
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.

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.

Well, lets check our ratios to see whether these forms of analysis generated significantly different outcomes.

DRP ratio, 6.667/8.571 = .77786
Round analysis, 7/9 = .77778

There you go.

For reference and full disclosure, lower hit points and higher damage (ie, fewer rounds needed to kill the monster) will generate more variability in the comparison of the DPR and Round analysis. This is because the remainder makes up a larger portion of the division of HD/DPR.

Using a mathematical expression for the round analysis instead of relying on DPR as an average will also introduce more variability. But that variability averages out and shouldn't affect overall conclusions.
Cadfan is offline   Reply With Quote
Old 2nd November 2009, 01:22 AM   #10 (permalink)
Registered User
 
Join Date: Jan 2009
Location: US
Posts: 916
AbdulAlhazred Goblin Sharpshooter (Lvl 2)
There are some other possible sources of variability. For instance 2d6 vs 1d12 damage weapon, which Monte Carlo will show slightly different population standard deviation for in length of number of rounds.

Personally I'm not sure that Monte Carlo REALLY matters a huge amount, though it is true that the distribution is added information. However the really interesting stuff is going to be sets of opponents and then you get into the murky waters of what are the effects of tactics. You can reduce the battle down to the blows struck and abstract tactics in terms of simply opportunities to attack, etc, but how do you account for the fact that the evolving nature of the battle itself feeds back into how it plays out?

Even taking a simple battle with say 3 opponents on each side where they are all roughly similar creatures with basic melee attacks. Now you can pretty well model that abstractly, everyone is going to get to swing at somebody and who wins is likely to be decided almost entirely on which side focuses its attacks better. I don't think you'll learn a LOT more with this kind of scenario than with one-on-one fights.

But what would be a step up from that? Lets say one side has a creature that can deploy an area attack. How many of the enemy can it hit on each attack? Is this going to affect how much the other side groups its units together (presumably they need to be close to each other to all concentrate on one target). Exactly what is going to happen now is going to depend highly on exactly who moves where and when. So you can run that fight 1 million times and determine the effects of tactics randomly, but the veracity of the result depends on how true your "random effects of tactics generator" is to what happens in real games.

I kind of fear that by the time you get to something approaching the level of complexity of a level 1 party fighting a level 1 encounter with some typical monsters the number of guestimations required to do that "effects of tactics" is going to be large and nobody will ever know how accurate it is, except by actually collecting data from real combats.

And I think that is really the ultimate key. This is an area where nothing is going to beat real world data. Still, it could shed some light on certain very specific questions. I just think people would have to go back and do some sanity checking against real world data all the same.
AbdulAlhazred is offline   Reply With Quote
Old 2nd November 2009, 01:40 AM   #11 (permalink)
Registered User
 
Join Date: Oct 2008
Posts: 171
Truename Goblin Sharpshooter (Lvl 2)
Quote:
Originally Posted by Cadfan View Post
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.

Quote:
Originally Posted by Cadfan View Post
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.
Truename is offline   Reply With Quote
Old 2nd November 2009, 01:56 AM   #12 (permalink)
Registered User
 
Join Date: Jan 2002
Posts: 7,167
KarinsDad Goblin Sharpshooter (Lvl 2)
Quote:
Originally Posted by Truename View Post
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.
__________________
The first sign of a broken rule is when someone suggests that the way to stop it is by readying an action.
KarinsDad is offline   Reply With Quote
Old 2nd November 2009, 01:56 AM   #13 (permalink)
Registered User
 
Join Date: Oct 2008
Location: Cary, NC
Posts: 144
Skallgrim Kobold Slinger (Lvl 1)
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.
Skallgrim is offline   Reply With Quote
Old 2nd November 2009, 01:59 AM   #14 (permalink)
Registered User
 
Nytmare's Avatar
 
Join Date: Sep 2007
Location: Pittsburgh, PA, USA, Earth
Posts: 623
Nytmare Goblin Sharpshooter (Lvl 2)
Send a message via AIM to Nytmare Send a message via MSN to Nytmare Send a message via Yahoo to Nytmare
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.
__________________
Life's a die and then you bitch.

Nytmare is offline   Reply With Quote
Old 2nd November 2009, 02:39 AM   #15 (permalink)
Registered User
 
Join Date: Oct 2008
Posts: 171
Truename Goblin Sharpshooter (Lvl 2)
Quote:
Originally Posted by KarinsDad View Post
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.
Truename is offline   Reply With Quote
Old 2nd November 2009, 02:39 AM   #16 (permalink)
Registered User
 
Join Date: Oct 2008
Posts: 171
Truename Goblin Sharpshooter (Lvl 2)
Quote:
Originally Posted by Nytmare View Post
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.
Truename is offline   Reply With Quote
Old 2nd November 2009, 03:07 AM   #17 (permalink)
Registered User
 
Join Date: Oct 2008
Posts: 171
Truename Goblin Sharpshooter (Lvl 2)
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.
Truename is offline   Reply With Quote
Old 2nd November 2009, 03:20 AM   #18 (permalink)
Registered User
 
Join Date: Jan 2002
Location: Palo Alto, CA
Posts: 1,549
Elric Goblin Sharpshooter (Lvl 2)
Quote:
Originally Posted by Cadfan View Post
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.
Elric is offline   Reply With Quote
Old 2nd November 2009, 03:42 AM   #19 (permalink)
Registered User
 
Join Date: Oct 2008
Posts: 171
Truename Goblin Sharpshooter (Lvl 2)
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%
Truename is offline   Reply With Quote
Old 2nd November 2009, 04:08 AM   #20 (permalink)
Registered User
 
Join Date: Oct 2008
Posts: 171
Truename Goblin Sharpshooter (Lvl 2)
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.
Truename is offline   Reply With Quote


Bookmarks

Tags
4e, analysis, math

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


And yet another word from our sponsors
Visit Our Sponsors
Visit Our Sponsors... Again
Powered by vBadvanced CMPS v3.0.1

All times are GMT +1. The time now is 01:15 PM.


Site Contents © 2008 ENWorld
PHP Ajax Multimedia Web Framework © 2008 Digital Media Graphix
Powered by vBulletin® Version 3.8.0 Beta 1
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

"Vault Data" powered by VaultWiki v2.5.1.
Copyright © 2008 - 2009, Cracked Egg Studios.