Jump to content


Photo

EnhSim, DPS simulator


  • This topic is locked This topic is locked
2763 replies to this topic

#1 tukez

tukez

    Don Flamenco

  • Members
  • 253 posts

Posted 29 August 2008 - 10:42 PM

Visit EnhSim Homepage. Please, submit bugs and wishes on the homepage. If you have a problem regarding the sim, please read the FAQ and helps first, before posting here.

Hello everyone, this thread is about my enhancement shaman dps simulator. Until now I've been posting to this http://elitistjerks....man_yo_help_me/ and little bit to this http://elitistjerks....lls_discussion/ thread.

My simulator is same style as Yo's(Crazy Shaman's DPS & AEP calculator © Yo). Differences:

-Console application. Rar package comes with Windows executable but compiling to other platforms is possible.
-GUI included(Win32) as a front end for the console app. You can still use only the console app if you prefer it that way.
-Config files to save and share your configs with others.
-If wanted, combatlog output to text file.
-Faster, also supports multithreading for even more speed.
-Should be more accurate.
-WotLK mechanics! (not all yet)


Newest version changelog(I won't update this on every update, so check new posts on this thread or the download site)

0.5.7
-GUI is included. You can still use the console version. GUI is actually just front end for enhsim, it generates config file and runs enhsim.exe with it. The GUI uses enhsimgui_config.txt as it's temp config file.
-Buffs in the config file changed to form [value]/[default value]. For example melee_haste_buff 0.0/20.0. It means that buff is off and the "default" or suggested value is 20.0%.
-Fixed potion cooldown. It was 100(!) times shorter than it was supposed to be.


Download:
enhsim - Google Code


It is important to read the config file carefully and don't forget about the comments. Please test this sim and post some feedback, bug reports or wanted features.

#2 Tymir

Tymir

    Von Kaiser

  • Members
  • 88 posts

Posted 30 August 2008 - 02:26 AM

I've only taken a quick look through the simulator as of yet, but it has been pretty awesome so far.

The only thing I found that wasn't self explanatory/explained in the readme were the EP ranges in the config.txt file. Simulation speeds are very quick and the simulator is simple to use even without the GUI.

About the actual nuts and bolts of the simulator, excuse my ignorance since I'm not an Enhancement Shaman expert but considering the simulator simulates shocks itself what is the point of average_shocks_per_minute in the config file? Is there a way to let the simulator handle assume an ideal DPS priority list and generate this variable by itself?

#3 tukez

tukez

    Don Flamenco

  • Members
  • 253 posts

Posted 30 August 2008 - 09:12 AM

I've only taken a quick look through the simulator as of yet, but it has been pretty awesome so far.

The only thing I found that wasn't self explanatory/explained in the readme were the EP ranges in the config.txt file. Simulation speeds are very quick and the simulator is simple to use even without the GUI.

About the actual nuts and bolts of the simulator, excuse my ignorance since I'm not an Enhancement Shaman expert but considering the simulator simulates shocks itself what is the point of average_shocks_per_minute in the config file? Is there a way to let the simulator handle assume an ideal DPS priority list and generate this variable by itself?


Thanks for the feedback. To understand the EP ranges you have to understand how EP values are calculated. For example, to calculate EP value of crit rating, first I simulate the normal "baseline" dps. Then I simulate dps with increased crit rating. I take the dps difference and divide it by the increased crit rating to get dps/crit rating value. EP range means how much crit rating did I increase.

The average_shocks_per_minute actually defines the shock cooldown. 10 shocks per minute, the shock cooldown would be 60/10 = 6 seconds as it should be, but people aren't usually able to achieve that in game. The name might be a little stupid but I think it is easier to approximate how many shocks per minute do you actually do, than how long is the actual cooldown of your shocks + reaction + other factors.

Currently there isn't a way to let the simulator decide the optimal rotation priority. Pitbuller made tests and found out the optimal and that priority is in the default config now. Keep in mind that the optimal rotation might change depending on your gear/play style.

#4 Chromean

Chromean

    Glass Joe

  • Members
  • 3 posts

Posted 30 August 2008 - 12:03 PM

I did 5x5000hours EP simulations and got some pretty strange variations in the values. For example ep for intellect was ranging from 0.80 all the way to 4.01. If you have 3/3 mental dexterity talented, any values under 1.1 shouldn't be possible for intellect if you're using kings, at least in my knowledge. I can upload my config.txt somewhere if you want to have a closer look at it but I'm pretty sure it's filled correctly. I used my current gear as a baseline and switched gems for agility and hit+agility accordingly. I also included the extra attack power from agility and intellect in the current ap value.

Stats used:
MH/OH speed 2.50
MH/OH dps 103.0
Melee crit 29.32%
Melee hit 13.06%
Expertise 83
ap 2253
haste 4.63%
ignore_armor 630
str 215
agi 429
int 141
spellpower 751
spell_crit 17.99%
spell_hit 16.35%

Anyway good to see that someone is working on a simulator with 3.0 in mind and I hope it turns out well.

#5 Shokkina

Shokkina

    Glass Joe

  • Members
  • 20 posts

Posted 30 August 2008 - 01:31 PM

It would be nice to add a sort of convertion to the sim to get 3.0 stats for people that cannot access to beta. I cannot use the sim properly because i don't know how much crit from agi/ crit - hit from rating for spells i will get with 3.0

#6 Malan

Malan

    Mike Tyson

  • Allied Members
  • 29,830 posts

Posted 30 August 2008 - 02:20 PM

It would be nice to add a sort of convertion to the sim to get 3.0 stats for people that cannot access to beta. I cannot use the sim properly because i don't know how much crit from agi/ crit - hit from rating for spells i will get with 3.0


The entire list of these values, interpolated out to level 80, are pretty easy to locate both here on EJ and through google.

Tried to compile this on OSX 10.5.4, the zthread library failed on the Make. Anyone on a mac been able to use this?

#7 tukez

tukez

    Don Flamenco

  • Members
  • 253 posts

Posted 30 August 2008 - 03:18 PM

I did 5x5000hours EP simulations and got some pretty strange variations in the values. For example ep for intellect was ranging from 0.80 all the way to 4.01. If you have 3/3 mental dexterity talented, any values under 1.1 shouldn't be possible for intellect if you're using kings, at least in my knowledge. I can upload my config.txt somewhere if you want to have a closer look at it but I'm pretty sure it's filled correctly. I used my current gear as a baseline and switched gems for agility and hit+agility accordingly. I also included the extra attack power from agility and intellect in the current ap value.


Thanks for testing. Could you post the config and specific instructions what did you do to get the wierd behaviour? It would help to determine is it a bug and what is the bug about. You can also send it to my email, which you find in the readme.

#8 tukez

tukez

    Don Flamenco

  • Members
  • 253 posts

Posted 30 August 2008 - 03:22 PM

The entire list of these values, interpolated out to level 80, are pretty easy to locate both here on EJ and through google.

Tried to compile this on OSX 10.5.4, the zthread library failed on the Make. Anyone on a mac been able to use this?


So you tried to make a static library out of zthread? You could post the error messages here and maybe me or someone else can tell something about it.

#9 Chromean

Chromean

    Glass Joe

  • Members
  • 3 posts

Posted 30 August 2008 - 04:03 PM

I sent the config file to your e-mail. First I filled the config file up with my stats and raidbuffs and after that I ran start_simulation a few times before running start_ep_calculation. Just getting pretty weird results, hope it helps.

#10 Impara

Impara

    Glass Joe

  • Members
  • 2 posts

Posted 30 August 2008 - 06:00 PM

Ancestral knowledge is listed as a 0/3 talent in line with the blue poster's beta patch notes but the talent calculators all show 0/5. Not being in the beta I don't know which is correct but I thought it would be worth flagging.

EDIT Having looked at the code more I assume this is purely cosmetic.

#11 Hidden

Hidden

    King Hippo

  • Members
  • 520 posts

Posted 30 August 2008 - 07:53 PM

Using the standard 5000h simulation time gives very inexact values for me:
    Stat      | Simulation 1 | Simulation 2 | Simulation 3 | Simulation 4
    AP        | 1            | 1            | 1            | 1
    Crit      | 2.26         | 2.80         | 1.37         | 3.61
    Hit       | 4.19         | 5.17         | 3.50         | 4.33
    Expertise | -1.10        | -1.23        | -1.99        | 0.05
    Haste     | 1.77         | 2.15         | 1.02         | 2.59
    ArPen     | 0.28         | 0.55         | 0.08         | 0.26
    +Dmg      | 0.73         | 1.00         | 0.27         | 0.96
    Agi       | 2.62         | 3.49         | 2.22         | 3.43
    Int       | 1.81         | 2.15         | 0.64         | 2.11

Seems to be very inexact for 50,000 hours as well as I'm getting a value of 0.65 for Expertise there while already being overcapped.

#12 tukez

tukez

    Don Flamenco

  • Members
  • 253 posts

Posted 30 August 2008 - 09:53 PM

Ancestral knowledge is listed as a 0/3 talent in line with the blue poster's beta patch notes but the talent calculators all show 0/5. Not being in the beta I don't know which is correct but I thought it would be worth flagging.

EDIT Having looked at the code more I assume this is purely cosmetic.


Yes you are right on both. It seems it should be 5 point talent, I will fix this for the next version. Yes..it's only cosmetic, just change it in config file to x/5 or you can even use 5/3 or whatever you like.

#13 annihilate

annihilate

    Glass Joe

  • Members
  • 3 posts

Posted 31 August 2008 - 09:32 AM

have you done a sim to show useing flame tongue on off hand with fast weapon sence a lot of people keep talking about there doing more dps in beta that way or that they just think they are?

#14 tukez

tukez

    Don Flamenco

  • Members
  • 253 posts

Posted 31 August 2008 - 09:42 AM

Ok, this one is for Hidden and Chromean. Actually, this is for everyone who uses the EP calculation system.

I did some testing with Chromeans config and I came to conclusion that the sim is working right. The problem lies in the big variance it is giving and that is the result of all random procs, trinkets, flurry, elemental devastation etc. As everyone knows, 2 random procs can give very different results depending on do they happen at the same time or different times, even if the uptimes are exactly the same. If they happen at the same time, resulting DPS is higher than if they happend at different times. And as the number of random procs go up, the variance increase is not linear, it is more like exponential.

As the DPS has increased a lot, you should also increase the EP ranges. Now that is a bad thing, because I think the optimal EP ranges are an amount, which one item can increase one stat. This method should give quite accurate EP values if calculated after every item change. Anyway, I had to up the EP ranges to these values to get some meaningful results:

ep_ap				300
ep_crit_rating			100
ep_hit_rating			140
ep_expertise			5 //not rating
ep_haste_rating			200
ep_armor_ignore			600
ep_spellpower			300
ep_agility			120
ep_intelligence			200

As you see, the expertise is still low. Otherwise it would go over the cap and give weird results. Also the hit rating is questionable as with Chromeans config, spell hit will hit the cap sooner than melee hit. I was trying to get the total DPS difference to match about 180, which is 5% from the baseline total DPS.

Also the 5000 simulation time is not nearly enough for EP value calculations with these number of random procs. I honestly don't know what is enough, it kind of depends on the config I think. In test, I used 10000 hours and EP value difference between 2 tests was maximum of 0.12. Except with expertise(got 2.07 and 2.79), which was expected with too low EP range.

So the advice is to up the simulation time and up the EP ranges, but watch the expertise and hit cap.

#15 tukez

tukez

    Don Flamenco

  • Members
  • 253 posts

Posted 31 August 2008 - 09:52 AM

have you done a sim to show useing flame tongue on off hand with fast weapon sence a lot of people keep talking about there doing more dps in beta that way or that they just think they are?


No, I have not. You are able to do that yourself with the sim.

#16 tukez

tukez

    Don Flamenco

  • Members
  • 253 posts

Posted 31 August 2008 - 09:56 AM

0.4.9
-Fixed spell gcd haste. Mongoose, flurry etc were also affecting spell gcd.
-Ancestral Knowledge fixed to 5 point talent.
-EP value calculation also shows baseline total DPS and DPS difference with every test.

DPS difference on EP value calculation is supposed to help to decide the correct EP ranges.

enhsim - Google Code

#17 bobxii

bobxii

    Von Kaiser

  • Members
  • 25 posts

Posted 02 September 2008 - 12:23 AM

So you tried to make a static library out of zthread? You could post the error messages here and maybe me or someone else can tell something about it.


after doing ./configure (10.5.4)

kyle:ZThread-2.3.2 Administrator$ make
Making all in src
make  all-recursive
Making all in .
if /bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I. -I../include   -g -O2 -Wall -DNDEBUG  -g -O2 -Wall -DNDEBUG -MT AtomicCount.lo -MD -MP -MF ".deps/AtomicCount.Tpo" \
	  -c -o AtomicCount.lo `test -f 'AtomicCount.cxx' || echo './'`AtomicCount.cxx; \
	then mv -f ".deps/AtomicCount.Tpo" ".deps/AtomicCount.Plo"; \
	else rm -f ".deps/AtomicCount.Tpo"; exit 1; \
	fi
 g++ -DHAVE_CONFIG_H -I. -I. -I. -I../include -g -O2 -Wall -DNDEBUG -g -O2 -Wall -DNDEBUG -MT AtomicCount.lo -MD -MP -MF .deps/AtomicCount.Tpo -c AtomicCount.cxx  -fno-common -DPIC -o .libs/AtomicCount.o
../include/zthread/Guard.h: In destructor 'ZThread::Guard<LockType, LockingPolicy>::~Guard()':
../include/zthread/Guard.h:494: error: there are no arguments to 'isDisabled' that depend on a template parameter, so a declaration of 'isDisabled' must be available
../include/zthread/Guard.h:494: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
make[3]: *** [AtomicCount.lo] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
kyle:ZThread-2.3.2 Administrator$ 


#18 tukez

tukez

    Don Flamenco

  • Members
  • 253 posts

Posted 02 September 2008 - 07:40 AM

after doing ./configure (10.5.4)


../include/zthread/Guard.h:494: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)

Seems like the zthread is not following the C++ standard or something. So try to build with that -fpermissive flag.

#19 bobxii

bobxii

    Von Kaiser

  • Members
  • 25 posts

Posted 02 September 2008 - 05:45 PM

../include/zthread/Guard.h:494: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)

Seems like the zthread is not following the C++ standard or something. So try to build with that -fpermissive flag.




I did that as well ( assuming it's $ make -fpermissive or $ make --fpermissive (on another computer atm, can't remember :P )). Zthreads is (insofar as I have seen from google) a relatively unsupported library; is it required for the program to run or just for the multithread capability ?

#20 tukez

tukez

    Don Flamenco

  • Members
  • 253 posts

Posted 02 September 2008 - 06:20 PM

is it required for the program to run or just for the multithread capability ?


It is your lucky day.



0.5.4
-EP test with hit rating or expertise will be skipped, if over the cap.
-combat_length added to config. This will determine the potion cooldown.
-Buff system revamped to WoW 3.0 mechanics.
-Multiple Drums of Battle removed. Drums now have 2min cooldown.
-When compiling to other platforms, it is possible to define NOTHREADS to exclude ZThreads(multithreading) usage.

enhsim - Google Code


In the default config, all the buffs are unused. Give me some suggestions for default buffs.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users