last day (15 days later) » 

2:17 PM
Chat in reference to Xirema's Calculations
 
Just so you know I am from Australia so I may be awake at weird times if you're from somewhere outside the Pacific or Asia...
 
2:50 PM
Hello Xirema
 
@rpgstar No worries. It may take me some time to make sure all my notes are correct: I use a program (that I wrote myself) to make the kinds of calculations used for tables like that, so this will probably come in over the course of the day.
 
ok
thankyou for this
 
3:08 PM
Probably the most important thing we need to cover first is the base assumptions about how both these builds are created.
The Great Weapon Fighter
- Takes the Great Weapon Fighting Style (reroll damage dice below 3)
- Uses a Greatsword (2d6 damage)
- Starts at level 1 with a Strength score of 16
- Takes Great Weapon Master feat at level 4
- Goes up to 18 Strength at level 6
- Goes up to 20 Strength at level 8
- When possible (i.e. on a Crit), always uses the bonus attack granted by Great Weapon Master
- Has two modes: Either they make normal attacks, or they use the second half of their Great Weapon Master feature to lower accuracy in exchange for greatly improved damage (-5 to-hit, +10 to-damage)
 
ok
 
The Two-Weapon Fighter
- Takes the Two-Weapon Fighting Style (add Ability Modifier to off-hand weapon damage)
- Uses Two Shortswords to begin with, swaps to Longswords (or Rapiers) at level 4 with the Dual Wielder Feat
- Starts at level 1 with a Strength score of 16 (or Dexterity; either will work)
- Takes Dual Wielder feat at level 4
- Goes up to 18 in their primary stat at level 6
- Goes up to 20 in their primary stat at level 8
- Always uses their Bonus-Action offhand attack, when able
 
ok
 
The normal Base DPR of a Greatsword, before any modifiers or features or whatever, is 7. 3.5 per die, added together to 7. The Great Weapon Fighting Style causes you to reroll 1's and 2's.
This table was pulled from A Guide I made about a month ago, it describes how the Great Weapon Fighting Style affects the odds of each die face being rolled on a d6.
 
ok
 
3:17 PM
If you average those outcomes, you'll see that on a d6 roll, this fighting style adds .666... to the total average of the die, bringing the average up to 4.1666..., meaning the final average on the 2d6 roll is 8.333... .
So anytime we need to substitute in the damage of a greatsword, before modifiers, we use 8.333..., or 16.666... on a crit.
The swordsword damage is 3.5, and the longsword/rapier damage is 4.5. Not much else to report there. Just the average of a d6 and d8 respectively.
(7 or 9 for a crit)
The Two-Weapon fighting DPR is a lot easier to calculate than the Great Weapon fighting DPR, since each of the attacks are independent of each other, and don't have knock-on effects.
 
ok
 
We'll start with an AC14 creature at level 1: The Fighter has a +5 bonus to-hit (+3 from their Ability Modifier, +2 from Proficiency). So if they roll a 1-8, they miss. 9-19, they hit, and on a 20, they crit.
Miss     8
Hit      11
Crit     1
Handling two-weapon fighting first: A hit will deal 3.5 damage + 3 (their ability modifier), a crit will deal 7 + 3.
Miss     8 * 0 == 0
Hit      11 * (6.5) == 71.5
Crit     1 * (10) == 10

81.5 / 20 == 4.075
They'll get two attacks in a single round: one with their main hand, one with their off-hand. So we just multiply this value by 2.
4.075 * 2 == 8.150
Sure enough, if we reference the table I made in my answer, we'll see that for "L1 Dual Swords x2", under the "AC 14" column, the DPR we calculated was 8.150.
You can repeat this process for all of the "Dual Swords xX" rows, because it's the same technique, just with different numbers plugged in for different levels and Armor Class values.
For all of the Greatsword rows, this process gets a little bit more complex.
 
ok following so far. I'm going to bed but feel free to continue. I ill look through this chat and that pdf at a later hour this morning.
 
The reason being is that we can't just track the individual damage values: we also need to know whether we achieved that damage via a critical hit or not.
@rpgstar Yeah, I figured. I was about to need to step away myself, so I'll fill out as much as I'm able, then I'll finish the rest later.
 
ok thx it's 2:30 in the morning here in au
 
3:32 PM
We can at least get the DPR for a single hit: With the greatsword, using the same ability modifiers, we can build the same tables for each mode.
Miss     8 * 0 == 0
Hit      11 * (11.333) == 124.666
Crit     1 * (19.666) == 19.666

144.333 / 20 == 7.21666
This works with no modifications at level 1 for all those columns.
However: if we score a crit, we need to handle the bonus-action attack.
For level 4, this isn't so bad: we just take the calculated average we already have, and add it to the crit.
 
 
2 hours later…
5:21 PM
Miss     8 * 0 == 0
Hit      11 * (11.333) == 124.666
Crit     1 * (19.666 + 7.21666) == 26.88333

151.54933 / 20 == 7.578
For levels past 4, however, we're going to run into a problem: we get the Bonus Action as long as at least one of our attacks results in a Critical hit; simply adding the average of a normal attack to the critical damage isn't going to cut it.
I'll abridge most of the intervening steps, but the essence of what we do here is that we build a table of outcomes by multiplying the array above by itself.
 
5:41 PM
Starting with level 5, we need to remember that the proficiency bonus went up by 1: so our initial arrays change.
 
6:10 PM
Miss     7 * 0 == 0.000†
Hit     12 * 11.333 == 135.996
Crit     1 * 19.666 == 19.666*

Miss x Miss     49 * 0 == 0†
Miss x Hit      84 * (11.333) == 951.972
Miss x Crit     7 * (19.666) == 137.662*
Hit x Miss      84 * (11.333) == 951.972
Hit x Hit       144 * (11.333 + 11.333) == 3263.904
Hit x Crit      12 * (11.333 + 19.666) == 372*
Crit x Miss     7 * (19.666) == 137.662*
Crit x Hit      12 * (11.333 + 19.666) == 372*
Crit x Crit     1 * (19.666 + 19.666) == 39.333*

†     49 Trials        0.000
6226.505 / 400 == 15.566/2 attacks, 7.783/attack
39 * 7.783 == 303.537
15.566 + 303.537 / 400 == 16.325
My math above is off by a small amount: my program uses arbitrary-precision numbers to get the exact odds, whereas the math above was done by hand, so there's a few rounding errors.
A similar technique is used for all the other GWF rows, with the middle array getting more and more complex as we increase the total number of attacks the Fighter makes in a round.
With level 6, we gain the increase to Strength, so the arrays change further:
Miss     6 * 0 == 0.000†
Hit     13 * 12.333 == 160.329
Crit     1 * 20.666 == 20.666*
Just to get a taste of what the level 20 array looks like without doing all of it by hand (because no, I am NOT doing this nonsense by hand...)
Miss x Miss x Miss x Miss     256 * 0 == 0.000†
Miss x Miss x Miss x Hit      960 * 12.333 == 11,839.680
Miss x Miss x Miss x Crit     64 * 21.666 == 1386.624*
Miss x Miss x Hit x Miss      960 * 12.333 == 11,839.680
..........
And of course, if you need the GWM arrays, you just make the -hit and +damage adjustments. So at level 5....
Miss     12 * 0 == 0.000†
Hit      7 * 21.333 == 149.331
Crit     1 * 29.666 == 29.666*
So everything I've posted so far should be enough to handle calculations across the entire spectrum of the table. Notify me here or in the General Chat if something doesn't make sense or you need something clarified.
Also, fun fact: it's very good you asked me to step through this process, because in the course of doing so, I actually found a small mistake I'd made that caused the GWF numbers to get inflated across the board, especially for the High AC columns. Fixing that mistake forced me to adjust my conclusion from applying the +1 bonus at level 5 to instead apply it at level 11.

It wasn't a *huge* difference (only about 1-2DPR, depending on which AC column got changed) but it was enough to tip the balancing factor.
(This is why I made that guide D&D, Math, and You: I need to make my algorithms/techniques public so that people can check my work and make sure I'm doing everything correctly. Just because I'm inputting all this stuff into a program doesn't mean I don't make mistakes!)
You should probably sticky that comment so that it's visible in the sidebar.
 

last day (15 days later) »