Jump to content


Photo

SimulationCraft Model Development


  • Please log in to reply
608 replies to this topic

#41 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 29 October 2008 - 06:39 PM

In spell_t::level_based_miss_chance you are still enforcing a minimum chance to miss of 1%.


Bah.... That must have happened when I stripped out support for the 2.x mechanics. Cut the wrong line! Thanks.

I'll have a new build out very soon.

EDIT: New build will also include latest research on SnF.

#42 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 29 October 2008 - 07:14 PM

SimulationCraft r984 available for download.

Key changes:
* Spell minimum resist rate changed from 1% to 0%
* Warlock talent Shadow-and-Flame changed to modify the spell coefficient multiplicatively instead of additively
* Multi-Threading for UNIX. I tried to get it to work on Windows..... but it is like trying to perform brain-surgery in mittens. I'll have another go at it in a week when I'm less frustrated.

#43 Roywyn

Roywyn

    Bald Bull

  • Members
  • 1,398 posts

Posted 29 October 2008 - 07:21 PM

Hey Dedmonwakeen!


First of all, thanks a lot for your great tool. I never got to say that earlier, sadly.
I'm bringing you some news from the beta update front! Bad news though.

Judgement of Wisdom is changed to:
No cooldown (buff)
1% max Mana on proc (nerf)
25% proc rate (ouch)

It procs on spell hits, including Arcane Missile waves and hopefully Mind Flay waves since it's not a DoT anymore.
DoTs can proc it too, but only on the initial application. Not on the ticks.

There are some mage details:
Living Bomb's explosion is now affected by Burnout and Master of Elements (mana loss/gain).
Also, Blizzard and Arcane Missiles work with Master of Elements, returning 10% per rank of 1/8th or 1/5th of the base mana cost when a wave crits.
Frostfire Bolt's DoT portion no longer scales with spell power, not even with talents.


Thanks again for your great work, and don't hesitate to ask when you want to know some more/details.
Even though I'm sometimes slow at replying :(


Edit: Talk about horrible timing. It feels like having thrown a monkey wrench into your new update.
The change to JoW is pretty likely to wreck some classes' mana.
Chaotic Meta Gems in Cataclysm: http://elitistjerks....p2/#post1794256

DPS spec and class comparison in Naxxramas gear: http://code.google.c...ki/SampleOutput
The Blue Bar and you - the complete Fire Mage 2.4 mana compendium: http://elitistjerks....0-post3191.html

And doesn't proc on AM.
Neither does since 3.1.

#44 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 29 October 2008 - 07:44 PM

It procs on spell hits, including Arcane Missile waves and hopefully Mind Flay waves since it's not a DoT anymore.
DoTs can proc it too, but only on the initial application. Not on the ticks.


It is currently modeled as a spell/attack hit event in the sim. The change is easy.... but I fear what it will do to some casters.

Thanks for the Mage details. I'll get them coded up.

Edit: Talk about horrible timing. It feels like having thrown a monkey wrench into your new update.
The change to JoW is pretty likely to wreck some classes' mana.


No big deal. Releases are very simple to put out...... I just wait for major changes because I'm lazy.

The JoW change definitely counts as "major" so a new release will be forthcoming.....

EDIT: And thanks for taking the time to post in this thread. Due to the cross-class nature of the sim I find it hard to keep up with all the relevant forums......

#45 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 29 October 2008 - 08:07 PM

SimulationCraft r986 available for download.....

...includes Jow and Master of Elements functionality as described by Roywyn.

SampleOutput can be found here.

With the exception of Druids, the JoW change seemed okay/good.

Unfortunately, until I get setup for .Net programming on the desktop I cannot update LatestReport wiki pages.

#46 Erdluf

Erdluf

    Great Tiger

  • Members
  • 960 posts

Posted 29 October 2008 - 08:41 PM

For the druid, the five points in Genesis probably added a total of 1% to his DPS (5% boost to IS and MF, and they were 21% of his DPS).

Move a couple of those points to Intensity (or Dreamstate or Moonglow) and the mana should be fine for your sample fight. For a longer fight, you could also take points from Improved Moonfire (those two talent points provided a total of 1% of his DPS).

I'd play with it, but I'm about to hit the road.

The build/rotation is a bit artificial. Most Balance Druids will probably leave IMotW to restoration druids (who won't spec Furor). Most will not be casting FF either (and many won't spec IFF). Misery will take care of the spellhit portion of IFF, and Ferals will cast FF (Feral) for the Armor debuf. Feral's are typically not GC limited, and FFF does not cost any rage or energy.

#47 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 29 October 2008 - 10:33 PM

For the druid, the five points in Genesis probably added a total of 1% to his DPS (5% boost to IS and MF, and they were 21% of his DPS).

Move a couple of those points to Intensity (or Dreamstate or Moonglow) and the mana should be fine for your sample fight. For a longer fight, you could also take points from Improved Moonfire (those two talent points provided a total of 1% of his DPS).

I'd play with it, but I'm about to hit the road.

The build/rotation is a bit artificial. Most Balance Druids will probably leave IMotW to restoration druids (who won't spec Furor). Most will not be casting FF either (and many won't spec IFF). Misery will take care of the spellhit portion of IFF, and Ferals will cast FF (Feral) for the Armor debuf. Feral's are typically not GC limited, and FFF does not cost any rage or energy.


Okay, I'll juggle the talents. Thanks for the info.

Your post implies that it is sufficient to take IFF (but not cast it) to get the buff? I didn't realize someone finally went through the pain to confirm this.....

#48 Erdluf

Erdluf

    Great Tiger

  • Members
  • 960 posts

Posted 30 October 2008 - 02:09 PM

Your post implies that it is sufficient to take IFF (but not cast it) to get the buff? I didn't realize someone finally went through the pain to confirm this.....


Bullocks did some testing, where he had a very low (about 3.5% on paper doll) crit rate. Over a few hundred casts, with no feral FF, his actual crit rate was in the 3-5% range. With FFF on the target, but only 300 casts, he saw a crit rate of almost 9%.

That is few enough casts that a false positive was a real possibility (any statisticians want to figure the odds?). Until we see a more thorough test, I'm inclined to believe his results (and the wording on the tooltip).

World of Warcraft - English (NA) Forums -> Improved FF is indeed affected by Feral FF

Also, Starfall is borderline effective in a single-target rotation (may have higher DPET than a non-eclipse Starfire, particularly at low +spellpower). If you want to model it:

A single target, at range, will be hit by 10 stars (should be 12 with Starfall Glyph at 80). The stars have a 2% spellpower coefficient, each. Starfall is affected by Nature's Majesty, Vengeance, and Moonglow. In 3.02, Starfall crits cause Moonkin mana regen, but Blue has said that will be nerfed. Base damage for each star is

80: 433-503
70: 250-290

Enemies near the moonkin (tooltip says "within five yards of the enemy target", but that is not the observed behavior) take some additional damage, but as a general rule Moonkin won't want to be in melee range of bosses. Coefficient for these stars is 0.5% (each). Damage is

80: 78
70: 45 <-- Edited

I'm not sure if this matters in the Simulationcraft context, but Starfall is treated as a buff on the Druid, not as a DoT. This means that changes in the Druid's state can affect affect future stars. For instance, if the Druid dies, Starfall goes away. If the Druid gains (or loses) Owlkin Frenzy, the damage of future stars goes up (or down).

#49 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 30 October 2008 - 02:19 PM

Bullocks did some testing, where he had a very low (about 3.5% on paper doll) crit rate. Over a few hundred casts, with no feral FF, his actual crit rate was in the 3-5% range. With FFF on the target, but only 300 casts, he saw a crit rate of almost 9%.


I guess I better stop fooling around with tweaks and multi-threading and get back into gear expanding the class support.

I can force a FFF debuff.... but I'd rather have a real Feral Druid putting it up.....

#50 Munorion

Munorion

    Piston Honda

  • Members
  • 114 posts

Posted 30 October 2008 - 02:42 PM

Regarding IFF, using the numbers Erdluf linked to and very rough napkin math, it's something like a 2.5 sigma effect. Which, if you assume a normal distribution, should correspond to below 5% probability that there is no effect from the faerie fire.

Edit:
Actually, forgot what I wrote above. The 2 sigma (=95% confidence level) intervals of the two values overlap pretty strongly (it's something like [2.9; 6.1]% for the crit without FF and [5.45; 12.25]% for the crit with FF), and it obviously gets worse if you go to 3 sigma. So, the sample size is simply too small to say anything definite.

#51 Tifi

Tifi

    Von Kaiser

  • Members
  • 54 posts

Posted 01 November 2008 - 08:23 AM

1. The RNG is broken, at least when USE_SFMT is undefined. At an expected resist rate of about 3% the simulation produced almost 100% resists.
Here's the correct code for using rand() in the roll function:
if( rand() < chance*(RAND_MAX+1) ) 
  {
    return 1;
  }
  else
  {
    return 0;
  }
Please don't use % in conjunction with an RNG. Most of the time it's both unneccessary and detrimental, as it maps a uniform distribution to a non-uniform distribution.

Using rand(), recommended reading

2. My shadowfiend always does 10 swings per summon. At an attack speed of 1.5 this would require the shadowfiend expiration time to be something between 13.5 and 15, not 18.1. (Edit: According to wowhead, the tooltip actually says "Lasts 15 sec.")
Edit: Also, in report_t::print_action(), dodges and parries are not added to the miss % in the displayed results, only RESULT_MISS.

3. SWP deals the same damage whether or not shadow_weaving_wait is set. Is the current behavior of SWP not implemented?

#52 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 01 November 2008 - 09:58 AM

1. The RNG is broken, at least when USE_SFMT is undefined. At an expected resist rate of about 3% the simulation produced almost 100% resists.
Here's the correct code for using rand() in the roll function:

if( rand() < chance*(RAND_MAX+1) ) 
  {
    return 1;
  }
  else
  {
    return 0;
  }
Please don't use % in conjunction with an RNG. Most of the time it's both unneccessary and detrimental, as it maps a uniform distribution to a non-uniform distribution.

Using rand(), recommended reading

2. My shadowfiend always does 10 swings per summon. At an attack speed of 1.5 this would require the shadowfiend expiration time to be something between 13.5 and 15, not 18.1. (Edit: According to wowhead, the tooltip actually says "Lasts 15 sec.")
Edit: Also, in report_t::print_action(), dodges and parries are not added to the miss % in the displayed results, only RESULT_MISS.

3. SWP deals the same damage whether or not shadow_weaving_wait is set. Is the current behavior of SWP not implemented?


Thanks for the heads up on rand() usage. The code as originally written worked well on my linux laptop, but behaved very poorly on windows as you found out. This is why I introduced SFMT. (I actually made SFMT the default recently but that change has not yet made it into the tar.gz source download.)

SFMT was producing "more" random numbers across the entire spectrum enabling the use of the mod operator. The windows C runtime library version of rand was producing a very poor regression of values. I guess what I'm saying is that I'll certainly change the code, but my trust in windows rand() is so shattered that I'll probably stick with SFMT for a while.

Regarding shadowfiend: I could have sworn seeing a patch note about it getting increased..... but I can't find it now. He does an instant hit upon summoning. Are you including that in your "10 swings"?

Regarding SWP: In general, SimulationCraft simply will call player_buff() whenever DoT-refresh occurs. I really didn't want to make a special case for SWP. It would be easy enough to override the refresh_duration() method on SWP to cache the SW stack...... but I was assuming that Blizzard would be fixing the problem soon. By putting the "wait" conditional in the config I figured to model what people would be doing to get around the bug. However..... since Blizzard still hasn't made the change I suppose I should conform my model to their buggy behaviour.

EDIT: #1 and #2 are checked in. I'll get to #3 later tonight.


#53 Tifi

Tifi

    Von Kaiser

  • Members
  • 54 posts

Posted 01 November 2008 - 10:36 AM

SFMT was producing "more" random numbers across the entire spectrum enabling the use of the mod operator.

Even with a greater range, you shouldn't use modulo. Consider this: You have a random number generator X that produces results in the range [0,1234], and you take %1000. Let's call this Y=X%1000. The values of X in [1000,1234] are now mapped to values of Y in [0,234], thus you effectively doubled the probability of values for Y in [0,234]. For example the result Y=100 can be produced by both X=100 and X=1100, with probability 2/1235. The result Y=900, however, can only be produced by X=900, with probability 1/1235.

Edit: Assuming SFMT produces any 32-bit unsigned int, you should use 4294967295.0 instead of RAND_MAX. (2^32-1)

#54 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 01 November 2008 - 12:30 PM

Even with a greater range, you shouldn't use modulo. Consider this: You have a random number generator X that produces results in the range [0,1234], and you take %1000. Let's call this Y=X%1000. The values of X in [1000,1234] are now mapped to values of Y in [0,234], thus you effectively doubled the probability of values for Y in [0,234]. For example the result Y=100 can be produced by both X=100 and X=1100, with probability 2/1235. The result Y=900, however, can only be produced by X=900, with probability 1/1235.

Edit: Assuming SFMT produces any 32-bit unsigned int, you should use 4294967295.0 instead of RAND_MAX. (2^32-1)


Ah.... now I understand. I think I was getting "lucky" by the fact that my modulo divisor was so much smaller than the maximum random integer, significantly reducing the benefit given the low end of the range.

SFMT provides a utility to return a floating point number between zero and one..... so I've switched to use that.

#55 Nicarras

Nicarras

    Keyboard Cowboy

  • Members
  • 3,422 posts

Posted 02 November 2008 - 05:34 PM

How accurate are the shaman numbers? I have some ele/enh shaman telling me that the modeled rotations in the sample 80 file are way off.

#56 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 02 November 2008 - 10:59 PM

How accurate are the shaman numbers? I have some ele/enh shaman telling me that the modeled rotations in the sample 80 file are way off.


I would love for the Shaman numbers to be off because they just plain are not competitive and I feel bad for my Shammy guild-mates.

I haven't done a comparison against Enhsim in a while, so I could have drifted off-course.

I did a very detailed comparison against Binke's spreadsheet a while back and found bugs in both our models, but I thought I exited that process with a pretty decent model.

My recommendation to you is to run with "log=1" and "iterations=1" in the config file. This will generate a combat log allowing you to easily examine the spell choices and how much they tick for.

Bottom line: I'm buried right now. I'm just finishing up some massive infrastructure changes and some class polishing. My plan is to put currently supported classes on hold so that I can get Pally/Hunter/Rogue added.

I'm not really out to prove anything..... just doing the best I can, so.........

If someone just tells me "You're wrong." I'm probably not going to pay attention because I'm spread so thin.

If someone tells me "You're wrong because X/Y/Z and here are my counter examples A/B/C", well then I'm going to give them a TON of my attention and pester them with follow-up questions. So...... if your Shaman buddies have some specific data that is well-documented then I would be very grateful if they shared it with me.....

#57 Eleven

Eleven

    Von Kaiser

  • Members
  • 35 posts

Posted 03 November 2008 - 04:45 PM

I think as far as elemental goes, it was shown that using earth shock in a rotation at 80 was a dps decrease and only a slight increase at 70 when using the ES glyph.

Btw, you still have mages/druids/spriests using wizard oil in the sample 80 file.

Sorry to nitpick, but keep up the good work, this project is amazing.

#58 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 03 November 2008 - 05:51 PM

I think as far as elemental goes, it was shown that using earth shock in a rotation at 80 was a dps decrease and only a slight increase at 70 when using the ES glyph.

Btw, you still have mages/druids/spriests using wizard oil in the sample 80 file.

Sorry to nitpick, but keep up the good work, this project is amazing.


No need to apologize, nitpicking is exactly what the project needs in order to be successful.

Yeah, sorry about the Wizard Oil...... It keeps falling off the end of my list. I'll have it out by next release.

Regarding the Earth Shock testing: Was this a result of theorycraft, or somebody doing in-game testing? ie: Is it because the GCD is not being reduced properly due a bug..... Or do people simply believe it just sucks apriori?

#59 Roywyn

Roywyn

    Bald Bull

  • Members
  • 1,398 posts

Posted 03 November 2008 - 05:58 PM

Regarding the Earth Shock testing: Was this a result of theorycraft, or somebody doing in-game testing? ie: Is it because the GCD is not being reduced properly due a bug..... Or do people simply believe it just sucks apriori?

Earth Shock GCD is hard capped at 1.0s like any other GCD. Tested on PTR 2-3 weeks ago.

GC said that it's intended to reduce the GCD further (to 0.5s or less with haste), and they're trying to fix it.
No news since then. I think it'll a lot of work to override the GCD hard cap.


[Edit]:

Unrelated, for arcane mages, I've been coming up with a 25-50 dps increase using a 57/14/0 build with arcane power/flows and glyphed mage armor over master of elements/ glyphed molten armor.

Arcane is riding the mana limit pretty hard. Whenever you change mana (like when 2T7 bonus gets added or JoW gets changed again), you'd have to flip back and forth with AP/MoW/Armour to see which one combination is better.

They've said that they want to nerf Arcane Barrage due to PvP and change some things to buff Arcane Blast or make it interact with Arcane Barrage, so it's not really worth changing right now.
Chaotic Meta Gems in Cataclysm: http://elitistjerks....p2/#post1794256

DPS spec and class comparison in Naxxramas gear: http://code.google.c...ki/SampleOutput
The Blue Bar and you - the complete Fire Mage 2.4 mana compendium: http://elitistjerks....0-post3191.html

And doesn't proc on AM.
Neither does since 3.1.

#60 Eleven

Eleven

    Von Kaiser

  • Members
  • 35 posts

Posted 03 November 2008 - 06:15 PM

Removing earth shock from the rotation puts elemental shaman back within that 8-10% deficit many people have been coming up with, I don't know if that would also change the scaling numbers you posted recently.

Unrelated, for arcane mages, I've been coming up with a 25-50 dps increase using a 57/14/0 build with arcane power/flows and glyphed mage armor over master of elements/ glyphed molten armor.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users