Archived

This topic is now archived and is closed to further replies.

Starfox

SimulationCraft - for fur and feather wearers

270 posts in this topic

Just did some simulationcraft r1754 runs, using the druid_t8 file (this is actually t7 gear with 3.1 rules)

SF rotation means Wrath just to proc Eclipse.

Wr rotation means SF just to proc Wrath. No extra SF casts to extend MF.

SF rotation: 5805 DPS

Wr rotation: 5692 DPS

I removed 200 haste from each:

SF: 5630

Wr: 5724

I believe simulationcraft uses a 0.1s lag, with double-lag charged for GCD clipping. Still, I was a bit surprised to see Wr DPS actually go up.

With the original gear modified -200 Haste, +200 Crit (which seems plausible. I don't pretend to know where that gear is though):

SF: 5791

Wr: 5905

which would confirm that SF scales better with haste than with crit. It does appear that with low-haste, high-crit gear, you could make a strong argument for a Wrath rotation.

In all of the runs (fully raid buffed), SF mana was fairly stable. Wrath mana always lasted the entire five minutes, but it was being depleted.

Share this post


Link to post
Share on other sites
From what I can tell, feral dps is well over the top with the latest changes. I would estimate that the latest build of simulationcraft is showing near 7k dps for ferals. The question then becomes if ferals fall back to early TBC era where they were good early on but other classes/specs scale ahead in future tiers.

Kitty dps has crossed 7k in simulationcraft now...... I just fixed a bug related to the gcd while in cat form......

Share this post


Link to post
Share on other sites
Kitty dps has crossed 7k in simulationcraft now...... I just fixed a bug related to the gcd while in cat form......

At least it's still behind the HaT-Rogue... We'll see some nerfs in the next patch, I guess.

Share this post


Link to post
Share on other sites
Kitty dps has crossed 7k in simulationcraft now...... I just fixed a bug related to the gcd while in cat form......

It was crossing 7k for me even before that that gcd fix, but now it is at 7.3k, only beaten by the HaT+Envenomglyph rogue.

I don't know, but the damage of rip is a bit ridiculous from my point of view.

Rip: ~24% of total damage, but only used every ~30sec

When I have it with rip, a question to ferals: Is the critchance on dots reduced vs bossmobs? Is there any testing on this? Because right now rip/rake dot-crit% do not suffer from this reduction.

Here are the numbers with the fixed gcd for catform


SimulationCraft for World of Warcraft build 3.1.0 (iterations=6666, max_time=300, optimal_raid=1)



DPS Ranking:

  14549 100.0%  Raid

   7333  50.4%  Druid_T8_00_55_16

   7225  49.6%  Druid_T8_00_55_16_M


Player=Druid_T8_00_55_16  DPS=7332.6 (Error=+/-5.1 Range=+/-752)  DPR=598.4  RPS=12.3/12.0  (energy)

  Core Stats:  strength=81  agility=1165  stamina=1085  intellect=115  spirit=135  health=18472  mana=3746

  Spell Stats:  power=0  hit=10.1%  crit=16.7%  penetration=0  haste=10.7%  mp5=0

  Attack Stats:  power=6771  hit=8.1%  crit=29.1%  expertise=6.2  penetration=0  haste=13.9%

  Actions:

    ferocious_bite        Count=  8.5|34.4sec  DPE=15732| 6%  DPET=13678  DPR= 257.5  Miss=0.0%  Hit=6840  Crit=15968|18761|97.6%  Dodge=0.3%

    melee                 Count=434.7| 0.7sec  DPE= 1372|27%  DPET= 2009  DPR=   1.$  Miss=0.0%  Hit= 890  Crit= 2021| 2274|47.6%  Glance= 668|24.0%  Dodge=0.3%

    rake                  Count= 27.3|11.1sec  DPE=13857|17%  DPET=12049  DPR= 422.3  Miss=0.0%  Hit= 791  Crit= 1796| 2182|47.4%  Dodge=0.3%  TickCount=80  Tick=2576  CritTick=5845|6109|52.4%

    rip                   Count=  9.7|30.6sec  DPE=51915|23%  DPET=45132  DPR=1882.3  Miss=0.0%  Dodge=0.3%  TickCount=123  Tick=2469  CritTick=5597|5737|52.7%

    shred                 Count= 82.0| 3.6sec  DPE= 6919|26%  DPET= 6016  DPR= 265.3  Miss=0.0%  Hit=4318  Crit= 9793|10350|47.8%  Dodge=0.3%


Player=Druid_T8_00_55_16_M  DPS=7224.8 (Error=+/-5.0 Range=+/-777)  DPR=589.7  RPS=12.3/12.0  (energy)

  Core Stats:  strength=81  agility=1165  stamina=1085  intellect=115  spirit=135  health=18472  mana=3746

  Spell Stats:  power=0  hit=10.1%  crit=16.7%  penetration=0  haste=10.7%  mp5=0

  Attack Stats:  power=6771  hit=8.1%  crit=29.1%  expertise=6.2  penetration=0  haste=13.9%

  Actions:

    ferocious_bite        Count=  9.0|32.6sec  DPE=15712| 7%  DPET=13663  DPR= 257.0  Miss=0.0%  Hit=6845  Crit=15943|18761|97.7%  Dodge=0.3%

    mangle_cat            Count= 26.1|11.6sec  DPE= 4601| 6%  DPET= 4001  DPR= 142.5  Miss=0.0%  Hit=2880  Crit= 6537| 7029|47.3%  Dodge=0.3%

    melee                 Count=434.7| 0.7sec  DPE= 1373|28%  DPET= 2011  DPR=   1.$  Miss=0.0%  Hit= 890  Crit= 2021| 2274|47.7%  Glance= 669|24.0%  Dodge=0.3%

    rake                  Count= 25.1|12.0sec  DPE=14003|16%  DPET=12177  DPR= 421.7  Miss=0.0%  Hit= 791  Crit= 1793| 2182|47.6%  Dodge=0.3%  TickCount=74  Tick=2606  CritTick=5910|6109|52.6%

    rip                   Count=  9.9|30.2sec  DPE=51551|24%  DPET=44832  DPR=1852.7  Miss=0.0%  Dodge=0.3%  TickCount=124  Tick=2469  CritTick=5597|5737|52.5%

    shred                 Count= 62.0| 4.7sec  DPE= 6934|20%  DPET= 6030  DPR= 323.2  Miss=0.0%  Hit=4324  Crit= 9806|10350|47.9%  Dodge=0.3%


Gains:


    Druid_T8_00_55_16_M:

        energy_regen=2961.8

        omen_of_clarity=1051.2

        primal_precision=1.4

        tigers_fury=599.9


    Druid_T8_00_55_16:

        energy_regen=2963.0

        omen_of_clarity=1047.3

        primal_precision=1.4

        tigers_fury=600.0


Procs:


    Druid_T8_00_55_16_M:

        combo_points=142.1|2.1sec

        darkmoon_greatness=7.0|42.5sec

        omen_of_clarity=25.4|11.7sec

        primal_fury=54.0|5.5sec


    Druid_T8_00_55_16:

        combo_points=138.7|2.1sec

        darkmoon_greatness=7.0|42.5sec

        omen_of_clarity=25.3|11.8sec

        primal_fury=52.1|5.7sec


Up-Times:


    Global:

        100.0% : blood_frenzy

        100.0% : mangle

        100.0% : master_poisoner

        100.0% : savage_combat

        100.0% : totem_of_wrath


    Druid_T8_00_55_16_M:

        32.4% : berserking_mh

         0.5% : energy_cap

        100.0% : replenishment

        99.5% : savage_roar


    Druid_T8_00_55_16:

        31.8% : berserking_mh

         0.4% : energy_cap

        100.0% : replenishment

        99.5% : savage_roar


Waiting:

    42.8% : Druid_T8_00_55_16_M

    44.6% : Druid_T8_00_55_16


Waiting skyrocketed from 24% to over 40%, but dps also increased by ~280.

I set regen_periodicity=0.2 for this simulation, pretty weird that with it set to 0.2 the average fight length is very close to 300sec, but when i let it at the default (1.0), the average fightlength is about 280sec.

Share this post


Link to post
Share on other sites

What is periodicity? if you mean time between energy ticks, it should probably be set to 0.1 due to rogues/druids regenerating energy at a rate of 10 energy/1 second in 1 energy intervals. I'd actually be interested in seeing if that changes anything.

Share this post


Link to post
Share on other sites
I don't know, but the damage of rip is a bit ridiculous from my point of view.

Rip: ~24% of total damage, but only used every ~30sec

Rip seems a bit high, indeed. But not much...

Rip with all glyphs (shred, rip, sr), 2t7 and [item]Idol of Worship[/item]:

Per Tick: tickDmg = (39+99*CP [base dmg]+AP*0.06+21*CP [idol])*1.36 [glyphed sr]*1.1 [naturalist]*1.3 [mangle]

Total: ripDmg = tickDmg * (6 [base] + 2 [rip glyph] + 2 [2t7] + 3 [shred glyph]) * (1 + CRIT * 1.1 [pred. instincts] * 1.03 [RED])

So, at 7k AP with 50% crit and 5CP, thats nearly 42k damage over 26s.

Share this post


Link to post
Share on other sites
What is periodicity? if you mean time between energy ticks, it should probably be set to 0.1 due to rogues/druids regenerating energy at a rate of 10 energy/1 second in 1 energy intervals. I'd actually be interested in seeing if that changes anything.

Changing periodicity will not change the rate of energy regen...... just how smooth/choppy it is.

The reason it defaults to 1.0sec is for performance reasons...... although I haven't experimented in a while.

Share this post


Link to post
Share on other sites
Changing periodicity will not change the rate of energy regen...... just how smooth/choppy it is.

The reason it defaults to 1.0sec is for performance reasons...... although I haven't experimented in a while.

The weird thing i don't quite get.

regen_periodicity=1.0: fights length is about 284sec

regen_periodicity=0.2: fights length is right at 300sec

Share this post


Link to post
Share on other sites
The weird thing i don't quite get.

regen_periodicity=1.0: fights length is about 284sec

regen_periodicity=0.2: fights length is right at 300sec

Experimenting across a range of values (multiple instances at each value) gave a "reasonably" random spread for fight length...... but the distribution was a bit spiky.....

All iterations are really health-limited despite the max_time setting. The boss health is calculated half-way through the very first iteration. Depending upon how lucky/unlucky the players are during that first half the fight time will be somewhere between 285sec and 300sec. It is never greater than max_time because boss health is calculated by damage done outside of BL and the Execute abilities/talents.

Share this post


Link to post
Share on other sites
Experimenting across a range of values (multiple instances at each value) gave a "reasonably" random spread for fight length...... but the distribution was a bit spiky.....

All iterations are really health-limited despite the max_time setting. The boss health is calculated half-way through the very first iteration. Depending upon how lucky/unlucky the players are during that first half the fight time will be somewhere between 285sec and 300sec. It is never greater than max_time because boss health is calculated by damage done outside of BL and the Execute abilities/talents.

Hm, I think i got my misinterpretation, was using iterations=6666.

As there is no real report on average fightlength, I used the energy_regen, but with higher periodicity it happens more often to cap out on a regen event, and therefor less gets reported. Most probably in both cases the fights were actually of the same length.

Share this post


Link to post
Share on other sites

Time now to figure out why SimulationCraft is overvaluing hit/expertise for ferals compared to all the other theorycraft...

Share this post


Link to post
Share on other sites
Time now to figure out why SimulationCraft is overvaluing hit/expertise for ferals compared to all the other theorycraft...

By default, the scale factor generation for hit/expertise SUBTRACTS stat value to determine the slope of the dps curve.

I went back and forth on this one..... Input welcome.

Share this post


Link to post
Share on other sites

That shouldn't be a big deal, hit rating is fairly consistent from having no hit rating to being capped (according to the other theorycraft).

Also-- any chance an option for rake time can be added? I'd like to set up my profile to not shred unless rake has time before it expires (like mangle in the mangle profile).

Share this post


Link to post
Share on other sites
Also-- any chance an option for rake time can be added? I'd like to set up my profile to not shred unless rake has time before it expires (like mangle in the mangle profile).

r1785: rake>=Y, rake<=Y

Post your profiles if you can squeeze out more dps :)

Share this post


Link to post
Share on other sites

Is Omen of Clarity getting a double-bonus?

I'm looking into some unexpected Ferocious Bite behavior (limiting the energy it consumes is decreasing DPS), and I may have found the problem with hit rating while doing so.

The relevant code:


// druid_attack_t::cost ====================================================


double druid_attack_t::cost()

{

  druid_t* p = player -> cast_druid();

  double c = attack_t::cost();

  if ( c == 0 ) return 0;

  if ( p -> _buffs.omen_of_clarity ) return 0;

  if ( p -> _buffs.berserk) c *= 0.5;

  return c;

}


// druid_attack_t::consume_resource ========================================


void druid_attack_t::consume_resource()

{

  druid_t* p = player -> cast_druid();

  attack_t::consume_resource();

  if( p -> _buffs.omen_of_clarity )

  {

    // Treat the savings like a energy gain.

    double amount = attack_t::cost();

    if( amount > 0 )

    {

      p -> gains_omen_of_clarity -> add( amount );

      p -> _buffs.omen_of_clarity = 0;

      p -> aura_loss( "Omen of Clarity" );

    }

  }

}

In cost(), it looks like you make the cost of the attack 0. In consume_resource(), it looks like you're adding energy. If you are doing both, then you're doing something wrong! Although I'm not sure if these are two different implementations which are separate for cat and moonkin.

Edit: Crit ticks are still 5% too high.

Share this post


Link to post
Share on other sites
Is Omen of Clarity getting a double-bonus?

I'm looking into some unexpected Ferocious Bite behavior (limiting the energy it consumes is decreasing DPS), and I may have found the problem with hit rating while doing so.

The relevant code:


// druid_attack_t::cost ====================================================


double druid_attack_t::cost()

{

  druid_t* p = player -> cast_druid();

  double c = attack_t::cost();

  if ( c == 0 ) return 0;

  if ( p -> _buffs.omen_of_clarity ) return 0;

  if ( p -> _buffs.berserk) c *= 0.5;

  return c;

}


// druid_attack_t::consume_resource ========================================


void druid_attack_t::consume_resource()

{

  druid_t* p = player -> cast_druid();

  attack_t::consume_resource();

  if( p -> _buffs.omen_of_clarity )

  {

    // Treat the savings like a energy gain.

    double amount = attack_t::cost();

    if( amount > 0 )

    {

      p -> gains_omen_of_clarity -> add( amount );

      p -> _buffs.omen_of_clarity = 0;

      p -> aura_loss( "Omen of Clarity" );

    }

  }

}

In cost(), it looks like you make the cost of the attack 0. In consume_resource(), it looks like you're adding energy. If you are doing both, then you're doing something wrong! Although I'm not sure if these are two different implementations which are separate for cat and moonkin. Edit: Crit ticks are still 5% too high.
OoC let the sim subtract 0 resource from yout current one.
 p -> gains_omen_of_clarity -> add( amount );

Means that you can see in the report under Gains how much energy saved by OoC, this is for statistical purposes only here and does not really add that amount of resource back to that player.

Share this post


Link to post
Share on other sites
Edit: Crit ticks are still 5% too high.

Do the rip/rake crit ticks also suffer from boss "crit depression" like standard melee attacks?

Share this post


Link to post
Share on other sites

It hasn't been tested as far as I know, but why wouldn't they? Do caster dots not get reduced by crit depression?

Share this post


Link to post
Share on other sites
It hasn't been tested as far as I know, but why wouldn't they? Do caster dots not get reduced by crit depression?

Nope, caster only get their miss chance/partial resists increased.

Share this post


Link to post
Share on other sites

So, I think I found a bug.

I've got two profiles:

First one is this:

#!simcraft max_time=300 optimal_raid=1


patch=3.1.0

druid=Druid_T8_00_55_16

level=80

talents=http://ptr.wowhead.com/?talent=0ZEGMcfrz0eR0huVkbAczb

actions=flask,type=endless_rage/food,type=blackened_dragonfin

actions+=/cat_form

actions+=/auto_attack

actions+=/shred,omen_of_clarity=1

actions+=/tigers_fury,energy<=40

actions+=/berserk,tigers_fury=1

actions+=/savage_roar,cp>=1,savage_roar<=4

actions+=/rip,cp>=5,time_to_die>=10

actions+=/ferocious_bite,cp>=5,rip>=5,savage_roar>=6

actions+=/rake

actions+=/shred,rake>=2

actions+=/shred,cp<=4,energy>=60

actions+=/shred,energy>=80

Melee_T7_Base_Gear.simcraft

gear_expertise_rating=200

# Not fair to use the same stats for all melee since Feral 


Druid needs less expertise.

# Trade expertise for ivalue-equal amount of attack power

enchant_attack_power=+160

enchant_expertise_rating=-80

glyph_rip=1

glyph_savage_roar=1

glyph_shred=1

idol_of_worship=1

main_hand=staff,dps=222.9,speed=2.4,enchant=berserking
Second one is this:
#!simcraft max_time=300 optimal_raid=1


patch=3.1.0

druid=Druid_T8_00_55_16_Modified

level=80

talents=http://ptr.wowhead.com/?talent=0ZEGMcfrz0eR0huVkbAczb

actions=flask,type=endless_rage/food,type=blackened_dragonfin

actions+=/cat_form

actions+=/auto_attack

actions+=/shred,omen_of_clarity=1

actions+=/tigers_fury,energy<=40

actions+=/berserk,tigers_fury=1

actions+=/savage_roar,cp>=1,savage_roar<=4

actions+=/rip,cp>=5,time_to_die>=10

actions+=/rip,cp>=5,time_to_die>=10

actions+=/ferocious_bite,cp>=5,rip>=5,savage_roar>=6

actions+=/rake

actions+=/shred,rake>=2

actions+=/shred,cp<=4,energy>=60

actions+=/shred,energy>=80

Melee_T7_Base_Gear.simcraft

gear_expertise_rating=200

# Not fair to use the same stats for all melee since Feral Druid 


needs less expertise.

# Trade expertise for ivalue-equal amount of attack power

enchant_attack_power=+160

enchant_expertise_rating=-80

glyph_rip=1

glyph_savage_roar=1

glyph_shred=1

idol_of_worship=1

main_hand=staff,dps=222.9,speed=2.4,enchant=berserking

The only difference is, I repeated the Rip line. The second profile somehow consistently beats out the first, every time I run the simulation.

BTW, the first profile regularly tops 7400 DPS. It's a work in progress still, though.

Share this post


Link to post
Share on other sites
So, I think I found a bug.

I've got two profiles:

First one is this:

Second one is this:

The only difference is, I repeated the Rip line. The second profile somehow consistently beats out the first, every time I run the simulation.

BTW, the first profile regularly tops 7400 DPS. It's a work in progress still, though.

Oh, nice find. What this thos is:

It runs like normal (one-rip-profile)

Then it performs the first rip, and this first one gets set to 'ready when rip faded'

But the second line stays active, and gets executed before the first rip is fallen off:


7.12     Druid_T8_00_55_16 performs rip

27.12    Executing event: Action Tick

27.12    rip ticks (10 of 13)

27.12    rip ticks (10 of 13)

29.11    Druid_T8_00_55_16 performs rip <= Here the old rip would have fallen off, if not for glyph of shred

29.12    rip ticks (11 of 13)

31.11    rip ticks (1 of 10)

31.12    rip ticks (12 of 13)

33.11    rip ticks (2 of 10)

There seems to be a problem with extending the duration on dots.

Share this post


Link to post
Share on other sites

There seems to be a problem with extending the duration on dots.

Add following line to end of action_t::refresh_duration() and action_t::extend_duration():

player -> share_duration( duration_group, duration_ready );

Share this post


Link to post
Share on other sites

Hey Starfox,

thanks for your effort!

What I'm missing is an option to cast Insect Swarm at the end of Lunar Eclipse if there is no time to squeeze in another Starfire. So something like lunar_eclipse_left <= 1.5

Same for Moonfire.

I know that has been asked before but it's kinda important so I wanted to suggest it again.

Share this post


Link to post
Share on other sites
Hey Starfox,

thanks for your effort!

What I'm missing is an option to cast Insect Swarm at the end of Lunar Eclipse if there is no time to squeeze in another Starfire. So something like lunar_eclipse_left <= 1.5

Same for Moonfire.

I know that has been asked before but it's kinda important so I wanted to suggest it again.


#don't cast while unter eclipse

actions+=/moonfire,skip_on_eclipse=1

actions+=/insect_swarm,skip_on_eclipse=1

#if eclipseduration > SF casttime => starfire

actions+=/starfire,eclipse=benefit

#Here is the trick, if MF/IS are NOT UP, eclipse is up, but your starfire won't hit in time of the buff, cast IS/MF

actions+=/moonfire

actions+=/insect_swarm

Did you mean something like that?

Oh, I think I'll have to add a check for eclipse=benefit, so the cast is not started if eclipse_duration < cast_time.

Will be done in a few minutes. (done)

Share this post


Link to post
Share on other sites

Oh, I think I'll have to add a check for eclipse=benefit, so the cast is not started if eclipse_duration < cast_time.

Will be done in a few minutes.

That's what I was looking for thanks - although your solution is much simpler than mine :D

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.