Yes I know. Can you give me a list of optimizable constraints that would be useful? Some ideas I have would be minimum range on used spells, threat reduction on used spells (min or avg?).
I think it'd be preferable and more flexible to simply allow the user to fix some talents as required. You could probably come up with individual constraints to ensure the Flame Throwing, Burning Soul, Imp Scorch, etc are always taken....but it strikes me as a less general solution without a major benefit.
Hmm, the ones I can think of is as you mentioned, though I'm not sure it's worth using a float constraint here since the values are pretty discrete; at least range and threat reduction/interrupt reduction. Or actually interrupt can already be handled by Interrupt Frequency.
On another note I've been playing with various talents and I noticed some inconsistency between what Comparisons>Talents shows for dps increase and what actually happens when you toggle the talents on/off eg. Combustion (seems to be overvalued in Comparisons?) and Master of Element undervalued.
EDIT: the problem is it's hard to quantize and give a numeric value to what a minimum range/threat reduction you want. These talents are taken for convenience and the dps increase they provide when they help.
It doesn't have to be completely quantifiable. It's ok to say that a specific talent has to be present. I just need to have it expressed in some way to feed to the optimizer so it can check whether that is satisfied or not. Might be an optimization value for number ot talent points in relevant range increasing talents. I just want to avoid making one for all talents there are, this should only be needed for the intangibles. But I need to have it expressed in some way so that the optimizer can work with it.
I think easiest and most reasonable would be to have it optional enforcment certain talents if their corresponding spell is being casted with the selected spec. Say if the spec casts fireball or scorch, it has to take flamethrowing and burning soul. So if I check "enforce flamethrowing" it will always be taken with specs that use the relevant spells, but will not be enforced on specs that just cast frost or arcane spells. Maybe even a more generic "enforce range talents", "enforce X% minimum threat reduction" (if set too high maximum possible threat reduction will be taken) and "enforce pushback protection".
Do we need one for pushback protection since that is actually modeled as part of dps already? I guess we do since you might want to optimize for a fight without interrupts while still having the talents for fights where it's useful. How do you propose this would be best handled? Enforcing maximum points spent, by how many points are invested? And the important part is that it is conditional on which spells are actually used. If someone can come up with a list of which talents/talent categories would be worth adding that would help a lot.
Here's a question Kavan... do you model obscure talents, such as (for example) the mana return from resisted frost spells with Frost Warding? Do you model the increased survivability from the same talent (since 30% of the frost attacks would not even take away from the damage shield)? It seems dubitable, since no matter how much frost damage I set myself taking, and no matter how high I set survivability, the rotation never asks me to cast Frost Ward.
If you're actually properly modeling all the effects of all the talents, it's conceivable to add constraints on the effects rather than on the specific talents.
But I'm afraid there are spells that are very difficult to properly model. Rather than try and model everything in the fight (which doesn't just make it harder for Kavan, it makes it harder for us... it's a lot easier to make a setting 'require Frost Wardx2' than it is to set survivability as high, input the expected frost damage incoming, and hope that the numbers add up to 'I want to ensure those points are important'), I believe it would be better to give more direct control over the talents we want in a build.
As far as the GUI... why not duplicate the talent pane. Mark or color code the talents as DPS, Utility, and Survivability. But rather than selecting specific points to put into a talent, have the player choose the priority of the talent. Priority would be modeled internally as a 0 to 1 float... visibly, it could be something like 'high, medium, low, ignore' (1, 0.7, 0.4, 0.1).
For talents that are properly modeled, they would default to 'high' priority (as in, the DPS increase from that talent is fully counted when weighting the talent). A talent that is fully modeled, but gives crap DPS, might still be skipped even at 'high' priority.
For talents that are incompletely modeled (or not at all), then the priority is normalized to the best DPS talents. For example Fire Throwing (partially modeled, since what spells it affects is known) would be scaled to be just as important as Living Bomb for a fire spec, assuming it was set to High priority (1). If it was set to Low priority (0.4), then it will only be taken if it doesn't interfere with a useful talent.
Due to the unbalanced value of one point talents (Living Bomb, Frost Elemental, pre-nerf Arcane Barrage, Icy Veins) it might be better to consider only multi-point talents when normalizing the value of non-modeled talents.
The end result is that players can look at the talents, adjust the balance of modeled talents if they want, and adjust the priority of unmodeled talents to their liking. An unmodeled talent would get scaled in value to the best (multi-point) modeled talent, multiplied by the user's priority, and possibly adjusted again based on whether the affected spells are part of the rotation. The user gets direct control over the talent tree (setting Flame Throwing to high pretty much ensure it will be taken in any fire build), Kavan has a much easier time with modeling (he only has to worry about what spells are affected by a talent, rather than exactly how much DPS/survival/utility it provides under contrived fight circumstances).
And, let's face it... players are irrational. Maybe Magic Absorbtion is a shitty talent, but they really want it so they can brag about having over 600 FR for Sapphiron. This method is easier to do, and it gives players more direct control of their talents... just like locking equipment when doing the optimizer.
For Frost Warding the effect on Ice Armor is modeled. Use of Fire/Frost Wards is not modeled so that part of the talent has no impact.
While I'm not completely comfortable with the above suggestion you do bring a very good point. At the end what it boils down to is that optimizer tends to pick up any dps increasing talents no matter how minor they are. Maybe what we really need is an option to specify how many points should be put into non-modeled/partially modeled talents. That way you force the optimizer not to use modeled but low dps talents and you're free to rearrange those leftover talents as you see fit.
I don't think you can do a method where you just 'set leftover points'. The issue is that unlocking later tiers requires minimum investments... if you have a strong DPS talent next to a strong utility talent, no setting of 'free points' will allow the optimizer to know to skip the DPS talent to leave points for the utility talent.
A player needs to be able to prioritize specific talents. And the Optimizer needs to be able to assign a value to utility talents. I think giving a fake 'DPS' value to utility talents is the proper solution that keeps the optimizer simple. And allowing players to set the weights of different utility talents (I need Flame Throwing, but Burning Determination is a waste) gives them control over their spec without making the Optimizer worthless.
If you set 'free points' then I don't see how the optimizer can ensure that the RIGHT points are free. Points have to be available at a specific tier for the player to be able to pick the utility points they want, and for a tightly optimized spec (such as is common right now, since mages have to go 18 into arcane to reach TtW) that's often not possible. On the other hand, you don't want a player flat out assigning points, because then you can't show them possibilities that they just made impossible... such as choosing utility points that make TtW unreachable, so they don't even realize what they are missing.
Even utility talents need to be weighted, so they can be looked at fairly by the optimizer. The user should influence the choice (even to the point of making certain utility talents so attractive that the optimizer will almost certainly take them), but flat out choosing talents that the optimizer must work around is just as sub-par as when players select specific gear+gems for the equipment optimizer.
It's very expensive to change gear, so it makes sense to allow players to lock the gems in gear... even now, regemming with blues, it can cost 300g to regem an item, and there are many players who won't do that for a mere 5dps increase. But for talents, it's one 50g cost and you can change the entire thing, so it does not make sense to set hard rules about talents that absolutely cannot be overridden. Allowing the optimizer to reach a little farther, to get an unexpected improvement, is the whole point of using it.
While giving the user complete control over value of talents would be ideal, I'm not sure I want to invest time in developing gui for it. For now the talent tree nondps free points requirements seem to do a good enough job from what I tested.
I was doing some quick checking for an 80 second sarth 3d 10 man run and it appears that FB and FFB spec dps go to zero when molten fury uptime is less than 40 secs with heroism enabled on 2.2.0b6. Please let me know if if you can't recreate this and i'll upload my talents and character file.
Kavan, I manually added Flare of the Heavens and correctly set its stats to 120 crit and 850 spell power/10 seconds. I assumed it was a 10% proc, so I used the 5th Spell Power (10 sec) field, just as Sundial uses. It appears to model it correctly as far as DPS listed for the item is concerned, but when I bring up the Sequence Reconstruction chart, it doesn't show it anywhere on there. It lists it at the top with a highlight color, but it doesn't show its actual use anywhere during the fight.
I know it's being calculated, and I know that On Use effects (such as Scale of Fates) are shown in Sequence Reconstruction for their duration of use, but are on cast procs not modeled like this?