Archived

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

Tankietka

DPSSim Simulation Tool

87 posts in this topic

I attempted to run simulation. I inputed the values that I believed were required, inputed talents, and buffs that I would normally see. The simulation with my base rotation came up with a dps of 3k+. I believe I did something wrong because the highest dps I have ever had in a 25 man raid was 2250.

Share this post


Link to post
Share on other sites

Assuming you selected all buffs and procs the answer can be that simulation assumes perfect execution of priority list - latency/human error is not simulated and hence if you follow the same priority list in game it can happen that simulation will show higher dps.

Share this post


Link to post
Share on other sites

I have a couple of suggestions for improvements to the code.

Some minor things:

- Armory import would of course nice (but might be hard because of the way the stats should be specified?). All in all I guess that is a minor thing.

- Some graphical representations of the results. Pie chart for the damage distribution, DPS vs time graph and so on. Not exactly necessary, but I would find it nice.

One major thing that should be fairly easy to add would be iterations to the normal dps simulation. You already have it for the SEP calculations. That would make it possible to compute the scatter (or actually, the standard deviation of the mean) for the simulated DPS. It is of course already possible to set the simulation time to an arbitrarily high number to get a more accurate result, but getting the scatter would make it a lot easier to know how much you can trust the resulting DPS. Another suggestion is to add an option of iterating until the scatter value has converged to a value specified by the user.

From what I've seen you need to run about 100 (@ 3000 sec) iterations to get a scatter of about 10 in dps. The only problem I see with this approach is that the distribution of simulated DPS needs to be normally distributed (or at least approximately normal) for this to work.

Share this post


Link to post
Share on other sites

I'd really like an option for sunders in a DPS rotation. I'd add it myself, but there's no source code, basically same as rend except rage cost and no damage.

Share this post


Link to post
Share on other sites
I have a couple of suggestions for improvements to the code.

Some minor things:

- Armory import would of course nice (but might be hard because of the way the stats should be specified?). All in all I guess that is a minor thing.

- Some graphical representations of the results. Pie chart for the damage distribution, DPS vs time graph and so on. Not exactly necessary, but I would find it nice.

One major thing that should be fairly easy to add would be iterations to the normal dps simulation. You already have it for the SEP calculations. That would make it possible to compute the scatter (or actually, the standard deviation of the mean) for the simulated DPS. It is of course already possible to set the simulation time to an arbitrarily high number to get a more accurate result, but getting the scatter would make it a lot easier to know how much you can trust the resulting DPS. Another suggestion is to add an option of iterating until the scatter value has converged to a value specified by the user.

I will try to add at least some of these suggestions when I'll have some free time :-).

I'd really like an option for sunders in a DPS rotation. I'd add it myself, but there's no source code, basically same as rend except rage cost and no damage.

Interesting idea, would be nice for debuff applying optimisation - I will defintely add this feature in the future.

Share this post


Link to post
Share on other sites

I was toying with the SEP portion of DPSSim the other day, and... the output strikes me as ... erm.. a tad random.

I mean, some of the values even flip to negative.

It didn't start behaving well for me until I raised the deltas to about twice of what they are now, changed fight length to 50000 (from the default of 300) seconds, and # of repetitions to 10 (from 3). Incidentally, this is much closer to the parameters of SimulationCraft.

My suggestion would be to use a completely different fight length for the SEP calculations, and otherwise up the values like I suggested.

How to test for if the values are good enough: run the simulation for a stat 10 times. If the value wobbles more than a few %, it needs more accuracy (higher delta, longer run time, more repetitions)

My suggestions for deltas:

Strength: 100

AP: 250

Agility: 200

Crit rating: 150

Hit rating: -75 (yes, negative)

Haste rating: 150

Exp rating: -75 (yes, negative)

ArP rating: 100

This, combined with a runtime of 50000 and 10 repetitions causes a variation of 1-2% per run, which is acceptable in my world. Except for hit&exp, which need even longer runtimes - at these settings they still wobble upwards of 10% (e.g. 1.3 SEP->1.4 SEP). So like 30 reps for those. Huhu.

Hrm, maybe more like -50 for hit/exp, or its value gets inflated a bit too much.

With that last change, all deltas cause a 125-150 dps change at a baseline of 6k dps.

Share this post


Link to post
Share on other sites
I was toying with the SEP portion of DPSSim the other day, and... the output strikes me as ... erm.. a tad random.

I mean, some of the values even flip to negative.

It didn't start behaving well for me until I raised the deltas to about twice of what they are now, changed fight length to 50000 (from the default of 300) seconds, and # of repetitions to 10 (from 3). Incidentally, this is much closer to the parameters of SimulationCraft.

My suggestion would be to use a completely different fight length for the SEP calculations, and otherwise up the values like I suggested.

It's already explained in SEP panel - to get meaningful results one must set long enough fight length and/or higher repetition number and deltas high enough to give noticable difference in DPS. I could probably change default fight length to 300000s though. Too many people leave it as is forgetting it's simulation and getting "random" results.

Share this post


Link to post
Share on other sites
It's already explained in SEP panel - to get meaningful results one must set long enough fight length and/or higher repetition number and deltas high enough to give noticable difference in DPS. I could probably change default fight length to 300000s though. Too many people leave it as is forgetting it's simulation and getting "random" results.

My idea of outputting some kind of uncertainty measure would also help a bit in that respect (i.e. getting people to understand that it is a simulation).

Had another idea that I think would be a good addition to the results output. The code obviously keeps track of when you have too little rage to do WWs/BTs. A row with information of how many times (or as a percentage of the total available cooldown uses) in the results would be interesting. Would help when trying to figure out how to prioritize the instant slams and when to use HS. If possible I also think it would be useful to see by how much the "cycle" (1WW-2BT) slips by each time this happens (i.e. calculate the mean of the time between optimal BT/WW use and the actual time there is rage to do it for all rage starvation events).

Edit: One more thing. Could you possibly add one more condition to the priority lists? I'd like a condition of the type

"If Bloodsurge buff fading in <x seconds" with x as a parameter. Would help with trying out how to do Bloodsruge slamming optimally.

Share this post


Link to post
Share on other sites

Quick update for incoming patch 3.2 available:

- Execute takes now up to 30 rage only

- Bloodrage now generates 20 rage

- Armored to the Teeth now Increases attack power by 3 for every 108 armor value

- T9 set added

Share this post


Link to post
Share on other sites

Nice application. I have also created a simple web application to get the stats from Armory.

Use this link if you want to try it: Stats

Just choose the region (EU or US), type your realm and character name and your stats will be displayed. I have not done extensive testing but my data were 100% correct.

Share this post


Link to post
Share on other sites
My idea of outputting some kind of uncertainty measure would also help a bit in that respect (i.e. getting people to understand that it is a simulation).

Had another idea that I think would be a good addition to the results output. The code obviously keeps track of when you have too little rage to do WWs/BTs. A row with information of how many times (or as a percentage of the total available cooldown uses) in the results would be interesting. Would help when trying to figure out how to prioritize the instant slams and when to use HS. If possible I also think it would be useful to see by how much the "cycle" (1WW-2BT) slips by each time this happens (i.e. calculate the mean of the time between optimal BT/WW use and the actual time there is rage to do it for all rage starvation events).

Edit: One more thing. Could you possibly add one more condition to the priority lists? I'd like a condition of the type

"If Bloodsurge buff fading in <x seconds" with x as a parameter. Would help with trying out how to do Bloodsruge slamming optimally.

Along those same lines, a parameter for "If Overpower proc fading in <p1 seconds" would be nice.

The Expertise variable apparently only likes whole, round numbers. Expertise rating has been shown to not truncate, so should accept non-integer values. As an extension of this, I set the default stats to include an Expertise value with a partial (decimal) value, and the program will no longer open.

Share this post


Link to post
Share on other sites

No idea what is wrong but i get 28000+ DPS as a dual wield 2x2hand fury warrior with some ulduar/badges gear (all stats/tallents double checked to match wowarmory).I run 50000s simulation length with default fury rotation.

Share this post


Link to post
Share on other sites
No idea what is wrong but i get 28000+ DPS as a dual wield 2x2hand fury warrior with some ulduar/badges gear (all stats/tallents double checked to match wowarmory).I run 50000s simulation length with default fury rotation.

Most likely you put in your stats wrongly.

Hover over the stat fields to see what unit you have to use, for example if you have 10% ArP, you need to input it as 0.1 in the sheet.

Share this post


Link to post
Share on other sites

Spent an hour or so playing around with this sim and it seems to overvalue Expertise.

I'm at 30 expertise and it's calculating the SEP value for expertise at .82 for me which seems very high since I'm already past the dodge mitigation cap.

Edit: Figured out the hit problem.

Share this post


Link to post
Share on other sites
Spent an hour or so playing around with this sim and it seems to overvalue Expertise.

I'm at 30 expertise and it's calculating the SEP value for expertise at .82 for me which seems very high since I'm already past the dodge mitigation cap.

Edit: Figured out the hit problem.

Are you certain that the SEP variance settings do not take you under the expertise cap? You will get that if you set the delta for expertise to something negative. The expertise SEP is completely uninteresting once you're past the dodge cap. You already know that expertise is worth exactly 0 after the cap.

Also, make sure you understand that this is a simulator. If you run simulations of 3000 sec per run you will get a variance between runs that is way larger that the change from changing a stat. As mentioned above by other posters you need to use at least 10 repetitions in the SEP tab and set the time per repetition to ~50000 (or more if you have the time). Running the simulator like that will take quite long time, so set it to something high and leave it running over night. You should then get a very low value for Expertise in the SEP calcs (but not 0 due to variance).

Share this post


Link to post
Share on other sites

Hi

I am unable to run this simulator.

Whenver I try to run the program normally nothing happens.

I use JRE 1.6.0_13

I tried to open the Jar in eclipse to see if i could run the proper .class file from there but I couldnt figure out which class is the runnable one.

Share this post


Link to post
Share on other sites

I got the source code from Tankietka a while back, I think the main class should be gemm.sim.DPSSimGUI, but I'm really a java noob so I might be completely wrong.

Share this post


Link to post
Share on other sites
The Expertise variable apparently only likes whole, round numbers. Expertise rating has been shown to not truncate, so should accept non-integer values.

Expertise in [stats] panel is not rating nor amount of dodge reduction but simply expertise points. Aren't those always integer?

I am unable to run this simulator.

Whenver I try to run the program normally nothing happens.

I use JRE 1.6.0_13

I tried to open the Jar in eclipse to see if i could run the proper .class file from there but I couldnt figure out which class is the runnable one.

As Gruntle wrote main class is gemm.sim.DPSSimGUI.

Can you write something more about your problem? How are you trying to run program? Directly from web page? Is there any message in console when you try to execute it?

Share this post


Link to post
Share on other sites
Expertise in [stats] panel is not rating nor amount of dodge reduction but simply expertise points. Aren't those always integer?

On the expertise question: No. It was believed for a (long)while that Expertise "truncated" - that partial amounts of Expertise mean nothing, and that only the whole Expertise value that is shown in your Character panel is the Expertise that is counted. This has been proven to be false - partial (non-integer values of Expertise points) DO mean something.

Share this post


Link to post
Share on other sites

DPSSim update:

- Armory Import module by Alaa added - you can now import most of your character statistics, talents, sets, and glyphs info directly from Armory

- Expertise can now accept non-integer values

- Sword Specialisation talent changed to 2% chance per point

As usual all bug reports are welcomed, especially testing of brand new Armory Import module will be appreciated.

Currently known AI module limitation is limited enchants support - only raw stat ones (+21 agility/strength/etc will be correctly parsed and used to update stat but not +3% Increased Critical Damage nor Berserking or similar).

Also it is possible that new version will require java 1.5 to run.

Share this post


Link to post
Share on other sites

- Horn of Winter/SoE Totem missing from buff list

- Inputting stats as percentages isn´t ideal IMO, especially for Crit. It invites making mistakes such as inputting the tooltip crit-rating from the character panel, yet that tooltip incorporates Cruelty, Poleaxe spec and Agility, causing double-dipping. Inputting ratings is less ambigous.

- Crit calculation seems wonky. I can´t seem to "manually" arrive at the same buffed&talented value as the program. Also, if I input "nekid-spec" (0/0/0 spec, no buffs, no glyphs, no procs, no tier bonuses and 0 for all stats), it still gives a 3,2% crit chance.

- Nekid-spec also results in 220 buffed&talented AP.

- All other stats are properly given as 0 in nekid-spec

- Starting the simulation with nekid-spec causes the program to hang. (duration was set to 3000; I left it alone for 10min then shot it down with the task-manager)

edit:

- Haste buff calculation also seems off. nekid-spec + 10% haste from gear + WF totem buff results in 32% total haste (should be 30%). 20% from gear results in 44% total, 100% in 140% total and so on. Similar problem with Imp. Moonkin Form, btw.

- A "update stats" button to force the program to recalculate all stats would be welcome.

- Simulation in nekid-spec causing a program hang seems related to having 0 as weapon speed. Makes sense, I guess. Perhaps a check for invalid stat values will keep smart-ass nit-pickers like me from breaking your prog ;P

edit 2:

- -100% haste results in 0 auto-attack DPS, should be 50% of base value. And yet, 100% haste does not result in infinite auto-attack DPS, but correctly gives 200% of base value. Interesting. Edit 3: actually, that´s prolly not a bug but Blizzard beeing mathematicaly incosistent with the way they treat positive and negative haste. So I guess you´ll have to hack in 2 different formulae if you want negative haste to work right.

- Are negative values even supported? Would be usefull to account for various debuffs.

Share this post


Link to post
Share on other sites
- Crit calculation seems wonky. I can´t seem to "manually" arrive at the same buffed&talented value as the program. Also, if I input "nekid-spec" (0/0/0 spec, no buffs, no glyphs, no procs, no tier bonuses and 0 for all stats), it still gives a 3,2% crit chance.

- Nekid-spec also results in 220 buffed&talented AP.

- All other stats are properly given as 0 in nekid-spec

- Starting the simulation with nekid-spec causes the program to hang. (duration was set to 3000; I left it alone for 10min then shot it down with the task-manager)

edit:

- Haste buff calculation also seems off. nekid-spec + 10% haste from gear + WF totem buff results in 32% total haste (should be 30%). 20% from gear results in 44% total, 100% in 140% total and so on. Similar problem with Imp. Moonkin Form, btw.

- A "update stats" button to force the program to recalculate all stats would be welcome.

- Simulation in nekid-spec causing a program hang seems related to having 0 as weapon speed. Makes sense, I guess. Perhaps a check for invalid stat values will keep smart-ass nit-pickers like me from breaking your prog ;P

edit 2:

- -100% haste results in 0 auto-attack DPS, should be 50% of base value. And yet, 100% haste does not result in infinite auto-attack DPS, but correctly gives 200% of base value. Interesting.

- Are negative values even supported? Would be usefull to account for various debuffs.

After checking code, 3.2% crit chance is from something called "base crit chance". I presume when I was implementing this part I found some information about some innate character/class crit chance - is it no longer true?

220 AP in naked spec is from formula for base AP number (taken from WoWWiki, not sure if there is some other source for that): (Strength x 2) + (Character Level x 3) - 20

Infinite loop when someone enters 0 as weapon speed is indeed bug :), will try to fix it soon.

As far as I know haste from gear and WF totem/Moonkin is not added together but multiplied, ie, it is not 1.1+1.2=1.3=30% but 1.1*1.2=1.32=32%. Am I wrong?

As for "Update state" button - it is enough to press enter while focus is in one of the stats input fields.

Share this post


Link to post
Share on other sites
After checking code, 3.2% crit chance is from something called "base crit chance". I presume when I was implementing this part I found some information about some innate character/class crit chance - is it no longer true?

I think it isn´t. If I take of all gear with crit rating and unequip my weapon (this "disables" Cruelty), my character pane crit chance is identical to the amount of Crit I get from agility (according to mouse-over tooltip). This is true even when completely naked. So if there is a base crit chance, it´s baked into the formula for deriving crit from agi.

Edit: Curses, foiled again by Blizzards misleading tooltips. There seems to indeed be a "base crit chance" baked into the agi tooltip. Though when using the "literature" value of 62,5 agi per 1% crit, I arrive at a base crit of 3,19%. Either a rounding error, or someone at Blizzard has no respect for number aestethics ;)

220 AP in naked spec is from formula for base AP number (taken from WoWWiki, not sure if there is some other source for that): (Strength x 2) + (Character Level x 3) - 20

Tested it, and there is indeed a base AP. Confusingly, it is actually 240, but formula for strenght-derived AP seems to actually be (Str x 2) - 20.

Works out the same ofc, since it´s impossible to have less then 10 Str.

Aside: Seems like Blizzard tooltips aren´t 100% reliable. I noticed that when adding the "Power" tooltip (increases DPS with melee weapons by x) to the DPS of the equiped weapon, the result never seems to match up with the "Damage" tooltip. The difference can be pretty substantial. Caveat: I haven´t tried this while in 0/0/0 spec yet, but I don´t see what talent(s) could be interfering

As far as I know haste from gear and WF totem/Moonkin is not added together but multiplied, ie, it is not 1.1+1.2=1.3=30% but 1.1*1.2=1.32=32%. Am I wrong?

Hmm, should have done my research better. Some quick googling seems to indicate that you are right, though I have not seen anyone claim that they actually tried it out. Should be easy enough to test, though.

What I don´t get: According to the patch notes, way, way back in 1.12 Blizzard made it so that haste and slow effects of equal magnitude exactly cancel each other out. I can´t quite see how that can work if they are multiplicative.

Share this post


Link to post
Share on other sites

What I don´t get: According to the patch notes, way, way back in 1.12 Blizzard made it so that haste and slow effects of equal magnitude exactly cancel each other out. I can´t quite see how that can work if they are multiplicative.

1 * 1.2 (+20% haste) / 1.2 (-20% haste) = 1

Not rocket science :P

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.