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)
RE: Primer on calculating DPS stat weights - Kaedis - 05-17-2012 01:09 PM
I would recommend you guys take those questions to their respective class forums and threads. This is a primer for people to reference, not for discussing individual class or spec weights (that's why we have class forums and spec threads!).
RE: Primer on calculating DPS stat weights - lawphill - 06-13-2012 08:26 AM
been lurking for a while and never done any true theorycrafting. I have a background in computer science graphical models and maybe this is way off base, but let's see if anyone gets where I'm going and can help finish the thought.
An inherent problem in determining stat weights is that stats can effect rotation which can effect the stat weights. I'm not exactly sure how to model this but it seems like a relatively simple problem. There are lots of computer science algorithms for loopy systems (loopy belief propagation comes to mind). So is there any way to think of this system as a graphical model so that we could perform some kind of nice inference on the system?
Let's say we start off with some some basic stats and at each time point we have to decide stat weights and then based on that we could increase our stats and repeat the process until we hit some cap on the number of possible stats we could have (based potentially on top-tier gear).
The process for each iteration then would be a forward simulation of DPS. The simulation is composed of 2 parts, the particular spec's model for particular abilities and then the skill rotation. For a given time length there are a finite number of possible rotations, we can sample from that set of rotations and forward simulate DPS. The only problem is then the amount of time required to sample through the rotation space, which depends on how good of a sampler we can use. Once we've estimated the optimal rotation for a set of stats we can determine the stat weights.
Pros: Putting this in a graphical model theoretically allows us to make inferences about both optimal rotations and optimal stat weights. If we can do this in a Bayesian way then we can also incorporate our uncertain about what the optimal rotation should actually look like. The only parts that need updated involve the forward simulation process, everything else can be done automatically.
Cons: Needs to be instantiated as a graphical model. Sampling through rotation-space will be costly, only approximate.
More than anything I'm just interested if anyone here has thought about this from a graphical modeling perspective.
RE: Primer on calculating DPS stat weights - Kaedis - 06-14-2012 03:38 AM
Lawphill, back when I was more active on SWTOR's coding side, I was planning a project to integrate with Simcraft that would effectively do exactly that. See, the issue is, stat weights aren't very meaningful on their own, both because they are only valid when compared to other stats, and because not all stats directly compete. For most dps classes, there are only 4 stats, organized into two pairs, being Slot 1 stats (Power and Crit), which are on both Mods and Enhancements, and Slot 2 stats (Surge and either Alacrity or Accuracy (there are a couple classes that benefit from both, but they usually prefer one over the other)), which are present only on Enhancements.
What the module would do is have a defined range of budget for each pair of stats, based on the budget present say between Tionese and Campaign gear. It would start at one end of that range, with say 600 Slot 1 and 350 Slot 2. It would start at a defined guess for the balance point (say 50% of the budget to each of the stats in the slot), and run a SimC simulation with those stats. SimC will calculate stat weights for that build, and the relative weights define which direction the balance point is (ie the point of maximization for the system). Shift the Slot 1 stats by STAT_STEP_SIZE toward the stat with the higher stat weight and re-run the sim (could use a binary search algorithm here instead of you want). repeat until the stat weights cross (ie. the stat that used to have a higher weight than the other now has a lower weight). Take the one of the points on either side of that crossover point (ie. the point where you found they crossed and the point one back from it), and select the one which has a smaller absolute difference between the weights as the balance point.
Now repeat for Slot 2 stats. Since Slot 2 and Slot 1 stats can affect each other, you may need to re-run the Slot 1 iteration to verify/adjust the balance point, but past there it shouldn't matter too much with a decent step size (say 10).
This now gives you a since point on the graph, with an X/Y for Slot 1 and an X/Y for slot 2. Repeat at points over the budget range. Now you have a parametric plot of the balance point curves for each stat for that spec at any given budget level within the range available at end-game, which by optimization theory is also the maximization point of the system (ie. max DPS). Repeat for any other relevant specs for that AC (for example, Sorcs have 3 common PvE DPS specs).
The great thing is, these balance curves depend only on spec and class in question, not on the person's gear (since they take the person's gear level as their independent variable), so this sim (which would probably take quite a while to run) would only have to be run once, then rerun in the case of sizable changes to the SimC code base (example: major patch changes). The results could be summarized in spread sheet (with graph for visual inference), and if desired programmed into a web-based calculator that takes a user's stats, references built-in lookup tables from the output of the sim's runs, and recommends stat shifts to hit the balance curves. Since it would just referencing pre-programmed lookup tables, the computational cost would be negligible.
You're free to pursue something like that if you wish, I don't really intend on doing it anymore.
RE: Primer on calculating DPS stat weights - dipstik - 10-16-2012 05:19 AM
hey all, been thinking about doing a dps model for accuracy, but having trouble seeing the rolls:
so we know that operation bosses have 10% defense from melee/ranged attacks, so i want an accuracy matters term, which would be fraction of damage coming from melee/ranged attacks. iw ould also want to accound for offhand melee/ranged attacks haveing lower base accuracy and need to account for those attack just by using a fraction.
what i am thinking is something like:
where h is average hit, p is bonus dmg from power, m is bonus dmg from main stat, mhacc the fraction of damage that comes from mainhand melee/ranged, acc is the accuracy of mainhand/normal melee/ranged, ohacc is the fraction of damage coming from offhand, oacc is the accuracy of offhand melee/ranged attacks, alam is fration of damage for which alacrity matters, and ala is the alacrity.
just trying to get some feedback before i start plugging stuff in and analyzing.
eventually i should be able to replace the h term with a sum, and have all the other portions of the model be for that particular hit, which has its own crit chance etc. based on skill tree...
i know the simulator already does a much better job of looking at all this, but i get board at work and like to play with numbers...
RE: Primer on calculating DPS stat weights - d0sman - 02-27-2013 11:39 PM
I'm sorry for late reply to this old topic, but here are few points I'd like to add :
- it's actually not meaningful to calculate exact value for each stat that would optimize your dps, since in game values are integers and theorical calculation would give you real values. Of course you could say that it suffices to take the round part of the result, but it's not actually clear (on a mathematical point of view) that the round part is the integer value that would optimize the dps. Especially if the function have rough variations with respect to variables. It seems to be the case here since there are some exponentials for critical ratings and stuffs...
- you actually don't need to compute exact value for each stat. The fact that stats take integer values simplifies A LOT the problem. You just have to test every possible combination of stats values (which is possible, since there is a finite set of such values) with some loops in a program. It's even simplier since you just have to take as parameters the number of each piece of stuff (for example Potent Mod would give you strength +53 and crit rating + 41).
Sorry for bad english.
RE: Primer on calculating DPS stat weights - Inox - 05-01-2013 01:24 AM
hello, I would like to calculate the damage of a skill X changing accurancy and power
using this formula:
but idk all values of the formula anyone can help me?
RE: Primer on calculating DPS stat weights - RuQu - 05-01-2013 01:38 AM
(05-01-2013 01:24 AM)Inox Wrote: hello, I would like to calculate the damage of a skill X changing accurancy and power
Most of those will come from your character sheet. Weapon tooltip from the tooltip, crit chance, buffs, etc. For the defensive values, those, obviously, will change, but as a first order guess you can just assume you were attacking your identical twin and use your own as well.
For the ability values, look at the ability Effect Details on Torhead. That will give the coefficient and various modifiers. Note that Tech and Force abilities will not have a value listed for amountModifierPercent, because they don't use the weapon damage. Use a 0 instead.
I don't know the new standardDamage and standardHealth values off the top of my head, but I know they are posted around here somewhere.
RE: Primer on calculating DPS stat weights - Inox - 05-01-2013 01:50 AM
yes ok about cit chance etc I knew the problem is datas about target, so I use my infos.
looking datas mm idk these:
dmg increasing buffs =? mean the knight buff ?
defender dmg reduction: i have 21.11% so I use 0.2111 right?
defender avoidance is the def rating?
av(min, max) standard dmg percents=?
av(min, max) amount modifier percets=?
sry for a lot questions..
ps: on the tooltip of torhead I see only min max nominal dmg and not of the stat scale coefficient