Diablo® III

CM/WW DPS Simulator (updated website)

Simulates the standard CM/WW build for a given configuration of character stats and skill options, and calculates the effective DPS as well as many other useful values. Ideally it should help answer most questions about which stat to upgrade next, or which skill to go with if considering multiple choices for a slot.

Check it out if interested at
http://d3cmww.com

Any comments / questions / bug reports / feature requests can be posted here.

I've made major changes to both the simulator program and the website since I first posted it here, and added a good number of features since I posted a second version on reddit.

Some features added recently...
New skills: Diamond Shards, Force Weapon, Blood Magic, Stretch Time, Time Warp.
Life gain per second is now calculated, based on specified values for LoH and Life Steal.
The number of mobs hit by each WW twister is now a configurable option.

Thanks for the feedback to everyone who posted in the original thread. The site now supports importing all character stats from the API as was suggested. Also, as pointed out I had neglected to include the basic weapon attack when a WW cast attempt fails due to insufficient AP, and after fixing that problem in the simulator it was obvious that my theory of an 0.25 proc rate for WW was wrong. And if the simulation results were way off for anyone before I think they should be a lot closer now.

The current simulator uses the established proc rates (based on LoH testing) for each skill, however it multiplies the skill proc rate by a separate multiplier for each proc type. The proc multipliers are currently set to 2.5 for Shocking Aspect (IIRC I ran across a post here stating that the Matlab simulator is using that value as well); 2.0 for Critical Mass; and 1.15 for APoC. For the basic weapon attack I couldn't find any reference to what its proc coefficient is anywhere, but currently I have it set to 1.5.

The testing to establish that the simulator's results actually match up with what happens in the game is much more comprehensive now. Along with recording DPS, I recorded the number of Frost Nova casts in each test run. See http://d3cmww.com/test_results for 17 test configurations with a wide range of character stats and skill setups; in nearly every instance, the simulation values match the recorded test values within about 3% for both DPS and Frost Nova casts. All the test configurations in the set are simulated using the same set of parameters, which can be seen at http://d3cmww.com/test_suite
Edited by Steve#1523 on 1/21/2013 7:19 PM PST
Reply Quote
Proc coefficient for a white attack is 1. I tested it myself using LoH.

I'm not sure why you set CM and ApoC multipliers though. They should just be based on spell coefficients. As far as I have seen, SA is the only spell that has a strange interaction with any skills beyond what is expected, and that is only with WW.
Reply Quote
This is brilliant.
Reply Quote
01/20/2013 01:27 PMPosted by Loroese
Proc coefficient for a white attack is 1. I tested it myself using LoH.

Well that's annoying. Maybe I can get away with saying LoH coefficients are capped at 1 but maybe they can go above for CM/APoC... or I'll have to retune the parameters a little.

01/20/2013 01:27 PMPosted by Loroese
I'm not sure why you set CM and ApoC multipliers though. They should just be based on spell coefficients.


Did your testing include recording how frequently / how many times Frost Nova is cast in addition to recording DPS? That's the biggest thing that makes those multipliers necessary in my simulator.

I can get the simulation DPS to match sort of closely to the test data in a lot of my test cases with the CM and APoC multipliers set to 1.0, but with both of them set to 1.0 there's no way I can configure the rest of the parameters to get the Frost Nova cast frequency even close to high enough.

Actually I even have a link on the site already to make this point. http://d3cmww.com:8080/test_results?testid=54356 that's the closest I can get to matching the test data if I keep all the proc multipliers at 1.0, and use very extreme values for every other tunable parameter that exists in my simulator to push the DPS and Frost Nova casts as high as they'll go. In every test instance the number of Frost Nova casts falls at least 30% short of the value from the in-game testing.

I'm not sure how I'm supposed to prove that I didn't just screw something up in the coding though. I think the fact that I have it tuned to simultaneously match 17 separate tests almost perfectly with one set of parameter values suggests that there's some kind of coherent logic to how it's functioning. The simulator works in a very straightforward way, but there's always the possibility of bugs hiding in there. I suppose I could show some examples of simulation results which are using my default parameter configuration, the one that uses those proc multipliers, and show that all the values are consistent with each other. Or I could try to to make an argument for some specific test instance that reaching the test values for DPS and Frost Nova casts is logically impossible with CM and APoC proc'ing no higher than the established skill proc rates.

01/20/2013 01:27 PMPosted by Loroese
As far as I have seen, SA is the only spell that has a strange interaction with any skills beyond what is expected, and that is only with WW.


I'd be interested to know how you can tell that, in that I haven't done any kind of precise small scale testing, just stuff along the lines of total damage dealt or total Frost Nova casts per fight, and maybe isolating certain skills by comparing the same setup both with and without that skill. But with procs from skills, the amount of procs that WW generates is so overwhelming compared to all the other skills that it's hard to measure the contribution from the rest of them.

Anyway I'd like to hear from anyone who cares to check if the simulations from the website are matching up with what they see in-game. If you google "d3cmww" there are a bunch of people on a bunch of different forums (mostly non-English) who seem to think it's working reasonably. Or anyone can try to find something wrong in the simulation output for any of the 17 tests that are up on the site. Maybe I'll try to come up with some argument that doesn't require assuming I didn't make any mistakes in writing the program. I kind of knew that convincing anyone that this thing is actually working correctly was going to be a problem.
Edited by Steve#1523 on 1/20/2013 6:03 PM PST
Reply Quote
Your browser string suggests you may be using Internet Explorer.
Internet Explorer is not supported by this site, you will have to use another browser.
Reply Quote
I tested the SA impact with WW by just casting WW for one fight against ghom, then repeated while just casting WW and having SA active. I then approximated the dps gain from SA and compared it to the expected gain based on the expected number of procs. I found the SA procs were much more than expected, but that it actually changed with attack speed to some degree.

This problem is one reason why I haven't updated my simulator much, and I don't have the time to test it further. I also didn't have the gear to test higher APS at the time, nor do I now that I sold a few of my CMWW pieces. The other reason is that latency seems to have a very large impact on results, which makes it very difficult to compare sim results to collected data.

I didn't test SA with other skills a lot but my basic testing was that it was acting as expected. Each SA proc was doing 35% of weapon damage.

As for my testing, I didn't specifically test FN casts, but I think my sim results were pretty close to the number of casts. I seem to recall doing some checks, but I don't remember for sure. Can you tell me an example and I can compare with my simulation to compare? I can't use your sim or even see the config used because IE is not supported :(
Reply Quote
Your browser string suggests you may be using Internet Explorer.
Internet Explorer is not supported by this site, you will have to use another browser.


01/20/2013 06:36 PMPosted by Loroese
I can't use your sim or even see the config used because IE is not supported :(


Ugh. There really seems to be no way around that, Internet Explorer fundamentally doesn't support the stuff the site does with dynamically setting and loading the values of input fields. It's the only web browser that has any problems with my site, and IE users make up maybe 2% of my web traffic so I don't want to make major changes to how the site works to support it.

01/20/2013 06:36 PMPosted by Loroese
Can you tell me an example and I can compare with my simulation to compare?


Ok for character stats I'll use my wizard's profile, it won't change soon cause I'm not testing anything or playing my wizard right now

http://us.battle.net/d3/en/profile/Steve-1523/hero/1506094

For skills use Evocation and Pinpoint Barrier (or just add 5% to crit chance), no Cold Snap or Stretch Time or anything else that will affect Frost Nova casts.

As you said you can't see this with IE but the config is http://d3cmww.com:8080/cmww?configid=54608

Fighting 1 target(s) for 30 seconds - 500 samples
Average seconds between commands = 0.0708s (4.25 frames with FPS=60)
APS = 2.3940 [30 WW ticks per cast] ; Crit Chance = 53.00% ; APoC = 20
Character sheet DPS = 69726.38 ; Weapon DPS = 949.91
----------------------------------------------------------------------
Average DPS = 209798.25
(DPS / Character Sheet) Ratio = 3.01
DPS from Wicked Wind = 103455.95 [49.31%]
DPS from Chain Reaction = 98688.99 [47.04%]
DPS from weapon attack = 4340.55 [ 2.07%]
DPS from Storm Crow proc = 3312.76 [ 1.58%]
Average freeze uptime = 66.03%
Average seconds per Frost Nova cast = 1.70 seconds
Average Frost Nova casts per fight = 17.67
Average seconds per Diamond Skin cast = 1.85 seconds
Average Wicked Wind casts per second = 1.52
Average active twisters = 7.95
Average Chain Reaction casts per second = 1.22
Average global cooldown uptime = 93.45%
Average CM procs per second = 6.04 (90.35% from WW)
Average APoC gain per second = 71.00
Average AP spent per second = 77.81
Average Arcane Power = 55.59 (out of max 93)
Average life gain per second = 2083.49 (100.00% from LoH)
Reply Quote
01/20/2013 06:36 PMPosted by Loroese
I found the SA procs were much more than expected, but that it actually changed with attack speed to some degree.


I have SA functioning the same regardless of attack speed and matching test results from the range of 26 ticks to 36 ticks. My simulator does have one ugly hack though, and it's related to DPS results changing with attack speed.

I had a problem that the simulator was getting too many Frost Nova casts and too low DPS with high attack speeds, and the reverse of that at low attack speeds.
So I put in code for a random chance when sending a WW command to send a Frost Nova command first, with probability equal to (2.35/APS)^4.0
Which gives a 100% chance of that triggering for attack speeds below 2.35, and the chance decreases (resulting in less Frost Nova casts, more WW casts and DPS) as attack speed goes higher
Edited by Steve#1523 on 1/21/2013 1:55 PM PST
Reply Quote
Interesting. It definitely is underestimating my wizard though. Should be doing something like 900k/sec DPS.

Needs more work and I'm excited to see the final product when it's ready. And don't forget ET crit chance for people with skull grasps and maras!
Reply Quote
01/21/2013 01:55 PMPosted by ChangBooster
Interesting. It definitely is underestimating my wizard though. Should be doing something like 900k/sec DPS.


Is that with the gear from your profile and you used the API load on the site? And using the skills from your profile too? Mind using the "Create URL for this configuration" button and posting the link?

And don't forget ET crit chance for people with skull grasps and maras!


Ah right, that was what I forgot to add. I'll do that.
Edited by Steve#1523 on 1/21/2013 2:00 PM PST
Reply Quote
01/21/2013 02:00 PMPosted by Steve
And don't forget ET crit chance for people with skull grasps and maras!


That option is up on the site now, doesn't import it from API yet.
Edited by Steve#1523 on 1/21/2013 2:06 PM PST
Reply Quote
Results for 2.394 APS, 53% CC, 20 APoC, using Evo+CB, no rune on FN, 0.0708s reaction time/latency, 500 simulations, 30s per simulation, starting with full AP:

CR = 34.1055%
White = 4.5292%
WW = 61.3654%
No correlation for SC proc

Average FN casts: 11.552
FN uptime: 63.87%
Effective multiplier: 2.8785

Ave CM procs per second: 3.2905
Ave seconds between DS casts: 3.2496
Ave WW casts per second: 1.4938
Ave CR casts per second: 0.7184
Ave AP spent per second: 66.651
Ave APoC gains per second: 62.5989

LoH return: 6.178xLoH = 2248.8 with 364 LoH
Average White Attacks = 8.1720

Going to be busy the rest of the night so won't be able to compare anything else until maybe tomorrow afternoon. The one thing I notice is you have 6 CM procs per second but only around 70 AP gains from APoC per second, when it should be 6*20 = 120. I assume that's because of CM and ApoC coefficients you use. What mechanic do you use for CM and APoC?

When spell hits, check crit chance,
if crit,
AP = AP + APoC*Spell_Coef
check coef,
if coef passes
CM procs, so CD = CD - 1.

Is it something like that? Also, what spell priority do you use?
Edited by Loroese#1415 on 1/21/2013 3:01 PM PST
Reply Quote
When spell hits, check crit chance,
if crit,
AP = AP + APoC*Spell_Coef
check coef,
if coef passes
CM procs, so CD = CD - 1.


Yeah that's exactly it. Randomly generate is_crit, then do all the procs independently. APoC is triggered on every crit, with the amount being (apoc_amount_on_gear * skill_proc_coefficient * apoc_proc_multiplier=1.15) which is immediately added to current AP. CM has chance to trigger on each crit (and reduce all CD's by 1 second) with probability = (skill_proc_coefficient * cm_proc_multiplier=2.0)

01/21/2013 02:55 PMPosted by Loroese
The one thing I notice is you have 6 CM procs per second but only around 70 AP gains from APoC per second, when it should be 6*20 = 120. I assume that's because of CM and ApoC coefficients you use. What mechanic do you use for CM and APoC?


Let's see...
average active twisters = 7.98
7.98 * (30/6) = 39.9 ticks per second
39.9 * 0.53 = 21.15 crits per second
21.15 * 0.125 * 1.15 [my apoc proc multiplier] * 20 = 60.8 APoC gain per second
With my simulator giving around 71, I guess that's close enough with some more coming from white attack and CR.

For CM...
21.15 crits per second
21.15 * 0.125 * 2.0 [my cm proc multiplier] = 5.29 CM procs per second
And my simulator gives 6.04*0.9 = 5.436 CM procs per second coming from WW
Edited by Steve#1523 on 1/21/2013 4:00 PM PST
Reply Quote
01/21/2013 02:55 PMPosted by Loroese
Also, what spell priority do you use?


It's slightly complicated. I had to mess around with it a lot while trying to get all the results to match the test data.

It sends all the skill commands at once in a single frame, and then sets a variable that represents the next frame in which commands will be sent, with the frame delay until the next command send frame generated with a simple random formula that has an average delay equal to the value of the avg_command_interval parameter.

When it sends commands, it takes the static list of all skills and generates a new list with the order of the skills randomized, and then goes from the start to the end of that random sequence and attempts to cast each skill (all of this taking place in a single frame). Even though they're all sent in the same frame the order of the cast attempts still matters a lot, casting one skill first can make it unable to cast a later one, because of the global cooldown (cast delay) or not having enough AP.

That's the basic framework, and within that there's just one more thing it does, which I posted earlier:

01/21/2013 01:53 PMPosted by Steve
So I put in code for a random chance when sending a WW command to send a Frost Nova command first, with probability equal to (2.35/APS)^4.0


I don't know what it is but there's something weird about how the game processes spammed commands, to get simulation results to match up with testing you have to put something in that heavily favors Frost Nova being cast rather than Energy Twister when it's possible to cast both.
Reply Quote
01/21/2013 02:00 PMPosted by Steve
Is that with the gear from your profile and you used the API load on the site?


Yeah, I loaded from site. When i did it a few hours ago, it was like 580k or something...now it seems to be a lot more accurate. Nice sim. Haven't done an MP8 Ghom challenge since i changed my ammy and pants so not sure if it's 100% right but I would estimate it's pretty close.

http://d3cmww.com/cmww?configid=54615
Reply Quote
GREAT SITE!!! Run me you unbelievers :-)

http://d3cmww.com/cmww?configid=54616

Check AP and life returns...
Reply Quote
01/21/2013 07:01 PMPosted by ChangBooster
When i did it a few hours ago, it was like 580k or something...now it seems to be a lot more accurate.


Ok good, I think you must have set something wrong before, or had the wrong gear in your profile or something, I was getting 800-950k from your profile depending on skills.
Reply Quote
Also, i like your legendary usage statistics. No one, and I mean NO ONE, uses a rare source anymore.
Reply Quote
When it loads from the API, it show my +crit_damage as 242%, which it technically is, counting the base 50%. The sheet DPS (blue number) when i run the sim is 132348.02. When I change the +crit_damage field to my actual crit damage from gear alone, 192%, then run the sim it displays my correct sheet DPS w/ scoundrel, well pretty close anyway: 116495.63 whereas blizz says it is 116626.

242%
http://d3cmww.com/cmww?configid=54617

192%
http://d3cmww.com/cmww?configid=54618

Hope these findings are helpful!
Reply Quote
@ChangBooster

lol you had me pretty confused but I think I know what's going on

The simulator site includes certain skills in the "Character sheet DPS" it displays, including the Blood Magic you have enabled, and also includes the scoundrel crit bonus if that's enabled. The DPS shown on your wizard's bnet profile page does not include any active skills, and it also doesn't include the scoundrel crit bonus.

The config you want, to match your profile's DPS, is http://d3cmww.com/cmww?configid=54620 which matches the profile DPS within about 20. It's just a weird coincidence that subtracting 50 crit damage reduces DPS by nearly the same amount as disabling Blood Magic and scoundrel crit bonus.
Edited by Steve#1523 on 1/21/2013 7:57 PM PST
Reply Quote

Please report any Code of Conduct violations, including:

Threats of violence. We take these seriously and will alert the proper authorities.

Posts containing personal information about other players. This includes physical addresses, e-mail addresses, phone numbers, and inappropriate photos and/or videos.

Harassing or discriminatory language. This will not be tolerated.

Forums Code of Conduct

Report Post # written by

Reason
Explain (256 characters max)
Submit Cancel

Reported!

[Close]