Elitist Jerks
Register
Blogs
Forums


Go Back   Elitist Jerks » User Interface and AddOns

Reply
 
LinkBack Thread Tools
Old 03/06/09, 2:49 AM   #1
Tifordin
Von Kaiser
 
Draenei Paladin
 
Khaz'goroth
TimeToExecute Addon

TimeToExecute Addon

TimeToExecute

Current simplistic interface:



What is it?
TimeToExecute is an addon that aims to estimate how long it will be before a boss reaches execute range, and additionally how long before it dies. This was originally aimed at mages with Molten Fury as a tool to assist in deciding when to use addons, however it would also have applications for any of the various other classes that receive a damage bonus against targets below a certain health percentage.

Unlike other addons (the only similar one I could find being TimeToDie), TTE includes an execute range timer, and has a bit more maths involved in producing its estimates.

How does it work?
Using UNIT_HEALTH events, generated a maximum of roughly 3-4 times per second, TTE builds up a log of hitpoint values for the current target over time. Picture it like a point graph of health dropping over time. Using a simplified linear regression algorithm, TTE performs statistical analysis on all the points to determine a "line of best fit" (and hence an approximate rate at which the boss is dying), and extrapolates times for execute range and death.

The algorithm is one of the most simplistic possible, as the performance hit to move to a more accurate method would be non-negligible. As it stands, there is no noticeable reduction in framerate, even with many data points.

How is it unique?
Because of the way it determines its estimates (ie. based on the last X data points), the length of recent data points that it keeps can kept constant (e.g. the last 20 seconds of combat), and therefore the estimate will cope with changes in DPS, and constantly readjust its estimates based on recent activity. This is arguably more useful than a straight extrapolation between starting health and current health (which is the method TimeToDie uses).

In layman's terms, this means that it will be constantly giving you the best possible estimation, based on the current rate at which your raid is killing the boss, a value which might fluctuate over time.

The following image demonstrates this distinction visually:



The grey markers (and the first marker) indicate health points that TimeToExecute is not taking into consideration for its estimation. In this case TTE is taking the most recent 11 data points into consideration - this is for the sake of demonstration only - and configurable in the addon settings. The blue line indicates visually how the TTE estimate is found, and the red line the TimeToDie estimate. The "current time" is indicated. As you can see, the resulting estimates are different, and arguably TTE is more accurate. It should also be noted that the TTE line (blue line) will always be a "best fit" line for the included data points - it will be just as useful in the case where the actual rate of health loss is fluctuating or changing, and the estimate will constantly be readjusting to changes in DPS.

Why should I use it?
As stated above, the primary motivator for developing TTE was as an extra source of information for proper cooldown usage/timing on my mage. If you're interested in squeezing the absolute maximum out of your cooldowns, and are of a class that benefits from an "execute range", then this addon will likely help you in this regard. The addon also has merits tracking enrage and hard-mode targets for raid leaders.



Disclaimer: While this addon is 100% functioning, and does what you'd expect, it's still very much under development. I encourage others to check up on my math, and report bugs. I'm also interested at this stage in things that you would like to see out of TTE. More configuration/customization?

Here is a list of features I'd like to add at some point in the near future:
  • Some form of colouring for the squares which are currently white. Ideally based on the simple rules mentioned above, the colour would be a continuous indicator of how appropriate it would be to use addons at that particular point in time.

Current limitations:
  • Only tracks data points on your current target (if they're an enemy), and all data points are wiped whenever the target is changed.

Last edited by Tifordin : 09/01/09 at 6:53 PM.

Offline
Reply With Quote
Old 03/06/09, 7:34 AM   #2
Jayde
Great Tiger
 
Jayde's Avatar
 
Night Elf Warrior
 
Silvermoon (EU)
Looks like a cool add-on, and good for timing personal cooldowns and such.

However, I would be curious if it could be extended to also function as a rough guide to maximizing Heroism usage as well? Obviously on shorter fights, waiting until execute range is too late, but getting a specific look at how to squeeze Heroism in to the last second (to get the most out of it) is a bit unscientific at this point. (I typically use previous kills as reference and aim for targets based on that.)

If one were to be able to specifiy rough post-execute range damage multipliers (e.g. raid DPS will go up by roughly X%) and Heroism multipliers (raid DPS will go up by roughly Y% with Heroism up) it should be possible to calculate roughly when you are 45-50 seconds away from the projected end of the fight.

Although any multipliers would be somewhat ballpark, and dependant on class composition, it still would be a lot more accurate and scientific than guessing.

Offline
Reply With Quote
Old 03/06/09, 11:43 AM   #3
duhwhat
Piston Honda
 
Undead Warlock
 
Area 52
Excellent idea. I would suggest implementing audio feedback or scrolling combat text integration. I currently use a combination of Mik's Scrolling Battle Text and TimeToDie as a warlock for two separate functions: 25% execute warning (via Mik's) for Drain Soul, and 1 minute to die (using TimeToDie) for use of the Infernal.

If your addon could play a sound, or better yet, feed info to Mik's regarding 1 minute to die (obviously with some throttle control for large HP pools that may fluctuate) a lot of warlocks could get rid of TimeToDie or possibly even MSBT.

Offline
Reply With Quote
Old 03/06/09, 11:51 AM   #4
Trevear
Von Kaiser
 
Trevear's Avatar
 
Night Elf Rogue
 
Elune
You know the function is non-linear so why not use Exponential OLS? LUA has a Log function built into it.

Cheers.

"You think we're fly, but we levitate." - "Rockstar" by N.E.R.D.

Offline
Reply With Quote
Old 03/06/09, 2:02 PM   #5
Har
Piston Honda
 
Draenei Hunter
 
Drenden
Excellent addon! Many classes could use this to reduce the time spend in mana regen. I'd like to support an exception to your prediction algorithm that would realize when heroism is popped, measure the increase in the drop rate of the boss's health, and reduce the final kill time accordingly. As I understand it, the addon will currently show a much shorter kill time during heroism, and will then bounce back to something more accurate after heroism is depleted.

Also, when you're finishing up the feature to retain data when switching targets, consider adding a short menu of all boss targets in targeting range that would allow people to set the addon to watch all the bosses they are fighting (like in sarth + drakes).


Offline
Reply With Quote
Old 03/06/09, 4:56 PM   #6
Tifordin
Von Kaiser
 
Draenei Paladin
 
Khaz'goroth
Originally Posted by Jayde View Post
However, I would be curious if it could be extended to also function as a rough guide to maximizing Heroism usage as well? Obviously on shorter fights, waiting until execute range is too late, but getting a specific look at how to squeeze Heroism in to the last second (to get the most out of it) is a bit unscientific at this point. (I typically use previous kills as reference and aim for targets based on that.)

If one were to be able to specifiy rough post-execute range damage multipliers (e.g. raid DPS will go up by roughly X%) and Heroism multipliers (raid DPS will go up by roughly Y% with Heroism up) it should be possible to calculate roughly when you are 45-50 seconds away from the projected end of the fight.

Although any multipliers would be somewhat ballpark, and dependant on class composition, it still would be a lot more accurate and scientific than guessing.
It seems this will likely be where this addon comes into its own if I can get this implemented in a useful way. The math isn't (too) tricky, the hard part is getting an accurate value for DPS increase during Heroism/Bloodlust. Is it going to be 30%? Less? More? Is there any EJ theorycraft available that can help me out with this one? While more difficult (and would vary completely based on how many "execute" classes you had in the raid), we could also take into consideration a certain percentage DPS increase below 35/20%. Of course the shammy could just make a judgement call to pop it at 60 seconds left instead of 40 if there were lots of those classes.

Originally Posted by duhwhat
Excellent idea. I would suggest implementing audio feedback or scrolling combat text integration. I currently use a combination of Mik's Scrolling Battle Text and TimeToDie as a warlock for two separate functions: 25% execute warning (via Mik's) for Drain Soul, and 1 minute to die (using TimeToDie) for use of the Infernal.

If your addon could play a sound, or better yet, feed info to Mik's regarding 1 minute to die (obviously with some throttle control for large HP pools that may fluctuate) a lot of warlocks could get rid of TimeToDie or possibly even MSBT.
I think I could easily enough add custom events into the addon (e.g. play foo sound when kill timer with heroism reaches X seconds), but it's not going to be top priority right now.

Originally Posted by Trevear
You know the function is non-linear so why not use Exponential OLS? LUA has a Log function built into it.
I chose the linear solver because it involved no large matrix math, and provided a very high runtime for something which (I believe) doesn't need to be highly accurate. The estimate is constantly fluctuating, the addon is just going to be giving a ballpark anyway. Does it matter if it fluctuates more accurately?

Having said that, if you can point me in the direction of an algorithm that will do it more accurately without requiring a matrix math library, and will do it with close to linear runtime, be my guest! I will gladly implement it

Originally Posted by Har
As I understand it, the addon will currently show a much shorter kill time during heroism, and will then bounce back to something more accurate after heroism is depleted.
This is correct. Although depending on how long you set the history, it won't "bounce" around, rather it will transition from one to the other. This is because it is trying to apply a line of best fit to data which would be better modelled by two lines, or a curve. (At least until all the old data is cropped up till the point where Heroism started). That probably sounds confusing, but just picture what a graph of boss health would look like 20 seconds after heroism was popped, assuming the graph only showed the last 40 seconds of combat.

Originally Posted by Har
Also, when you're finishing up the feature to retain data when switching targets, consider adding a short menu of all boss targets in targeting range that would allow people to set the addon to watch all the bosses they are fighting (like in sarth + drakes).
I think this is definitely doable. Would take a bit of work... But doable

Offline
Reply With Quote
Old 03/09/09, 8:01 PM   #7
Tifordin
Von Kaiser
 
Draenei Paladin
 
Khaz'goroth
With the new Bloodlust/Heroism wisdom ([Math] Bloodlust/Heroism timing), the merits of adding Heroism optimality seem kind of void. However I shall work on including an automatic percentage-based configurable adjustment so that the estimates take into account increased DPS at 35/20%.

In terms of math for percentage DPS increase, I know that fire/frostfire mages get basically a direct 12% DPS increase on all their relevant spells - but what of classes like ret pallies and DPS warriors? How much is their DPS likely to increase in execute range? If this information was known the addon could automatically configure itself based on raid composition.

Offline
Reply With Quote
Old 03/10/09, 2:31 PM   #8
Kargos
Von Kaiser
 
Kargos's Avatar
 
Troll Hunter
 
Uldum
Hunters also benefit from execute range with Kill Shot

Currently it can be fired every 15 seconds, glyphed down to 9 seconds. The dps gained is relative to the length of execute time and current gear set up of the individual hunter.

Offline
Reply With Quote
Old 03/11/09, 1:08 PM   #9
Jayde
Great Tiger
 
Jayde's Avatar
 
Night Elf Warrior
 
Silvermoon (EU)
That thread had a basic breakdown towards the bottom of the first page by Roywyn.

[Math] Bloodlust/Heroism timing

Originally Posted by Roywyn View Post
Thinking about the models used, it seems the important factor is whether Heroism is a bigger percentage DPS increase for a class above or below execute range. If it's all the same then the Heroism timing wouldn't matter.

Heroism is all the same to Mages, same for Rogues. Death Knights slightly prefer a late Execute, because more haste > more Killing Machine procs > more Frost crits > those (and Oblit) hits are improved by their execute abilitly.
(Warriors likely prefer a late Heroism if that gets their swing timer closer to 1.5s to allow better execute spam. I'm not sure how desirable Executing and Execute spam is right now for Warriors, however.)
Hunters and Paladins prefer an early Heroism, since their Execute ablities are on timers and woven into their cycles. So, they don't scale with haste, meaning that the absolute benefit from Heroism is always the same, hence the relative benefit is better at the beginning.

Also, Warlock Executes are getting overhauled for 3.1 and many other classes change as well. So this can easily change. Taking Shizzle's table and trying to get that information into it would look like this:

ClassspecExecute?DPS gain from 30% hasteNotes
RogueMutilate/CombatNo~20%Whites damage and poisons scale, yellow damage and poisons scale via Focused/Potency
RogueSubtlety+20% damage <35%~20-30%White damage and poisons scale, yellow damage group-dependent - if the group crits more from haste, then HaT damage will scale with haste.
MageFire/Frostfire+12% damage <35%~27%LB is a DoT; LB/Pyro will hit the 1s GCD cap
MageArcane/FrostNo~29/30%Mostly 1:1 haste scaling, Arcane minorly impacted my mana cost incease
Warlock 3.137+ DemoHasted Soulfire cycles <35%~25% above, ~30% below executeNumbers are guesstimates; anad without pet, which doesn't matter for us
Warlock33+ Affli+12% (shadow) damage <35%, (Drain Soul) Same scaling above and below Execute without Drain Soul
Hunter/Paladin Kill Shot/Hammer of Wrath below 20% Those have a cooldown; early Heroism is a bigger % increase (same absolute)
Death KnightFrost+12% IT/HB/OB/FS below 35% Death Knights very slightly favour a late Heroism (Haste improves IT/HB/FS crit)
Warrior Execute below 20% Heroism scales by getting your swing timer to 1.5s so that you can Execute every GCD

Offline
Reply With Quote
Old 04/06/09, 11:37 AM   #10
Lordingo
Glass Joe
 
Blood Elf Paladin
 
Dragonmaw (EU)
One thing that could be useful would be the option to have it track for focus rather than playertarget, if this is possible.

Not sure how much use a healer would get out of this addon, but as a tank i sometimes have to switch off my main target, and it would be convenient to still have the information then.

Offline
Reply With Quote
Old 04/06/09, 1:32 PM   #11
Feist-Mok
Bald Bull
 
Feist-Mok's Avatar
 
Human Rogue
 
Ysera
Is it possible to modify this to display time left to Die rather than till Execute range, for those of us (raidleaders) looking for that?

Would be helpful for leading 6 Min. Malygos in assessing things.

Originally Posted by Actovision View Post
If BB trends were to be taken as indicators of where the country is headed, then the trajectory of America would seem to be towards a technocratic, mercenary, debtor nation of violently atheistic, unmarried, childless hyper-polygamists with strong social safety nets. I can't wait!

United States Minor Outlying Islands Offline
Reply With Quote
Old 04/06/09, 8:21 PM   #12
Tifordin
Von Kaiser
 
Draenei Paladin
 
Khaz'goroth
Originally Posted by Feist-Mok View Post
Is it possible to modify this to display time left to Die rather than till Execute range, for those of us (raidleaders) looking for that?

Would be helpful for leading 6 Min. Malygos in assessing things.
There are two timers. The top displays execute time, the bottom displays kill time.

I've been a bit snowed under at work (and no longer play my mage, so motivation for further development has dried up a little). However, I have some ideas for handling things such as heroism, they will just need a few hours' work when I get the chance.

One thing that could be useful would be the option to have it track for focus rather than playertarget, if this is possible.
This would be a relatively simple change. I don't think this will be too useful as the default, but I could add in a configuration setting to track focus if set, otherwise target.

Offline
Reply With Quote
Old 04/28/09, 11:25 AM   #13
TimWischmeier
Piston Honda
 
Blood Elf Paladin
 
Kult der Verdammten (EU)
I would like to drop a feature request here, even if you might not have the time to implement it.

Is there any possibility to show the timers not based on your current target but on DBM health bars? I play a holy paladin and lead raids. It would be very helpful to have "timers" for mobs and bosses dying and you might see that it is not that feasible to target away from the MT .

I see that DBM integration would be quite difficult because it porbably does not send health events. But perhaps you could add an option to reaction on focus target events instead.

Icing on the cake would be integration into CompactBars: CompactBars

Offline
Reply With Quote
Old 04/28/09, 7:25 PM   #14
Tifordin
Von Kaiser
 
Draenei Paladin
 
Khaz'goroth
Should note that as of 3.1.0 Blizzard has made some unknown change which has broken things. Quite frustrating as I was using a very simple set of events etc. It will throw a single error the first time you enter combat every time you load up your interface, then die and go silent.

I will be working on a fix this weekend.

It seems like a lot of people want the ability to be able to "lock" a timer to a particular mob. How about some sort of a button that literally "locks" the addon to that particular MobID until it dies?

Also, if anyone skilled in creating and configuring WoW addon interfaces wants to take a look at improving my ugly white boxes, I'd be very grateful just send me a PM and I'll set you up with SVN access.

Offline
Reply With Quote
Old 08/31/09, 9:13 PM   #15
Tifordin
Von Kaiser
 
Draenei Paladin
 
Khaz'goroth
I've released a new version (0.2.4) which adds a number of niceities:
  • Added a "hide when inactive" feature, which ensures the timers are only shown when you have an enemy targetted.
  • Added the ability to lock the frame in position.
  • Added the ability to resize the timers, and change the font size.
  • The execute timer can now be hidden by setting Execute Percentage to 0%.

I appreciate feedback, if any bugs are discovered, or if there are any killer features that you think would be useful.

While I originally created this addon to help manage cooldowns on my mage (which I no longer play), I've recently discovered it to be very useful from a raid leader perspective, as (when combined with boss mod timers) I can pretty accurately tell whether or not we're going to hit an enrage or similar.

In particular, it has been helpful for:
  • Knowing whether to call a wipe on XT hard mode due to a dead DPS or two with no rezzes available.
  • Knowing whether or not to call a wipe on a Hodir rare cache kill.
  • Knowing whether we can afford to put extra DPS onto guardians for Yogg P3.
  • Seeing our first Ignis speed kill coming from a mile away (OK, not particularly useful, but interesting nonetheless).

There are countless other examples - admittedly a lot of the time it's not gamebreaking stuff, but when you're leading a raid (and particularly deciding whether or not to continue an encounter, or wipe and try again), it's helpful to have all the information you can get.


Again, it's worth stating that this addon is unique in the way it calculates time to boss death. The addon only considers recent activity on the boss, and performs basic statistical analysis to determine expected time of death. Other addons (in particular TimeToDie) typically only consider the current boss health, and the starting boss health. Using this method, the estimate does not flexibly adjust in the case where a DPS dies, heroism is used, DPS must switch to another target briefly, etc etc.


EDIT: I've also added a diagram to the first post indicating the distinction to TimeToDie.

Last edited by Tifordin : 08/31/09 at 9:45 PM.

Offline
Reply With Quote
Old 09/01/09, 2:56 PM   #16
Skylinee
Glass Joe
 
Skylinee's Avatar
 
Night Elf Hunter
 
Thunderhorn (EU)
A few requests. Make a wowace thread under the General Addons sub-forum. Second, please make it possible to hide the background color and change the font color. Great addon so far, very accurate.

Edit: Please support Minutes:Seconds format aswell.

Edit2: Doesn't seem to work on Algalon, possibly because he's considered Neutral.

Last edited by Skylinee : 09/01/09 at 5:52 PM.

Offline
Reply With Quote
Old 09/01/09, 7:13 PM   #17
Tifordin
Von Kaiser
 
Draenei Paladin
 
Khaz'goroth
Originally Posted by Skylinee View Post
A few requests. Make a wowace thread under the General Addons sub-forum.
Good idea - done.

Originally Posted by Skylinee View Post
Second, please make it possible to hide the background color and change the font color.
Cheers for the feedback - these interface tweaks are easy to code, but tedious all the same (and therefore often put off as long as possible). Comments like this encourage them to get done :P

Originally Posted by Skylinee View Post
Edit: Please support Minutes:Seconds format aswell.
The timer should switch to a Minutes:Seconds format for any time estimate over a minute. Anything under a minute is displayed in the Seconds.TenthSeconds format. This can be easily tweaked, if you think there's a better way of displaying this information?

Originally Posted by Skylinee View Post
Edit2: Doesn't seem to work on Algalon, possibly because he's considered Neutral.
Hmm, that's frustrating; yes, the addon only works on enemy targets. However, if he starts out neutral, then changes his alignment to enemy at the start of the fight, re-selecting him should then track him as normal, I believe. Any feedback on this would be appreciated, though.

Offline
Reply With Quote
Old 09/01/09, 8:44 PM   #18
Skylinee
Glass Joe
 
Skylinee's Avatar
 
Night Elf Hunter
 
Thunderhorn (EU)
Originally Posted by Tifordin View Post
Good idea - done.


Cheers for the feedback - these interface tweaks are easy to code, but tedious all the same (and therefore often put off as long as possible). Comments like this encourage them to get done :P


The timer should switch to a Minutes:Seconds format for any time estimate over a minute. Anything under a minute is displayed in the Seconds.TenthSeconds format. This can be easily tweaked, if you think there's a better way of displaying this information?


Hmm, that's frustrating; yes, the addon only works on enemy targets. However, if he starts out neutral, then changes his alignment to enemy at the start of the fight, re-selecting him should then track him as normal, I believe. Any feedback on this would be appreciated, though.
Sorry about the minute:second format, it's working as intended. I was just too quick about this before checking properly. Algalon stays neutral through the fight though, so it doesn't work re-targeting him unfortunately.

Offline
Reply With Quote
Old 09/02/09, 2:38 AM   #19
Tifordin
Von Kaiser
 
Draenei Paladin
 
Khaz'goroth
I snuck a sneaky one-line change in with a few other changes for version 0.2.5. Instead of checking if the selected target is an enemy, it checks if the selected target is not friendly. As I couldn't see an API call for "is neutral", I'm hoping that "not friendly" is effectively the same thing. Hopefully that solves the Algalon problem, although really it was just a stab in the dark. Feedback appreciated! (My guild is not currently at Algalon).

EDIT: Have also added the ability to track focus instead of target. This behaviour can be turned off in the configuration if not required/desired.

Last edited by Tifordin : 09/03/09 at 7:15 AM.

Offline
Reply With Quote
Reply

Go Back   Elitist Jerks » User Interface and AddOns

Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
WoW Addon Development - how to? Moogul User Interface and AddOns 13 01/01/08 11:47 AM
Addon for afk Astmathic User Interface and AddOns 6 06/27/07 5:10 AM
Castbar Addon Toukon User Interface and AddOns 4 05/12/07 1:19 PM
Which addon is this? Bias User Interface and AddOns 3 04/17/07 1:19 PM
Looking for an addon Astmathic Public Discussion 4 09/20/06 11:38 AM