SWTOR Mechanics Forums
Primer on calculating DPS stat weights - Printable Version

+- SWTOR Mechanics Forums (http://mmo-mechanics.com/swtor/forums)
+-- Forum: General (/forum-1.html)
+--- Forum: Game Mechanics (/forum-5.html)
+--- Thread: Primer on calculating DPS stat weights (/thread-689.html)

Pages: 1 2 3 4 5 6 7 8


RE: Primer on calculating DPS stat weights - LagunaD - 02-07-2012 08:29 AM

(02-07-2012 02:48 AM)RuQu Wrote:  Trying to make sure I'm reading some of this right.

As far as the bonus from Alacrity rating, I think that is correct (and how I code things in my spreadsheets).

I haven't investigated how the Alacrity rating bonus stacks with other Alacrity buffs, but if it is additive, that looks right too.

Kor is the resident expert on Alacrity... Wink


RE: Primer on calculating DPS stat weights - RuQu - 02-07-2012 11:53 AM

Not sure if you know the answer to this or not, but I'll toss it out anyway.

Coding the equations in Google Docs (Excel) and in C++, I get different answer for the exponential or logarithmic portions of the equations. Any ideas what I could be doing wrong? I ran that exact code I pasted into the last post, and the answer was different from my Google Docs computation using the same values.


RE: Primer on calculating DPS stat weights - LagunaD - 02-07-2012 02:04 PM

(02-07-2012 11:53 AM)RuQu Wrote:  Not sure if you know the answer to this or not, but I'll toss it out anyway.

Coding the equations in Google Docs (Excel) and in C++, I get different answer for the exponential or logarithmic portions of the equations. Any ideas what I could be doing wrong? I ran that exact code I pasted into the last post, and the answer was different from my Google Docs computation using the same values.

Are you sure you're using the natural logarithm?

LOG(X) in Google or Excel is base 10. Use LN(X) for base e.

LOG(X) in C++ is base e. LOG10(X) is base 10

Actually LOG in Google takes a second argument for the base, but the base seems to default to 10 if not specified.


RE: Primer on calculating DPS stat weights - lostdummy - 02-08-2012 12:45 AM

There are some things that are probably hard to model for stat values in this way - mostly proc based effects and resource(force) limited scenarios.

For example, take Crit stat for Sorcerer. Aside from "static" effect that crit will have on damage of every spell (and included in formulas from OP), there are number of "proc" effects that are related to crit:

- if Lightning Barrage talent is present, Affliction crits will allow "double speed" Force Lightnings, thus increasing overall DPS of player

- if Lightning Effusion talent is present, any crit will reduce force cost of next spell by half, thus significantly increasing DPS in force limited builds


I'm not sure how is additional value that Crit stat have (because of above or similar effects) included in posted formulas.


RE: Primer on calculating DPS stat weights - LagunaD - 02-08-2012 01:17 AM

(02-08-2012 12:45 AM)lostdummy Wrote:  There are some things that are probably hard to model for stat values in this way - mostly proc based effects and resource(force) limited scenarios.

For example, take Crit stat for Sorcerer. Aside from "static" effect that crit will have on damage of every spell (and included in formulas from OP), there are number of "proc" effects that are related to crit:

- if Lightning Barrage talent is present, Affliction crits will allow "double speed" Force Lightnings, thus increasing overall DPS of player

- if Lightning Effusion talent is present, any crit will reduce force cost of next spell by half, thus significantly increasing DPS in force limited builds

I'm not sure how is additional value that Crit stat have (because of above or similar effects) included in posted formulas.

Well, I explained one way to model this sort of thing above, in regard to the Carnage Marauder calculation.

For your two examples:

- You can calculate the rate of Affliction criticals, hence the rate of Lightning Barrage procs, hence the average cast time of Force Lightning.

- You can calculate the rate of all criticals from the rate of attacks, hence you can calculate the uptime of the Lightning Effusion proc, and you can reduce the average cost of affected abilities accordingly.

It is more complicated when procs affect the actual selection of abilities, but this circular dependence can be handled by interpolating a lookup table, as I explained above.

A spreadsheet will never be as good as a full simulator, but the time required to set up and test a full simulator far greater.


RE: Primer on calculating DPS stat weights - RuQu - 02-08-2012 03:27 AM

(02-08-2012 01:17 AM)LagunaD Wrote:  Well, I explained one way to model this sort of thing above, in regard to the Carnage Marauder calculation.

For your two examples:

- You can calculate the rate of Affliction criticals, hence the rate of Lightning Barrage procs, hence the average cast time of Force Lightning.

- You can calculate the rate of all criticals from the rate of attacks, hence you can calculate the uptime of the Lightning Effusion proc, and you can reduce the average cost of affected abilities accordingly.

It is more complicated when procs affect the actual selection of abilities, but this circular dependence can be handled by interpolating a lookup table, as I explained above.

A spreadsheet will never be as good as a full simulator, but the time required to set up and test a full simulator far greater.

I set up the basics of a TK Sage calculator myself. It wasn't intended for widespread use, and is only in early stages of work, but I simply put in a column with RAND() for each cast, and called it a crit if RAND()<=(Crit Chance, including any skill specific buffs from a lookup table). If any ability Crit, Force Effusion was set to 2, and the next two abilities costs were halved.

My weaken mind DoT was poorly implemented because I stopped working on the calculator before settling on how to display it or determine when it crit. I think in my alpha I just assumed it would crit a fixed number of times during its period. If you know your crit chance and the number of ticks, you can arrive at an average and use that to either tell you how many times to cast TT faster, or, as Laguna said, to calculate an average cast time of TT that takes into account those fast-cast procs.


RE: Primer on calculating DPS stat weights - lostdummy - 02-08-2012 08:25 PM

(02-08-2012 01:17 AM)LagunaD Wrote:  - You can calculate the rate of Affliction criticals, hence the rate of Lightning Barrage procs, hence the average cast time of Force Lightning.
- You can calculate the rate of all criticals from the rate of attacks, hence you can calculate the uptime of the Lightning Effusion proc, and you can reduce the average cost of affected abilities accordingly.

It is more complicated when procs affect the actual selection of abilities, but this circular dependence can be handled by interpolating a lookup table, as I explained above.

A spreadsheet will never be as good as a full simulator, but the time required to set up and test a full simulator far greater.

Well, I know how I can do this in spreadsheet - in fact, I did it long time ago ( http://sithwarrior.com/forums/Thread-DPS-Excel-calculator-for-Sorcerer-Sage )

But I still hope it would be possible to actually calculate DPS/damage using just formulas, without iterative circular calculations in excel. And by "just formulas" I mean way to calculate end result (DPS/damage) based on input ( gear stats, talents, playstyle/rotation) in deterministic way, by using any number of formulas, but in "forward" manner: without circular references and iterations. Thus you would always get same result with same input.

Currently in my excel, I must use circular references. Your example above also mention circular dependencies, and I'm not sure all could be solved by lookup tables. Main problem for circular dependencies are resource constraints.

Example is "instant" ChainLightning spell for Sorcerer, which is in most cases with better DPCT than fillers like FL or LS - but if used freely, it eats too much force. You can calculate by formula how many CL you can use and still keep enough force for FL as filler till end of fight. But then when you use any number of CL, you reduce number of FL, which not only reduce available force, but also reduce possible number of "instant" CLs (since it was "wrath" proc effect from FL that enables instant CL in first place). It also increrase interdependencies fact that those "wraths" are also used by higher DPCT spells like CD, before CL.

For each of those "dependency" problems, I can easily set formula to determine "solution": how many CL to leave enough force for FL, how many CL+FL to still have enough wraths for CL and CD, how many CL+FL to fill entire allowed time (and in fact I use those as "starting" values for iterations in my excel). Problem is that all of those and others conditions need to be met, and combined formula to satisfy all conditions and gets best DPS result is hard to come by.

Thus I will be very interested if someone come by solution for Sorcerer DPS solely based on formulas without iterations and circular references. My current excel solution is middle ground between such pure formula based solution and brute force simulation ;p


RE: Primer on calculating DPS stat weights - Gorlough - 02-08-2012 09:08 PM

Problem here is, that we HAVE circular dependencies.
The only way to get a halfway solid result, is to simulate for a constant set timeframe or against a constant pool of hitpoints. The first version would give you numbers on DPS, the second one would give you the time to down a mob, using your values (TPK: time per kill).
I personally would prefer the TPK over the DPS calculation as it also might return the 'burstiness', if lower hitpoint pools are used.
Additionally you could enter mob characteristics like Armor, or rotation characteristics like armor penetration or accuracy against a defense value.

Edit: Do that combat simulation for lets say 1k times to get solid values


RE: Primer on calculating DPS stat weights - lostdummy - 02-08-2012 09:38 PM

(02-08-2012 09:08 PM)Gorlough Wrote:  Problem here is, that we HAVE circular dependencies.

Even with problems with circular dependencies, you can have straightforward formula solution. I gave few examples above.

Actual problem here is that, while each separate circular dependency may not be hard to solve by formula, making all of them solved at same time is beyond my abilities ;p

(02-08-2012 09:08 PM)Gorlough Wrote:  The only way to get a halfway solid result, is to simulate for a constant set timeframe or against a constant pool of hitpoints.

Nope, its not "the only way". There is middle ground between simulation and pure formula based calculation, and that is already mentioned excel that use formulas, but also use iterative circular calculations when needed.

Actually, for Sorcerer/Sage we already have 2 out of 3 possible "Ways":
1) Simulation: http://sithwarrior.com/forums/Thread-Simulationcraft-for-Sage-Sorcerer
2) Iterative calculation: http://sithwarrior.com/forums/Thread-DPS-Excel-calculator-for-Sorcerer-Sage

What we miss is:
3) Pure calculation - without circular iterations

When you compare iterative calculation to simulation:
a) harder to model and add new mechanics or interaction
b) have less variations in results, need less time to get reliable results
c) can calculate more reliable stat weights (with lower deltas)

And if you would compare "pure calculation" to "iterative calculation", you would have same differences, increased:
a) MUCH harder to model and add new mechanics or interaction
b) have NO variations in results, INSTANT reliable results
c) can calculate PRECISE stat weights


RE: Primer on calculating DPS stat weights - Gorlough - 02-09-2012 04:04 AM

(02-08-2012 09:38 PM)lostdummy Wrote:  And if you would compare "pure calculation" to "iterative calculation", you would have same differences, increased:
a) MUCH harder to model and add new mechanics or interaction
b) have NO variations in results, INSTANT reliable results
c) can calculate PRECISE stat weights

While it is a nice thought:
a) I'd dare to say impossible
b) no variations, yes, instant, yes, reliable no
c) precise maybe, usefull, no

Point is, there is no exact mathematical solution to this problem and anything you'd get out of a hypothetical one, would be simply worthless.

Even using simulations, you're only able to find tendencies for a optimal distribution. But the moment you switch one variable (mob, skill, stat, whatever) out - you might be completely wrong again.