Healadin status thread

Topics: Rawr.Healadin
May 18, 2011 at 2:32 PM
Edited Jun 3, 2011 at 4:43 PM

Hey, as I continue to work on the Healadin module, I thought I would post what is implemented so far in to code (but not necessarily in the latest build), and what is on my agenda.  I started keeping notes for myself in the code, and will paste that here.  I will edit this post as I make updates.

I thought this thread was a good idea so people can find out what exactly is implemented so far, and can make suggestions.   I will try to note any assumptions the model makes, so that people are aware and can make suggestions if there is a better way.

Where a talent has more than 1 effect, I list them on seperate lines so I can mark each line DONE independently.

Basic logic of the model:

  • figures the total cast time and mana used for all the stuff we "have to cast" based on assumptions and the options tab.  (HS, Judgement, WoG, LoD, BoL, etc) 
  • use up the remaining time / mana with melee / HL / DL / FoL casts.
    • If there is not enough mana to fill in the remaining time with HL casts, fill it with a mix of melee attacks (to get more mana) and HL casts, and use up all mana
    • If we can fill in the remaining time with HL casts and some DL casts, figure out the perfect mix of that to use up all mana
    • If we can fill in the remaining time with DL casts and some FoL casts, figure out the perfect mix of that to use up all mana
    • If we have enough mana to spam FoL the rest of the time, just do that

updated 6/3:

 *Left to do: (in no particular order)
 *  Last Word(0-2) - 30% extra WoG crit per point, when target below 35% health
 *  Divine Favor(0-1) - increase haste/crit 20% for 20 secs.  3 min CD
 *  Daybreak(0-2) - FoL, DL, HL have 10% chance per point to make next HS not trigger its 6 sec CD.
 *  Tower of Radiance(0-3) - healing beacon target with FoL or DL has 33% chance per point of giving a Holy Power
 *  Glyph of Divine Favor
 *  Avenging Wrath
 *  Guardian of Ancient Kings
 *  T12 set bonuses
 *  Divine Plea: causes 50% heals.
 *Done, with assumptions (which can't be changed in the options tab):
 *  Speed of Light - assumes 3 points for Holy Radiance CD reduction.
 *  Assumes you are holy spec, so you get:
 *   - Illuminated Healing (shield on heals, Mastery ability)
 *   - Meditation (50% spirit regen in combat)
 *   - Walk in the light (+10% to all heals)
 *  Seal of Insight is always up
 *  Infusion of Light -0.75 cast time reduction is applied after haste.  Also a HL or DL can be cast before this procs again.
 *Not done, but no current plans to do:
 *  Crusade (0-3) - 2nd part - after killing something, next HL heals for 100% extra per point, for 15 sec.
 *  Blessed Life(0-2) - 50% chance to gain holy power when taking direct damage.  8 sec CD.
 *  figure hit into melee / Judgement mana regen - leaning towards not bothering to do this... * 
 *  Enlightened Judgements(0-2) - 1st part - gives +50% spirit to hit per point
 *Known shortcomings of the model:
 *  Crits often cause overheals.  Model does not take this into account.

Jun 4, 2011 at 4:20 PM
Edited Jun 4, 2011 at 4:52 PM

I just coded up something to try to address overheals on a crit - I added something to the options menu to discount a % of the heals from crits.  (with 100% not counting any heals from a crit, making it just like a non-crit heal).

Anyway, when testing this, I noticed something that I saw with a similar option I coded for Illuminated Healing.  IH is the shield thing from mastery, and it often is overwritten or expires.  When I adjust either of these, the values that Rawr calculates for Mastery or Crit jump up and down a bit.  They do not increase / decrease linearly as I would expect.  Often the value goes in the opposite direction that it "should" when I adjust one of these in 5% increments.  In larger increments they do tend to behave more in the direction I would expect, but the amount still seems inconsistent.

Anyway, has anyone else noticed similar peculiarities in other models, or have any advice for me?  I don't want people to discount Healadin results altogether because of this apparent "error" in crit or mastery values.

edit:  to clarify my concern:  If I decrease "Crit Overheals" in 5% increments from 100 to 0, then overall HPS goes up every time, in a consistent and expected amount.  The value of Crit SHOULD go up every time also, but sometimes it goes down, it is very eratic.

Similarly, if I increase IH effeciency in 5% increments from 0-100%, overall HPS increase as expected, but the value of mastery jumps all over the place. 

The odd behavior of the calculated values for crit and mastery concern me, and therefore would concern any Healadin users.  Any thoughts on why this is happening?

Jun 4, 2011 at 8:25 PM

This kind of problems are most easily seen on the Stats Graph, so if you don't have that implemented yet I'd suggest you do, it's just a few lines of code.

Other than that, this kind of problem is not that uncommon, but doesn't have any single cause. Sometimes it is a result of real disconinuities, sometimes it can be a result of basing results on overly discretized simulation data, sometimes it can be a result of using some fixed rng seed effect. In general looking at the Stats Graph can sometimes help get an idea of what is going on, but usually one has to dig quite deep to get at the root. Best is start disabling small component models to try to isolate where it is coming from, other than that it might be useful to look at some graphs showing spell distribution as it changes with stats.

Jun 8, 2011 at 2:00 PM
molotok wrote:

edit:  to clarify my concern:  If I decrease "Crit Overheals" in 5% increments from 100 to 0, then overall HPS goes up every time, in a consistent and expected amount.  The value of Crit SHOULD go up every time also, but sometimes it goes down, it is very eratic.

First, be sure you implemented the "Crit Overheals" as a modification to the crit healing bonus (50% in 4.1 for a generic heal), not as a modification to the likelyhood of a crit (the crit%).  Changing the crit% would cause interactions with items or talents that proc on crits.

Second, does your model change rotations based on the relative strength of spells?  I don't know about Healadins, but for Trees:

Regrowth (+60% crit chance from talents) crits more often than Healing Touch.  Regrowth gets less benefit from additional crit rating (Regrowth = 1.0 HPCT/Crit rating, HT=1.2).  As the benefit of crits increase, Regrowth improves more quickly than HT, and an appropriate model might use Regrowth more often in its rotation.  As the rotation uses more Regrowth, the marginal value of crit rating goes down.

As a side note: Knobs like this in a model are easily misused.  It is true that crits contribute to overhealing.  It is also true that SP, Mastery, and even Haste or Mana can contribute to overhealing.  Singling out crit for this type of attention seems to be a bit unfair.  A better reason for most healers to dislike crit is its RNG nature.  If I need a lot of "reliable" healing in the next several seconds, I need to accept that over a short period of time, the number of crits I see may be much less than average.

Jun 9, 2011 at 2:19 AM
molotok wrote:

 *Known shortcomings of the model:

 *  Crits often cause overheals.  Model does not take this into account.

Overhealing is one of those factors that is very difficult model accurately. Even taking your assertion that crit is more likely to result in overheal, one could make an argument that even though it does overheal, the healing from crit when it does not overheal outweighs the increased overhealing as crit is very effective (in terms of HPS, it's still very RNG) burst healing. I've just had a look at a random sample of my HHalfus parses and my DL overheal (10%) is actually less than my HL (30%) which is the exact opposite of what your model expects. For heavy-damage fights I suspect not uncommon: DL spam during heavy damage, HL to top people off: DL crits just mean that they get topped off faster and can switch to HL earlier.

The previous healadin model completely ignored overhealing and I recommend taking the same approach. Overhealing is notoriously difficult to model and I suspect the only way to get meaningful overheal numbers is from extensive log parses and even then there is likely considerable variance due to group composition (who are your other healers?), and raid size (10/25).

Jun 9, 2011 at 3:08 PM
Edited Jun 9, 2011 at 3:15 PM

Thanks for the feedback everyone.  I plan to implement the Stats Graph as Kavan pointed out, which is good to have anyway and might shed some light on my question.

Erdluf, the way I coded the "crit overheals knob" was reduce the 50% crit bonus, not the percent chance of a crit.  Also, thanks for pointing out that more options might not be better.  The Healadin model does not swap spell priorities based on crit, for now it seems that the 3 "filler" spells (HL, DL, FoL) do not change places in terms of HPS / HPM rankings with eachother.  I'll have to check that assumption though, especially with a new tier level coming.

Iminmmnni, good point on the potential for crit heals to actually contribute less to overheals, the opposite of what I was guessing.  

This discussion has me leaning towards scrapping the crit overheals option, and also removing the Illuminated Healing slider bar that provides similar functionality for Mastery.  I read that the shields from Mastery are currently stacking in the PTR, up to about 1/3 of the paladin's max health.  That should remove overwriting of the shield in most cases anyway.