Remove Advertisements

Theck's MATLAB thread - Cataclysm/4.x

Warning: Theorycraft inside.

Moderators: Fridmarr, Worldie, Aergis, theckhd

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Thu Mar 24, 2011 2:11 pm

EG will be added to the talent sim for 4.1, and should manifest itself in the "W39" columns.

The effect of GbtL is probably close to what you estimated, but I can probably add self-healing to the talent sim when I update it for 4.1. That would let us compare GbtL to RoL.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7655
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Cassyboy » Thu Mar 24, 2011 4:04 pm

To Theck,

I sort of calculated from my head* that EG is slightly less effective than SotP in regards of damage/threat. I used Argaloth and Magmaw as a source and even though Vengeance falls off at Arg and Magmaw should have more bursty shield slams, they both showed inferior. This is taking into account you use it every 20 seconds exactly, which I wont be doing. Of course SotP will be less bursty, but if you pop a WoG hoping to get an EG proc so you can get aggro of a new add, you're doing it wrong.

About Eye for an eye, if you can send me a message I can give you access to my WoL temporarily. As of the next raid (sunday BWD+possibly throne) to Cho'gall heroic I will be using 2 talent points into it. From the damage value, it seems to be quite valuable for Valiona, doing 4.2% of my damage. For conclave it works decently as I play defensive, eliminating SotP and RoL**. I'm excited to help the paladin cause, but unfortunately I'm quite locked on time as well. possibly we can make a list where the talent is a must for damage and where it is horrible.

I'll make sure I stand in tail swipes to see if it procs ;-)

Cass





*I'm a decent mathematist, horrible programmer, but a terrific calculator
** On wind boss I'm not really using CS due to excess damage
Cassyboy
 
Posts: 23
Joined: Wed Mar 16, 2011 7:55 am

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Iminmmnni » Thu Mar 24, 2011 7:22 pm

I've been doing some theorycrafting and it seems that the backend of the sim could be replaced with an analytical model, removing the error margins inherent in a simulated run as well as improving performance.

An analytical result can be found by building a directed graph(/Finite State Machine) whose vertices(/states) represent the HP+cooldowns+buffs available at that moment and edges E(i, j) represent ability usage transitions from state i to j. Some abilities (CS/HOTR, J, AS, SOTR) have transition to multiple states depending on whether the ability missed, hit, or hit & proced something (SD/GC). Each state has a probability P(i) which is the likelihood of being in that state with the GCD complete. Each transition has a probability P(E(i,j)) associated with it which is determined by hit, expertise and proc rate of the ability used when in state i A(i).

Let:
i be a node in the graph
E(i, j) be a edge from i, j
A(i) be the choice of ability to use next when in state i (ie: your rotation)
T(E(i, j)) be the time taken to transition from i to j (usually 1.5s but can be greater if an ability in on CD and A(i) says to use it next, (eg delay 0.5s to judge on CD))
P(i) be the probability of being in state i
P(i, j) be the probability of transitioning to j from i when using A(i)
D(E(i,j)) be the damage done by using A(i) and transitioning to j.

then:
dps(A) = SUM{i,j->[0,n]}( P(i) * P(E(i, j) * D(E(i,j)) ) / SUM{i,j->[0,n]}( P(i) * T(E(i, j)) )

Eg: A SotR>CS rotation (ignoring GrCr) will give:
Code: Select all
i       HP   CS   P(i)                     A(i)->E(i, j)(P(E(i,j))
S0      HP0, 0,   0.159108989657869       (CS->S2(0.715), CS(miss)->S1(0.285), )
S1      HP0, 1.5, 0.0453460620525202      (Nothing->S0(1))
S2      HP1, 1.5, 0.159108989657969       (Nothing->S3(1))
S3      HP1, 0,   0.159108989657859       (CS->S4(0.715), CS(miss)->S2(0.285))
S4      HP2, 1.5, 0.15910898965798        (Nothing->S5(1))
S5      HP2, 0,   0.159108989657846       (CS->S6(0.715), CS(miss)->S4(0.285))
S6      HP3, 1.5, 0.113762927605463       (SOTR(3HP)->S0(0.715), SOTR(miss)(3HP)->S7(0.285))
S7      HP3, 0,   0.0453460620524935      (SOTR(3HP)->S0(0.715), SOTR(miss)(3HP)->S7(0.285))

With the 0.285 in the transitions coming from 8% miss + 6.5% dodge + 14% parry.

P(x) is diffcult to calcuate but is completed determined by P(E(i, j)) which are known. The graph can be turned into a sparse matrix of linear equations and solved with LU factorisation (or any other appropriate technique).
We know the state probabilities sum to 1:
P(1) + P(2) + ... P(N) = 1
And the probability of being in a state is determined by the probabilities of the states than can transition there, and the probability of those transitions:
P(i) = SUM( P(j) * P(E(j, i)))
The matrix is sparse (max 3 transitions out of a state [for CS/J as they can miss, hit, or hit a proc SD/GC], most have 1 (eg HW/Cons/AS hit/miss have the same state 1 GCD later) so the factorisation would be fast as simple in matlab but as I do not have it, I have used an interative approximation with a starting point of P(i) = 1/N.

All this relies on the number of states being a reasonable number. 've done the graph generation in my language of choice (C# at this point) so (assuming my code is correct), I can state that the number of states is not excessive.

I have modelled each state as composed of current holy power and all relevant CDs:
{HP, CS, J, AS, Cons, HW, WOG, GC, GCICD, SD}
Total state space size using 0.5s step = 4 * 6 * 16 * 30 * 60 * 30 * 40 * 30 * 7 * 30 = 24,883,200,000 which is indeed excessive

Fortunately, the vast majority of that state space is unreachable as we can only use 1 ability per GCD:
Total reachable state space with 1.5s step: 1161487
Total reachable state space with 0.5s step: 7307349 without including WoG CD

Realistic rotations where we actually do something almost every GCD are much smaller still:
SotR>CS>J>AS>Cons>HW: 11611 states, 24920 transitions
SotR>CS>J>AS>HW>Cons: 11510 states, 24669 transitions
SotR>CS>AS>J>Cons>HW: 12176 states, 25103 transitions
SotR>CS>AS>J>HW>Cons: 12144 states, 25025 transitions

Each rotation will produce a graph whose shape is independant of stats, talent and glyphs (except cons glyph). The P(E(i, j)) varies with stats/talents/glyphs but the shape only changes when mechanics change (eg no HP on CS miss, WoG CD added).

Shortcoming:
Does not explicitly model autoattacks. Fortunately, just adding rotation damage with autoattack damage will give a good approximation. Only abilities that reset the swing timer (just HW at this point?) will effect autoattack damage and that can be modelled by assuming no relationship between swing timer and ability usage (effective ability damage = ability damage - 0.5 * average autoattack damage). Seal damage from autoattack can should be included in autoattack calculations and seal damage from abilities should be included in D(E(i,j)).


Is there anything obvious I'm missing here or does the above sound feasible? I can provide source code if you're interested.

Edit: turned some words into equations; added text to address seals not being explicitly modeled.
Last edited by Iminmmnni on Fri Mar 25, 2011 12:27 am, edited 3 times in total.
Iminmmnni
 
Posts: 46
Joined: Thu Mar 24, 2011 4:41 pm
Location: Melbourne

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Cassyboy » Thu Mar 24, 2011 8:37 pm

While seal damage is small, it does proc from a lot of abilities, think of CS,Judgement or AS. So ignoring seal damage, is in a way a key factor if AS+ > Judgement or otherwise, as judgement procs it twice.
On a side note, when it gets to half programming and some solid maths, I always lose it, I'm afraid :( .


Cass
Cassyboy
 
Posts: 23
Joined: Wed Mar 16, 2011 7:55 am

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Iminmmnni » Thu Mar 24, 2011 9:29 pm

While seal damage is small, it does proc from a lot of abilities, think of CS,Judgement or AS. So ignoring seal damage, is in a way a key factor if AS+ > Judgement or otherwise, as judgement procs it twice.

I'm not sure if you're referring to me, or an earlier post. I'm going to assume it's an earlier post as seal damage can be calculated and incorporated as part of the ability damage.


I've coded up an iterative solution to the state probability part of the algorithm and convergence is good enough (LU would still be faster but as I'm processing a rotation in < 5s, it's good enough).

I've got the following numbers for the usual 939 SotR rotations:
Code: Select all
SOTR>CS
Total Verticies: 27, Edges: 54
State probability iteration stopped after 393 iterations with error 9.58275080061505E-13
0.363564041368229       Nothing
0.341288782816326       CS
0.136038186157557       CS(miss)
0.113762927605386       SOTR(3HP)
0.0453460620524964      SOTR(miss)(3HP)
1499.99999999999ms average transition time

SOTR>CS>J
Total Verticies: 171, Edges: 381
State probability iteration stopped after 389 iterations with error 9.98697506299349E-13
0.341288782816317       CS
0.215574921725008       Nothing
0.136149990071774       J
0.136038186157553       CS(miss)
0.0713479214621628      SOTR(3HP)
0.0424150061432255      SOTR(3HP)(SD)
0.0284393812821208      SOTR(miss)(3HP)
0.0169066807703766      SOTR(miss)(3HP)(SD)
0.0118391295714586      J(miss)
1500ms average transition time

SOTR>CS>J (allowing sub GCD delay)
Total Verticies: 179, Edges: 407
State probability iteration stopped after 393 iterations with error 9.80723790266492E-13
0.341288782816293       CS
0.214169214565253       Nothing
0.136038186157543       CS(miss)
0.132367324049788       J
0.0711476856238427      SOTR(3HP)
0.0426152419815512      SOTR(3HP)(SD)
0.0283595669969164      SOTR(miss)(3HP)
0.0169864950555834      SOTR(miss)(3HP)(SD)
0.0115102020912859      J(miss)
0.00507591660898373     J(500ms delay)
0.000441384052955107    J(miss)(500ms delay)
1502.75865033096ms average transition time

SOTR>CS>J>AS>CONS>HW
Total Verticies: 14758, Edges: 36267
State probability iteration stopped after 1059 iterations with error 9.64027599466249E-13
0.330577341790352       CS
0.134829809949125       J
0.131768590783567       CS(miss)
0.0901086008667421      AS
0.0811325921648711      SOTR(3HP)
0.0481607737317609      HW
0.0433362819725671      SOTR(3HP)(SD)
0.0362720949378112      CONS
0.0323395647090745      SOTR(miss)(3HP)
0.0272985960996393      Nothing
0.0172739026044498      SOTR(miss)(3HP)(SD)
0.0117243312999239      J(miss)
0.00783553051015149     AS(miss)
0.00418789336797921     HW(miss)
0.00315409521198359     CONS(miss)
1500ms average transition time

SOTR>CS>J>AS>HW>CONS
Total Verticies: 14622, Edges: 35902
State probability iteration stopped after 521 iterations with error 9.84401001333725E-13
0.330577341790353       CS
0.134829809949125       J
0.131768590783567       CS(miss)
0.0901086008667421      AS
0.0811325921648712      SOTR(3HP)
0.0606421677632382      HW
0.0433362819725671      SOTR(3HP)(SD)
0.0323395647090745      SOTR(miss)(3HP)
0.027814284613963       CONS
0.0229251355478686      Nothing
0.0172739026044498      SOTR(miss)(3HP)(SD)
0.0117243312999239      J(miss)
0.00783553051015149     AS(miss)
0.00527323197941202     HW(miss)
0.00241863344469244     CONS(miss)
1500ms average transition time

SOTR>CS>AS>J>CONS>HW
Total Verticies: 16483, Edges: 39638
State probability iteration stopped after 1056 iterations with error 9.84314530186058E-13
0.332373523449293       CS
0.132484551304963       CS(miss)
0.108333206018138       J
0.107001015075022       AS
0.0946411464580944      SOTR(3HP)
0.047852226354343       HW
0.0377240933434362      SOTR(miss)(3HP)
0.0366459092814797      CONS
0.0358151713723161      SOTR(3HP)(SD)
0.0267808010967622      Nothing
0.014275977400154       SOTR(miss)(3HP)(SD)
0.00942027878418595     J(miss)
0.00930443609348019     AS(miss)
0.00416106316124722     HW(miss)
0.00318660080708519     CONS(miss)
1500ms average transition time

SOTR>CS>AS>J>HW>CONS
Total Verticies: 16409, Edges: 39443
State probability iteration stopped after 457 iterations with error 8.56180179756929E-13
0.332373523449292       CS
0.132484551304963       CS(miss)
0.108333206018139       J
0.107001015075022       AS
0.0946411464580944      SOTR(3HP)
0.0633337182940086      HW
0.0377240933434363      SOTR(miss)(3HP)
0.0358151713723161      SOTR(3HP)(SD)
0.0268674842018618      CONS
0.0205818153793192      Nothing
0.014275977400154       SOTR(miss)(3HP)(SD)
0.00942027878418596     J(miss)
0.00930443609348019     AS(miss)
0.00550727985165292     HW(miss)
0.00233630297407494     CONS(miss)
1500ms average transition time


For the above results, I'm using the highest priority not on CD (or waiting a full GCD), and assuming 8% miss (for everything), 6.5% dodge, 14% parry (CS/SotR). The third result will cast judgement as soon as it is off CD (if SoTR+CS are on CD) instead of waiting a full GCD.

DPS of rotation = dps from white damage + SUM(pr(action) * damage(action)) / average transition time

Do these results look sane?

Edit: added misses into output (GrCr+AS miss=consume buff for 0 HP, correct?). Fixed DPS statement to include time.
Last edited by Iminmmnni on Thu Mar 24, 2011 11:35 pm, edited 2 times in total.
Iminmmnni
 
Posts: 46
Joined: Thu Mar 24, 2011 4:41 pm
Location: Melbourne

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Sur-Pseudo » Thu Mar 24, 2011 9:57 pm

My results for Nefarian are in.
I'm horrible at WOL Log browsing, but it appears..

Shadowflame Barrage & Electrocute can be reflected proc return damage

ICD appears to be as short as ~2.3/2.4 seconds, if not shorter... but thats the minimum time i saw between them


Atramedes - Modulation & Searing Flame, perhaps something else (Need a better WOL log browser to look)

Note: there were 2 pally's in the raid, for some AOE his EfaE proced, included it since it still applies
Code: Select all
[17:59:51.702] Atramedes Modulation Pseudo 39844 (R: 18974)
[17:59:52.520] Maquesta Eye for an Eye Atramedes 21529

[17:59:22.359] Atramedes Searing Flame Pseudo 13188 (R: 9769)
[17:59:23.187] Atramedes Searing Flame Pseudo 26073 (R: 8805)
[17:59:23.968] Pseudo Eye for an Eye Atramedes 13051

[18:00:49.046] Atramedes Modulation Pseudo 44099 (A: 2059, R: 5698)
[18:00:49.898] Maquesta Eye for an Eye Atramedes 13899
[18:00:49.898] Pseudo Eye for an Eye Atramedes 14716


As far as I can tell, for tanks, there's no "added" benefit from this fight beyond what a ret paladin gets.


Looks like the same for Chimaeron...
We only got 2 shots on Heroic Chimaeron this week before it bugged out and wouldn't let people in the zone anymore, but our 7min heroic Chimaeron (Failure)
Eye for an Eye did 303,938 damage, 13.2% of my total DPS... Seems to be only from Massacre but not positive if slimes will also proc it (doubtful, since as tank's we're not valid targets)

And for our killshots, a quick summary:
Code: Select all
Boss      Mode/Role      %DPS       Breakdown
Atramedes (25N) (MT)     1.1%   3 ticks totalling ~39.9k
Maloriak (25N) (OT)      2.1%   5 ticks totalling ~39.8k
Chimaeron (25N) (OT)     6.7%   2 ticks totalling ~122k
Valiona (25N) (MT)       0.9%   4 ticks totalling ~33k

(Ony P1, Nef p3)
Nefarian (25N)(MT)       2.2%   13 ticks totalling ~105k



Obviously this may be very hard to code or determine, or simulate really in any way... Overall the numbers seem too low to be worth considering unless you need a little help on heroic Chimaeron... Or unless heroic modes add more abilities that could be useful. Something to keep an eye out on? Perhaps Al'Akir will be good... The Electrocute from being out of range might deal some damage while ya dodge tornados... and maybe stormlings for OT's

Nezir is also on my list to look at..
Sur-Pseudo
 
Posts: 117
Joined: Sat Apr 05, 2008 9:44 pm

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Fri Mar 25, 2011 6:31 am

Iminmmnni: I've sent you a private message, I'm very interested to see your code. We thought about a similar approach, but decided it was impractical. It seems that we overlooked something, because you've obviously made it practical enough to code in a day or so.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7655
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Fri Mar 25, 2011 7:46 am

Sur-Pseudo wrote:Atramedes - Modulation & Searing Flame, perhaps something else (Need a better WOL log browser to look)

Use the Expression Editor with the following string:
Code: Select all
(spell="Eye for an Eye") or (fullType in (101, 102, 103, 104, 105, 107) and targetName in ("Pseudo","Maquesta"))


This will show you all E4E events as well as any time you take damage from "swing," "range," "spell," "spell_periodic," "damage_split," or "environmental" sources. I suspect that swing/range/spell_periodic/environmental cannot trigger it, so you could probably shorten that list to (103) to make it easier to read. For most of these analyses, I've used this filter:
Code: Select all
(spell="Eye for an Eye") or (fullType in (103) and targetName in ("Pseudo","Maquesta"))


Nefarian: Electrocute and Shadowflame Barrage are both "spell" (103), and Shadowflame Breath is "spell_periodic" (104). Given the number of ticks of Shadowflame Breath we've seen without any procs, it's a good bet that spell_periodic can't trigger it. This is reinforced on other bosses in this parse.

Some interesting observations:
Code: Select all
[19:39:23.249] Chromatic Prototype Blast Nova Pseudo 33124
[19:39:23.601] Pseudo Eye for an Eye Chromatic Prototype 32982
[19:39:24.971] Nefarian Shadowflame Barrage Pseudo 16354 (R: 4543)
[19:39:25.563] Pseudo Eye for an Eye Nefarian 5299

This confirms that if there's any ICD, it's ~2 seconds or less. Also, Blast Nova triggers it, also type "spell" (103).

Code: Select all
[19:43:51.313] Nefarian's Lightning Machine Electrocute Pseudo 61069 (R: 21205)
[19:43:52.155] Pseudo Eye for an Eye Nefarian 19787
[19:43:52.999] Shadowblaze Shadowblaze Pseudo 17640 (R: 10500)
[19:43:53.734] Shadowblaze Shadowblaze Pseudo 17640 (R: 10500)
[19:43:54.564] Pseudo Eye for an Eye Nefarian *8573*

Shadowblaze apparently triggers it, directed at Nefarian, despite him not being the source. Shadowblaze is also type "spell" (103).

Atramedes: Searing Flame, Modulation, Roaring Flame all trigger it (all type 103)
Chimaeron: Caustic Slime, Massacre both trigger it (both type 103). Amusingly:
Code: Select all
[19:20:34.984] Chimaeron Caustic Slime Pseudo 9959 (R: 1229)
[19:20:35.115] Pseudo Eye for an Eye Chimaeron Miss

So it can miss. I think this is the first time I've seen it miss, I'm curious what your hit (melee and spell) were for this run.

Maloriak is confusing. Arcane Storm and Scorching Blast both trigger E4E and are both type 103. Acid Nova is type 104 and doesn't trigger it at all (more evidence that 104 is not a trigger). Those are both consistent.

Biting Chill is type 103, but doesn't seem to trigger it - however it also has an "Unknown" source, which could prevent it from activating. It's odd that Shadowblaze redirected it in that case, but it did have a source while this one doesn't.

The most confusing part is this (types 101, 103, 104 represented):
Code: Select all
[18:56:37.208] Prime Subject hits Pseudo 13449 (B: 8966)
[18:56:37.535] Maloriak Acid Nova Maquesta 6000 (R: 1500)
[18:56:37.546] Maloriak Acid Nova Pseudo 6075 (R: 750)
[18:56:38.624] Maloriak Acid Nova Maquesta 6750 (R: 750)
[18:56:38.640] Maloriak Acid Nova Pseudo 6075 (R: 750)
[18:56:39.499] Unknown Rend Pseudo 1620
[18:56:39.562] Maloriak Acid Nova Maquesta 5250 (R: 2250)
[18:56:39.562] Maloriak Acid Nova Pseudo 4725 (R: 2250)
[18:56:39.577] Prime Subject hits Pseudo 14633 (B: 9756)
[18:56:40.578] Unknown Magma Jets Pseudo 27449 (R: 7625)
[18:56:40.578] Unknown Magma Jets Pseudo 29313 (R: 8143)
[18:56:40.593] Maloriak Acid Nova Maquesta 6000 (R: 1500)
[18:56:40.609] Maloriak Acid Nova Pseudo 4725 (R: 2250)
[18:56:41.062] Unknown Magma Jets Pseudo 14995 (R: 4165)
[18:56:41.078] Unknown Magma Jets Pseudo 14863 (R: 4129)
[18:56:41.327] Pseudo Eye for an Eye Prime Subject *11739*
[18:56:41.359] Unknown Magma Jets Pseudo 14739 (R: 4094)
[18:56:42.025] Prime Subject hits Pseudo 25652

That crit should have been caused by a 24k-27k damage event. Yet there are literally no events caused by the Prime Subject in the 3 second window preceding it, and the one 4 seconds earlier is a melee type (101) and is too small to cause that large a crit. Rend is "Unknown" but presumably sourced from Prime Subjects, but it's also too small. The only thing in there is Magma Jets, which while "unknown" should be sourced by Maloriak.

My current guess is that when the source of the event is "Unknown," E4E arbitrarily picks the nearest enemy target. That would explain it, as one of the 25k+ Magma Jets in the previous second could have caused the proc, and the Prime Subject just happened to be in the wrong place at the wrong time. That doesn't explain why Biting Chill doesn't cause it though, since both Biting Chill and Magma Jets are type 103.

V&T: Twilight Blast, Twilight Meteorite both proc (103 again). No procs from Blackout (also type 103), but it looks like there were only 3 events that hit either of you, so that's not conclusive.

Atramedes Trash:
Code: Select all
[17:48:12.687] Spirit of Ironstar Whirlwind Pseudo 26246
[17:48:13.453] Pseudo Eye for an Eye Spirit of Ironstar 8758

Whirlwind is type 103, and properly triggers E4E despite being physical damage. Thunderclap and Chain Lightning are also type 103 triggers.

Conclusions:
Only events of fulltype=103 ("SPELL_DAMAGE" events) trigger E4E. This means that melee, ranged (101, 102) and periodic damage effects (104, likely 107) do not trigger it. Note that we're specifically referring to event types here, i.e. "SPELL_PERIODIC_DAMAGE" will not trigger E4E (ex: Shadowflame Breath), but a boss ability that generates a periodic sequence of "SPELL_DAMAGE" (type 103) events will (ex: Searing Flame).

There's still some confusion over what happens when the source of damage is unknown. There's evidence that in some cases E4E picks whatever target is closest (Maloriak - Magma Jets, Nefarian - Shadowblaze), and in other cases it punts (doesn't trigger at all, Maloriak - Biting Cold).
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7655
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Cassyboy » Fri Mar 25, 2011 1:06 pm

•Sacred Duty now also procs from Avenger's Shield. Now lasts 10 sec, down from 15 sec.

This makes it very easy.... AS > Judgement if mana is above 70%, Judgement > AS if mana is below 70%. You can fill in the % yourself, perhaps 60 or 50 is better.

On an off topic note: Why doesn't get Ardent defender a visual animation for proccing or anything showing if you got it up or not? A bit lazy design in my opinion.
Cassyboy
 
Posts: 23
Joined: Wed Mar 16, 2011 7:55 am

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Fri Mar 25, 2011 1:13 pm

With updated 4.1 Sacred Duty mechanics.

20k GCD sims, 939/SoT build, 2%/10
Code: Select all
                             DPS            TPS            SHPS            E     E    SotR  AS    GC     DT     
  Q#  Priority               V=100%  V=30%  V=100%  V=30%  V=100%  V=30%   #     %    miss  cast  procs  SotR   
   1  SotR>CS>J>AS           14285   9211   42856   27632  0       0      2210  11.0  779   1999  1456   10.4327
   2  SotR>HotR>J>AS         13007   8291   39020   24874  0       0      2212  11.1  782   2011  1461   10.4267
   3  SotR>CS>AS>J           14366   9275   43098   27826  0       0      2228  11.1  765   2352  1407   10.0313
   4  SotR>AS>CS>J           14236   9193   42708   27578  0       0      2581  12.9  775   2590  1448   10.3059
   5  SotR>CS>AS+>J>AS       14359   9265   43077   27795  0       0      2160  10.8  802   2162  1457    9.9089
   6  SotR>AS+>CS>AS>J       14397   9296   43192   27887  0       0      2304  11.5  773   2458  1462    9.9518
   7  SotR>AS++>CS>AS>J      14282   9221   42845   27662  0       0      2332  11.7  843   2440  1425   10.0998
   8  sdAS>sdJ>SotR>CS>AS>J  14246   9193   42738   27579  0       0      2791  14.0  710   2427  1374   10.2293
   9  sdAS>SotR>CS>AS>J      14357   9271   43072   27813  0       0      2425  12.1  785   2491  1459    9.9822
  10  sdJ>SotR>CS>AS>J       14310   9233   42931   27700  0       0      2504  12.5  781   2295  1367   10.1091


W39/SoI build, 2%/10
Code: Select all
                             DPS            TPS            SHPS            E     E    SotR  AS    GC     DT     
  Q#  Priority               V=100%  V=30%  V=100%  V=30%  V=100%  V=30%   #     %    miss  cast  procs  SotR   
   1  SotR>CS>J>AS           10596   6900   35601   23003  2543    753    2304  11.5   979  1968  1377     11.01
   2  SotR>HotR>J>AS          9471   6086   31179   19930  1844    331    2328  11.6   920  1981  1387   11.0844
   3  SotR>CS>AS>J           10776   7028   36085   23353  2505    730    2291  11.5   980  2357  1370   10.5986
   4  SotR>AS>CS>J           10621   6929   35562   23020  2465    706    2657  13.3   954  2540  1335   10.9792
   5  SotR>CS>AS+>J>AS       10653   6942   35744   23112  2524    741    2290  11.4  1039  2111  1317   10.6814
   6  SotR>AS+>CS>AS>J       10730   6997   35928   23250  2492    722    2461  12.3   956  2400  1338    10.746
   7  SotR>AS++>CS>AS>J      10755   7014   36006   23302  2493    723    2446  12.2   939  2413  1347    10.693
   8  sdAS>sdJ>SotR>CS>AS>J  10669   6955   35710   23101  2468    708    2802  14.0   929  2407  1267   10.7813
   9  sdAS>SotR>CS>AS>J      10740   7006   35941   23264  2480    715    2521  12.6   953  2464  1362   10.6718
  10  sdJ>SotR>CS>AS>J       10733   6994   35946   23246  2497    725    2549  12.7   960  2289  1313   10.6447


939/SoT build, 8%/26
Code: Select all
                             DPS            TPS            SHPS            E     E    SotR  AS    GC     DT   
  Q#  Priority               V=100%  V=30%  V=100%  V=30%  V=100%  V=30%   #     %    miss  cast  procs  SotR 
   1  SotR>CS>J>AS           16692   10776  50076   32328  0       0      1810   9.1  262   2081  1768   8.903
   2  SotR>HotR>J>AS         15180    9686  45541   29058  0       0      1823   9.1  246   2073  1763   8.8933
   3  SotR>CS>AS>J           16854   10898  50563   32693  0       0      1792   9.0  284   2543  1805   8.4191
   4  SotR>AS>CS>J           16677   10782  50030   32346  0       0      2207  11.0  246   2739  1691   8.8769
   5  SotR>CS>AS+>J>AS       16698   10790  50093   32371  0       0      1805   9.0  350   2335  1780   8.4698
   6  SotR>AS+>CS>AS>J       16823   10876  50469   32627  0       0      1935   9.7  294   2624  1755   8.5636
   7  SotR>AS++>CS>AS>J      16783   10849  50349   32546  0       0      1973   9.9  279   2580  1706   8.6269
   8  sdAS>sdJ>SotR>CS>AS>J  16596   10724  49789   32173  0       0      2470  12.4  257   2547  1620   8.6325
   9  sdAS>SotR>CS>AS>J      16824   10878  50473   32634  0       0      1988   9.9  259   2623  1758   8.5833
  10  sdJ>SotR>CS>AS>J       16692   10785  50076   32355  0       0      2230  11.2  272   2449  1721   8.4857

There's very little difference between queues 3, 5, and 6, which is sort of interesting. This alleviates enough of the opportunity cost that prioritizing AS+>CS isn't as significant loss, though queue #7 suggests that it is still a loss. Note that #7 pulling ahead in the first sim seems to be a statistical fluctuation - in every other realization I've run today it's fallen behind #3. I've been tweaking the queues a bit as I go to test some things.

<edit> should have clarified, "sdAS" and "sdJ" are "fishing" queues, in other words "AS iff SD is not active" and "J iff SD is not active". "sd" is the complement to "SD" as a prefix - where "SD" means "only if SD is active", "sd" means "only if SD is not active."
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7655
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Fri Mar 25, 2011 1:14 pm

Another set:

939/SoT build, 2%/10
Code: Select all
                             DPS            TPS            SHPS            E     E    SotR  AS    GC     F2F
  Q#  Priority               V=100%  V=30%  V=100%  V=30%  V=100%  V=30%   #     %    miss  cast  procs  time
   1  SotR>CS>J>AS           14240   9181   42719   27544  0       0      2238  11.2  779   1992  1446   10.5
   2  SotR>HotR>J>AS         13052   8320   39156   24959  0       0      2223  11.1  692   1999  1454   10.5
   3  SotR>CS>AS>J           14359   9271   43076   27814  0       0      2206  11.0  813   2390  1480    9.9
   4  SotR>AS>CS>J           14226   9185   42677   27555  0       0      2587  12.9  737   2548  1409   10.3
   5  SotR>CS>AS+>J>AS       14403   9294   43208   27883  0       0      2186  10.9  742   2205  1554    9.9
   6  SotR>AS+>CS>AS>J       14406   9301   43217   27904  0       0      2284  11.4  753   2475  1483   10.0
   7  SotR>AS++>CS>AS>J      14409   9305   43228   27914  0       0      2259  11.3  809   2519  1550    9.8
   8  sdAS>sdJ>SotR>CS>AS>J  14277   9213   42831   27639  0       0      2747  13.7  745   2414  1359   10.1
   9  sdAS>SotR>CS>AS>J      14268   9212   42803   27637  0       0      2459  12.3  800   2465  1406   10.2
  10  sdJ>SotR>CS>AS>J       14417   9303   43251   27908  0       0      2459  12.3  694   2324  1421   10.0


W39/SoI build, 2%/10
Code: Select all
                             DPS            TPS            SHPS            E     E    SotR  AS    GC     F2F
  Q#  Priority               V=100%  V=30%  V=100%  V=30%  V=100%  V=30%   #     %    miss  cast  procs  time
   1  SotR>CS>J>AS           10672   6950   35832   23155  2543    753    2302  11.5   938  2004  1410   11.1
   2  SotR>HotR>J>AS          9389   6032   30928   19765  1841    329    2356  11.8   962  1947  1328   11.2
   3  SotR>CS>AS>J           10732   6999   35948   23264  2501    728    2362  11.8   972  2339  1356   10.7
   4  SotR>AS>CS>J           10606   6918   35519   22989  2467    707    2762  13.8   881  2482  1257   11.2
   5  SotR>CS>AS+>J>AS       10729   6992   35975   23265  2526    743    2221  11.1  1036  2162  1436   10.5
   6  SotR>AS+>CS>AS>J       10689   6971   35798   23167  2487    719    2442  12.2  1017  2402  1310   10.8
   7  SotR>AS++>CS>AS>J      10707   6982   35857   23203  2490    721    2387  11.9  1069  2398  1372   10.6
   8  sdAS>sdJ>SotR>CS>AS>J  10757   7012   35980   23277  2474    711    2777  13.9   877  2417  1313   10.7
   9  sdAS>SotR>CS>AS>J      10767   7023   36027   23319  2483    717    2538  12.7   903  2453  1377   10.7
  10  sdJ>SotR>CS>AS>J       10731   6994   35940   23246  2498    726    2617  13.1   847  2308  1358   10.7


939/SoT build, 8%/26
Code: Select all
                             DPS            TPS            SHPS            E     E    SotR  AS    GC     F2F
  Q#  Priority               V=100%  V=30%  V=100%  V=30%  V=100%  V=30%   #     %    miss  cast  procs  time
   1  SotR>CS>J>AS           16602   10717  49805   32152  0       0      1811   9.1  300   2061  1761   8.9
   2  SotR>HotR>J>AS         15209    9705  45627   29115  0       0      1770   8.8  258   2108  1813   8.9
   3  SotR>CS>AS>J           16805   10866  50416   32597  0       0      1795   9.0  285   2526  1777   8.4
   4  SotR>AS>CS>J           16649   10764  49946   32291  0       0      2195  11.0  276   2724  1688   8.8
   5  SotR>CS>AS+>J>AS       16822   10872  50466   32615  0       0      1799   9.0  261   2363  1818   8.4
   6  SotR>AS+>CS>AS>J       16735   10818  50205   32453  0       0      1963   9.8  302   2583  1698   8.6
   7  SotR>AS++>CS>AS>J      16733   10816  50198   32449  0       0      1974   9.9  276   2589  1718   8.6
   8  sdAS>sdJ>SotR>CS>AS>J  16604   10730  49812   32190  0       0      2464  12.3  233   2572  1659   8.7
   9  sdAS>SotR>CS>AS>J      16749   10829  50248   32486  0       0      1993  10.0  275   2576  1682   8.6
  10  sdJ>SotR>CS>AS>J       16694   10785  50081   32356  0       0      2293  11.5  230   2408  1672   8.5


Looking at the results, I think this change makes AS++ irrelevant. The only case where it was interesting before was when we had AS++>CS>J>AS, such that we ran into a situation like CS*-J-(?), and AS++ ensured that we'd use AS instead of CS in that spot. But with AS>J as a baseline, that situation never happens, and AS+>CS covers the situations where we delay CS after SotR - in other words, CS-SotR-(CS or AS?).

It's also interesting that the "fishing" queues fared pretty well in the WoG build, and the AS+>CS queues fared pretty well in the low-hit 939 build. This definitely wasn't the case in my earlier tests, so I'm not sure whether to trust those. Everything is still within 50 DPS or so, which is around the noise threshold.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7655
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Sur-Pseudo » Fri Mar 25, 2011 1:17 pm

Sacred duty change will certainly help dps/tps... and encourage me to keep GrCr... Previously I dropped GrCr for the WOG-ness specs, but with AS granting +1 HoPo & an extra chance for free crit...


@Theck,
Thanks for the filter, I tried for a good 2 hours to figure out how to use the log browser and identify the sources...

Sucks the breath attacks don't work, it might end up being too situational to be a good source of damage without some periodic effects working.

theckhd wrote:This confirms that if there's any ICD, it's ~2 seconds or less. Also, Blast Nova triggers it, also type "spell" (103).

Yeah, that's the two hits that I got the 2.3 seconds from on my guess.. good to know, but less useful since we know breath attacks wont trigger it.

theckhd wrote:Shadowblaze apparently triggers it, directed at Nefarian, despite him not being the source. Shadowblaze is also type "spell" (103).


I think you're right, it probably picks a random target.. I can't think of any other way (if it were some kind of "Pet ability" magma jet's wouldn't hit the prime subject... which is something i considered for Nefarian)


Theck, sorry I probably missed it a few pages back when I stopped lurking for a week, AS+/AS++ refer to? (The forums don't allow searching for "AS++", the plus' get dropped and the word "AS" is too short
Found it
Sur-Pseudo
 
Posts: 117
Joined: Sat Apr 05, 2008 9:44 pm

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Cascadian » Fri Mar 25, 2011 1:54 pm

This new HoPo + SD mechanic on AS interferes with the routine 939 or W39 rotation of on your 3rd CS/HotR you execute either ShotR or WoG based on whether you need health.

Now we have this scenario that will be similar to EG refreshing HoPo too late to notice:
CS, J, CS, AS, ShotR

If the 2nd CS procs the GC opportunity on AS HoPo, you skip the 3rd CS and go directly for ShotR/WoG.

But if they make it such that AS only grants HoPo if it hits, then it becomes a situation like when EG refreshes your 3 HoPo but you have already cast the next CS. There is likely not going to be enough time to notice that AS granted the key 3rd HoPo. If it stays automatic (on test does AS still grant HoPo on miss?), even on an AS miss, then you can trigger ShotR/WoG with no worries. But is that really likely? Surely they will make it so AS HoPo is only granted on hit.

This new AS HoPo + SD proc, along with the 20 sec CD on WOG, is really Blizzard telling us that they want Paladin tanks to be more balanced and not always just spam WoG. They want us to have a rotation with a lot more opportunity for RNG variations and they want us to contribute more to DPS.

And that is a GOOD thing in my opinion. It creates more opportunity to excel instead of just repetitively mashing the same 5 buttons in a known order for 6-9 minutes.
Last edited by Cascadian on Fri Mar 25, 2011 3:04 pm, edited 2 times in total.
Cascadian
 
Posts: 48
Joined: Tue Mar 15, 2011 12:44 pm

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Fri Mar 25, 2011 2:11 pm

I think you're over-thinking this. The only way I see it being a problem is if it waits for the projectile delay to finish before awarding the point. Hit/miss is determined immediately upon cast, just like CS, so you'll have the full 1.5-seconds to react as long as it's granted when the spell is cast (even if it's only on hits) and not when the spell deals damage.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7655
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby knaughty » Fri Mar 25, 2011 5:24 pm

Theck - what are the error/variance of those queues?

Excluding your HotR queue, there's less than 200 DPS difference between best and worst queue, even after they added a GC proc to AS.

Those differences don't look statistically significant to me, and they're certainly smaller than human variance for a real fight length - remember that a boss fight is only 200-400 GCDs. Timing your GCDs better so that you one extra cast is a bigger difference than best queue to worst queue on your current results.

Looks to me like queue remains: SotR > CS > Judge or AS, doesn't matter, just hit whatever's off CD.

At least there's no longer a significant penalty for paying attention to the GC proc... if you take the naive view that "Proc = good, hit button!" you're no longer doing worse DPS than the person who just mashes out 939 ignoring the proc.

They've managed to making tanking stressful without making it skillful. The stress comes from "Can I hold aggro due to retarded Vengeance mechanic which is completely outside my control?

Of course, what's worse, is that the answer to that question is: Of course not, Tricks/MD are mandatory to hold aggro for first 30 seconds. After that, it's entirely down to Vengeance RNG, but 80% of the time you can faceroll your TPS and the other 20% there's nothing you can do about TPS capping your DPS. GG.

Good queue / bad queue difference needs to be more like 14k vs 10k and easily determined in-game by logic and reading tool-tips. Not 14.4k vs 14.2k and requiring a PHD in mathematical analytics....

4.1 prot rotation is now entirely skill-free. The only thing you react to is misses - keep hitting CS every 2nd GCD until you're at 3 HoPo, then hit ShoR till it conects. Repeat.
This isn't the "Offtankadin" forum. My MoP FAQ: http://tinyurl.com/FAQ-5-0
- Knaughty.
User avatar
knaughty
Maintankadonor
 
Posts: 3558
Joined: Mon Dec 17, 2007 10:06 pm
Location: Sydney, plotting my next diatribe against the forces of ignorance!

PreviousNext

Return to Advanced Theorycraft and Calculations

Who is online

Users browsing this forum: No registered users and 1 guest


Remove Advertisements

Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (based on users active over the past 5 minutes)
Most users ever online was 380 on Tue Oct 14, 2008 6:28 pm

Users browsing this forum: No registered users and 1 guest