Elitist Jerks (http://elitistjerks.com/forums.php)
-   Class Mechanics (http://elitistjerks.com/f31/)
-   -   [Shaman] Experimental combat simulator (http://elitistjerks.com/f31/t15046-shaman_experimental_combat_simulator/)

 draghkar 08/08/07 8:15 AM

[Shaman] Experimental combat simulator

EDIT: The math formula on this page are valid only for speed > 3.0, for speed < 3.0 then it change slightly. The graph on this page is also wrong due some bugs on the simulator. For a correct graph consider the graph at post #164 and later

I had a disquisition about the fact that weapon speed affect the sustained damage if
WF is used with the argumentation: when you have a WF then you have two instant
attacks so is better slow weapons (with same DPS a slow wepon has higher top damage).
In the other side I tought that with quick weapons you have more WF so more extra attacks.

Anyway I wrote down some numbers and later one I wrote a shaman swing simulator

Let's suppose to have 0% crit => no flurry (I'll try to consider crits later)

2 weapons with 100 DPS:

1st: speed 4 -> 400 damage/swing
2nd: speed 1.5 -> 150 damage/swing

I consider a WF proc each 5 attacks (the 20% stated)

Simulation wiht 1st weapon

T1 (4 sec) => 400 damage hit
T2 (8 sec) => 400 damage hit
T3 (12 sec) => 400 damage hit
T4 (16 sec) => 400 damage hit
T5 (20 sec) => 400 damage hit + WF hit (400*2 + 34*4*2)

T6 (24 sec) => 400 damage hit
T7 (28 sec) => 400 damage hit
T8 (32 sec) => 400 damage hit
T9 (36 sec) => 400 damage hit
T10 (40 sec) => 400 damage hit + WF hit (400*2 + 34*4*2)

and so on, the generic formula is easy to find:

Damage(Y secs)=400*(Y/4)+Y/20*(400*2+34*4*2)

so after 40 secs Damage = 400*(40/4)+40/20*(400*2+34*4*2)= 6144 damage

Simulation wiht 2nd weapon
T1 (1.5 sec) => 150 damage hit
T2 (3 sec) => 150 damage hit
T3 (4.5 sec) => 150 damage hit
T4 (6 sec) => 150 damage hit
T5 (7.5 sec) => 150 damage hit + WF hit (150*2 + 34*1.5*2)

T6 (9 sec) = 150 damage hit
T7 (10.5 sec) = 150 damage hit
T8 (12 sec) = 150 damage hit
T9 (13.5 sec) = 150 damage hit
T10 (15 sec) = 150 damage hit + WF hit (150*2 + 34*1.5*2)

and so on, in this case the formula is:

Damage(Y secs)=150*(Y/1.5)+Y/7.5*(150*2+34*1.5*2)

so after 40 secs Damage = 150*(40/1.5)+40/7.5*(150*2+34*1.5*2) = 6144

it seems that the speed doesn't affect it, the general formula (leaving
speed and weapon DPS unspecified):

Damage(Y secs)= speed*dps*(Y/speed)+Y/(speed*5)*(speed*dps*2+34*speed*2)=
dps*Y+ Y/5*(dps*2+34*2)

so whatever the weapon speed is the damage after Y seconds is not affected by it.

This confirms my tought, let see how crit affect this.

Introducing the crit chance (and so the Flurry) like 25% (one crit each 4 swings) I obtain a simulation that looks like this:

1st weapon ( in case of flury the speed becomes 2.8):
T1 (4 sec) => 400 damage hit
T2 (8 sec) => 400 damage hit
T3 (12 sec) => 400 damage hit
T4 (16 sec) => 400 damage hit + Crit (200) [flurry]
T5 (18.8 sec) => 400 damage hit + WF hit (400*2 + 34*4*2)

T1 (21.6 sec) => 400 damage hit + Crit (200) [flurry]
T2 (24.4 sec) => 400 damage hit
T3 (27.2 sec) => 400 damage hit
T4 (30.0 sec) => 400 damage hit
T5 (34.0 sec) => 400 damage hit + WF hit (400*2 + 34*4*2) + Crit (200) [flurry]

and so on, write a general formula is not that easy ( is doable but still not easy ).

I wrote for this purpose (c++ code) a Swing Simulator, at his very first version it's
able to simulate the above scenario and the code looks like:

Code:

```    //weapon with 3.3 speed and 110 dps     Weapon * myWeapon = new Weapon("TestWeapon", 3.3, 110);     Talent * myTalent = new Flurry(5);     Shaman::instance().setCritPercentage(20);     Shaman::instance().mainHand(myWeapon);     Shaman::instance().addTalent(myTalent);     Target myTarget;     CombatLog myCombatLog;       Timer::instance().go(10000)```
The code above simulate the shaman swing against a dummy target for 1000 seconds.
At the moment the simulator doesn't include weapon skill, dodge, defense, parry etc etc

With the simulator I simulated 10000 seconds (2.7 hours) fights, with weapons from 1.0 secs
to 8.0 secs and 0%, 10%, 15%, 20%, 25%, 30%, 33%. The result of simulations can be seen
here.

It seems to me that 2 weapons (with same DPS) do not affect the total damage after Y second
(not using Storm Strike). As soon I introduce the Mana Pool in the simulator I'll be able to
introduce the StormStrike talent and I'll be able to do the same simulation in order to see how the SS introduction affects it.

 Malan 08/08/07 8:22 AM

For those who are wondering:
dis·qui·si·tion - A formal discourse on a subject, often in writing.

I'm gonna take a stab here and say that if your math is showing that weapon speed doesn't matter, you took a wrong step somewhere.

 draghkar 08/08/07 8:29 AM

Quote:
 Originally Posted by Malan (Post 443615) For those who are wondering: dis·qui·si·tion - A formal discourse on a subject, often in writing. I'm gonna take a stab here and say that if your math is showing that weapon speed doesn't matter, you took a wrong step somewhere.
If you do not use Storm Strike weapon speed doesn't matter, at least this is what math and simulator shows, (I'm not considering the fact that WF has a CD of 3 secs, but with a 2H weapon and speed above 4.3 this doesn't matter), the graph are plotted even with weapons 1.0 speed so just don't consider the graph with time < 4.3 secs. As soon I introduce the CD I will repost the graph.

 songster 08/08/07 8:33 AM

Quote:
 Originally Posted by draghkar (Post 443622) If you do not use Storm Strike weapon speed doesn't matter, at least this is what math and simulator shows
You're wrong. The reason you're wrong is that Windfury has an internal cooldown, and cannot proc again within three seconds of the previous proc. Thus faster weapons "lose" a lot of their procs due to the cooldown.

This has been well known for a long time and very very thoroughly tested.

 draghkar 08/08/07 8:34 AM

Quote:
 Originally Posted by songster (Post 443623) You're wrong. The reason you're wrong is that Windfury has an internal cooldown, and cannot proc again within three seconds of the previous proc. Thus faster weapons "lose" a lot of their procs due to the cooldown. This has been well known for a long time and very very thoroughly tested.
I know indeed I forgot to mention that limit, in a few minutes I will repost the graphs, and the math I wrote
with 0% crit already do consider the WF CD no having more than 1 WF each 3 seconds.

 Yes 08/08/07 8:35 AM

Quote:
 Originally Posted by draghkar (Post 443622) If you do not use Storm Strike weapon speed doesn't matter, at least this is what math and simulator shows
There is a cooldown on windfury.

Windfury Weapon - WoWWiki, the Warcraft wiki

Edit: Put an bool (lastprocced) and an if statement in the loop that checks whether WF was procced in the last 3000 milliseconds.

 Juice 08/08/07 8:37 AM

Are you including in your calculations that the mainhand and offhand procs are tied together, or are you considering them independently? If you're considering them independently, then you're correct that weapon speed isn't a big deal (when stormstrike is removed). If you're tying the MH and OH procs together and then using weapon speed to determine the probability of a proc on that particular hand, then you're going to find that weapon speed does impact overall dps due to the mechanics of windfury.

Also, isn't there a spreadsheet that contains a damage simulator in it already, and shouldn't be be discussing this at that location?

 draghkar 08/08/07 8:38 AM

Quote:
 Originally Posted by Yes (Post 443626) There is a cooldown on windfury. Windfury Weapon - WoWWiki, the Warcraft wiki
I know there is, if you look at the first two cycles there are 20 seconds or 7.5 seconds between 2 WF procs.

Still with 0% crit the general formula is:

Damage(Y secs)= dps*Y+ Y/5*(dps*2+34*2)

 draghkar 08/08/07 8:39 AM

Quote:
 Originally Posted by Juice (Post 443628) Are you including in your calculations that the mainhand and offhand procs are tied together, or are you considering them independently? If you're considering them independently, then you're correct that weapon speed isn't a big deal (when stormstrike is removed). If you're tying the MH and OH procs together and then using weapon speed to determine the probability of a proc on that particular hand, then you're going to find that weapon speed does impact overall dps due to the mechanics of windfury.
At the moment the shaman in the simulation is not DW.

 Malan 08/08/07 8:40 AM

Quote:
 Originally Posted by Juice (Post 443628) Also, isn't there a spreadsheet that contains a damage simulator in it already, and shouldn't be be discussing this at that location?
There's the big mega enhance thread that contains several simulators.

 Yes 08/08/07 8:41 AM

draghkar: Post your source code somewhere in case you're having trouble, I have a compiler here with me..

 Juice 08/08/07 8:42 AM

Quote:
 Originally Posted by draghkar (Post 443635) At the moment the shaman in the simulation is not DW.
I don't believe that's correct. Building a simulator for a 1h or 2h weapon is trivial. The pages upon pages of discussion in the other threads are due to the complexities of modeling a shared WF cooldown (and flury).

 Bink 08/08/07 8:49 AM

The formula is wrong. You are just assuming you proc 1 out of every 5 swings, so the cooldown would be cleared for both simulations. That model is flawed. You have a 20% chance per Swing that is not in the cooldown. Lets look at your example.

Simulation with 1st weapon

T1 (4 sec) => 400 damage hit (20% chance to proc)
T2 (8 sec) => 400 damage hit (20% chance to proc)
T3 (12 sec) => 400 damage hit (20% chance to proc)
T4 (16 sec) => 400 damage hit (20% chance to proc)
T5 (20 sec) => 400 damage hit + WF hit (400*2 + 34*4*2) (20% chance to proc)

T6 (24 sec) => 400 damage hit (20% chance to proc)
T7 (28 sec) => 400 damage hit (20% chance to proc)
T8 (32 sec) => 400 damage hit (20% chance to proc)
T9 (36 sec) => 400 damage hit (20% chance to proc)
T10 (40 sec) => 400 damage hit + WF hit (400*2 + 34*4*2) (20% chance to proc)

because the cooldown is shorter than the swing timer each swing 'could' proc. So the chance is constant and you can average them for you simulator.

The next is different though...

Simulation with 2nd weapon
T1 (1.5 sec) => 150 damage hit (20% chance to proc)
T2 (3 sec) => 150 damage hit (20% chance to proc)
T3 (4.5 sec) => 150 damage hit (20% chance to proc)
T4 (6 sec) => 150 damage hit (20% chance to proc)
T5 (7.5 sec) => 150 damage hit + WF hit (150*2 + 34*1.5*2) (20% chance to proc)

T6 (9 sec) = 150 damage hit (0% chance to proc)
T7 (10.5 sec) = 150 damage hit (0% chance to proc)
T8 (12 sec) = 150 damage hit (20% chance to proc)
T9 (13.5 sec) = 150 damage hit (20% chance to proc)
T10 (15 sec) = 150 damage hit (20% chance to proc)
T11 (16.5 sec) = 150 damage hit (20% chance to proc)
T12 (18 sec) = 150 damage hit + WF hit (150*2 + 34*1.5*2) (20% chance to proc)

Because 2 swings land in the cooldown, they have 0% chance to proc.. so they through off the whole 1/5 swings thing..

 songster 08/08/07 8:51 AM

Quote:
 Originally Posted by draghkar (Post 443624) I know indeed I forgot to mention that limit, in a few minutes I will repost the graphs, and the math I wrote with 0% crit already do consider the WF CD no having more than 1 WF each 3 seconds.
Um, a closer look at your initial post shows that you're modelling WF as proccing on every fifth hit. This is the wrong way to do it. You need to model it as a 20% chance on each hit, not a 100% chance on every fifth hit.

Of course the cooldown is irrelevant if your model only procs on every fifth hit!

 Juice 08/08/07 8:55 AM

This thread needs to go away.

All times are GMT -4. The time now is 10:36 PM.