[TC]Arcane SimC APL

Guides and discussions of all things specific to the Mana Adepts of Azeroth.
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC]Arcane SimC APL

Unread postby Komma Sat Jun 07, 2014 7:06 am

It's more accurate to say that it wasn't an issue with the formulation method, but instead how Rawr applied it. They required prior solving for each individual "cycle" for dps, mps and other metrics. With current use cases, we'd be talking about hundreds of individual cycles just for Arcane due to different target numbers for multidotting, T16 bonuses and different spell weaving options. Manually solving for closed solutions for each of these is not sustainable. And this isn't even considering the tradeoffs they'd make, trying to approximate arcane's mastery interaction with mana levels. Like you said though, formulation as a whole can work. DPET analysis, popularly used to analyse frost right now, is essentially a simplified version of the formulation method.

Anyway, that's not what I wanted to talk about, and we've been derailed for long enough. Back to APLs.

------------------------------------------------------------------------------------------------------------------------

Last time I mentioned a change to the following line:

Code: Select all

actions.single_target+=/arcane_missiles,if=buff.arcane_missiles.stack=2&cooldown.arcane_power.remains>0)|(buff.arcane_charge.stack>=4&cooldown.arcane_power.remains>8)
Essentially, the "8" at the end just means "enough time to rebuild 4 stack and missiles if necessary". I dislike hardcoded numbers since they don't scale with haste. I forgot to include the code changes last time. The new version is:

Code: Select all

actions.single_target+=/arcane_missiles,if=(buff.arcane_missiles.stack=2&cooldown.arcane_power.remains>0)|(buff.arcane_charge.stack>=4&cooldown.arcane_power.remains>action.arcane_blast.cast_time*4)
"Don't use missiles if there isn't enough time to rebuild 4 arcane charges (and potentially get some AMs back) before the next AP." It doesn't sound perfect, but it'll do.


I spent the rest of my time attempting to tune the AB/AM weaving. The current line for AB in weaving is:

Code: Select all

actions.single_target+=/arcane_blast,if=buff.profound_magic.up&buff.arcane_charge.stack>3&mana.pct>93
The reason this is stupid is because it says "if you have 2T16 buff" but doesn't bother checking how many stacks. Obviously, you can afford to weave at a lower mana if you have a 2 stacks or more.

Code: Select all

actions.single_target+=/arcane_blast,if=buff.arcane_charge.stack=4&(buff.profound_magic.stack=1&mana.pct>93)|(buff.profound_magic.stack>=2&mana.pct>90)
A quick change to allow for weaving at 2+ stacks gives a miniscule DPS increase (200DPS ~= 0.4% overall). The obvious solution is then to include scaling mana requirements:

Code: Select all

actions.single_target+=/arcane_blast,if=buff.profound_magic.up&buff.arcane_charge.stack=4&mana.pct>(96-buff.profound_magic.stack*2.92)
Where does 2.92 come from, you ask? It's the 11.69% base mana cost of 4 stack AB, divided by 4.

One extra change is to consider simc spell decision making. Decisions are made at spell cast queue, not at cast finish. This means that the mana level takes into account what you are at when you start, instead of what you will be when you finish the cast. The problem with this is that mana regen is affected heavily by haste procs such as bloodlust and meta gem. To calculate the mana level of a player at the end of the cast, we take their current mana percentage, and add (cast time in seconds) * (1% base mana regen per second) * (spell haste factor) * (75% gain from RoP). This isn't ideal, because cast time should have a lower cap of 1s GCD. I have not found any max(a, b) operator or function offered by simcraft in APL syntax, so I'll figure out how to do this cleanly later. The end result:

Code: Select all

actions.single_target+=/arcane_blast,if=buff.profound_magic.up&buff.arcane_charge.stack=4&(mana.pct+cast_time*(1+spell_haste)*1.75)>(98-buff.profound_magic.stack*2.92)
The unfortunate news is that both "2T16 stack scaling" options are giving worse DPS than the simple "account for 2 stack 2T16" case. I honestly have no idea why. The more I tinker with the APL, the more it seems that simc likes to play ultraconservative with mana, instead of aggressively surfing at 4 stacks. I will have to spend more time digging for reasons.

Also, none of this will be optimal for Gnomes, who have 5% extra mana. But then again, who the hell plays a Gnome arcane mage anyway, RIGHT?!


That's all I have for now. Don't expect many updates during the weekend, because we'll have to fix the Arcane APLs to be backwards compatible with mages who don't have their fancy PBoI trinket yet.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC]Arcane SimC APL

Unread postby Komma Sat Jun 07, 2014 7:10 am

I forgot to add: The complicated mana regen stuff was done because I couldn't get any of the existing mana regen options to work as I want it. Even the "stat.mp5" keyword doesn't seem to work, contrary to what the action list documentation in the wiki says. A simc dev in their IRC channel has offered to look into this issue.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC]Arcane SimC APL

Unread postby Komma Sun Jun 08, 2014 1:05 am

The changes I've mentioned so far have been added to the simc code base: https://code.google.com/p/simulationcra ... a92b0c7650" target="_blank

If someone doesn't mind building a new BiS 588 profile for Mage_Arcane_T16H.simc (https://code.google.com/p/simulationcra ... _T16H.simc" target="_blank), that would be great. The current one is most likely above hit cap and not optimized.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC]Arcane SimC APL

Unread postby Komma Thu Jun 12, 2014 5:27 am

A new release of simc was released today, and should include all of the work done on the APL so far, along with a better BiS profile. I haven't checked if Voltaa's 2pc BiS outperforms it, and just upgraded/reforged/regemmed the existing 4pc BiS profile. Feel free to try it out and share your results.

Download link: http://www.simulationcraft.org/2014/05/ ... 548-4.html

I feel fairly confident when I say that the APL does a pretty good job of reflecting how we currently play, with some minor bugs (arcane torrent being one of them). Please give it a go, and tell me if you notice anything that doesn't look right, or can be easily improved upon.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
zhengma
Posts: 213
Joined: Mon Jun 09, 2014 7:50 pm
Location: Ottawa, Canada

Re: [TC]Arcane SimC APL

Unread postby zhengma Thu Jun 12, 2014 8:09 am

Code: Select all

actions+=/alter_time,if=buff.alter_time.down&buff.arcane_power.up&trinket.stat.intellect.cooldown_remains>15
Just curious, has the proccing situation of the meta gem been taken into account here?

It's a highly idealized situation when both trinkets are procced closely enough that there is a time window when both buffs have 6+ seconds left. I sometimes AT when one trinket is about to go below 6 seconds and the meta gem procs, but I might be doing it wrong.

To be more complete, there are at least 4 item procs to watch: 2 trinkets, 1 meta gem and 1 Jade Spirit. Is it at all necessary to take all 4 into account when timing my AT, so that I can always make the best use of it however RNG works against my favor?
Image
zhengma
Posts: 213
Joined: Mon Jun 09, 2014 7:50 pm
Location: Ottawa, Canada

Re: [TC]Arcane SimC APL

Unread postby zhengma Thu Jun 12, 2014 8:29 am

Another common practice that I saw: when the target is about to die (the criteria vary), just spam 4-charge blasts, fire Missiles when it procs, and use Gem if there's any charge left, completely disregarding mana percentage otherwise, and try to finish the target off with a Barrage. Is it possible that this practice is actually beneficial? If it is, what's the proper criterion/trigger? (might be Mastery-dependent, and by the way Tier 16 bonuses help to keep 4-charge for a much longer period without consuming much mana)
Image
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC]Arcane SimC APL

Unread postby Komma Thu Jun 12, 2014 8:35 am

No, it does not take the meta gem into account.

Due to the nature of RPPM, it is indeed very likely to see Meta Gem + KTT/BBoY + Jade Spirit + Lightweave all proc at the same time on pull. It is very tempting to use AT immediately on these stacked procs as well. The tradeoff however, is that if PBoI procs during the 6 second window of AT, you are put in a difficult position - do you forfeit nearly 20 seconds of PBoI's 16K intellect, or do you choose to have 6 more seconds of the existing stacked procs? What about all the mana you lost from heavy AB spam during AT? Should you perhaps choose a more conservative strategy during AT, if PBoI has no procced yet? Should you consider early stack drop and reactivating AT? None of the answers to these questions have been thoroughly analysed by the community.

On top of this being a question without a well defined answer, even if we had a well defined answer, it is very difficult to convey in programming logic, and even more difficult to convert into APL syntax. If you believe you have a better solution, you are more than welcome to suggest improvements and show your results.

As for "burn mana at 4 stack and barrage before boss death", I have not bothered with this, as the default fight length is 450 seconds (7.5 minutes), and any such action for the last few seconds is unlikely to yield a significant gain, while causing the APL to be considerably more complicated. Again, you are welcome to code your suggestions and test them.

The 4T16 bonus is already taken into account by the current APL.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
zhengma
Posts: 213
Joined: Mon Jun 09, 2014 7:50 pm
Location: Ottawa, Canada

Re: [TC]Arcane SimC APL

Unread postby zhengma Thu Jun 12, 2014 9:05 am

As a theoretical physicist in real life, I'd love to start with simplified model. Simplistically, each procced buff adds a certain percentage of DPS increase to 4-charge Arcane Blast. Then we can analyze the anticipation of gain to pop AT with X buff having Y seconds left. Of course, 4-charge Arcane Blast won't be the only spell we cast, but putting other spells into the model will greatly complicate it.

The second question I asked is actually more profound: in an infinitely long battle, it's best to let mana fluctuate around a certain level, but that's simply because if the mana level gets too low, it'll take a long period for it to regen, and each of the spells during this period will suffer. What if we cut off this later half, let the battle end when the mana level gets very low?

Let me put it another way: if we disable all the Heroism/item procs/AT/offensive cooldowns, and keep a stable and high mana level, the DPS v.s. time curve should be quite flat. If I just spam Arcane Blasts all the way, the resulting DPS v.s. time curve will be above the previous curve at the first part, but drops below it afterwards, making it overall unfavorable. Is it possible to identify and utilize the first part of that curve, and make the second part not appear due to the natural death of the mob?

I'll just put the question here, and will look into it with SimC myself when I have the time. I do a lot of coding in my real life research work as well, but I do need to learn APL from the start.
Image
Vog
Posts: 33
Joined: Fri May 30, 2014 4:08 pm

Re: [TC]Arcane SimC APL

Unread postby Vog Thu Jun 12, 2014 10:01 am

Thank you Komma for the refinements to the APL (<3 your avatar btw).

Adding

Code: Select all

actions.single_target+=/arcane_missiles,if=buff.arcane_missiles.stack=2&buff.arcane_charge.stack=3
in front of

Code: Select all

actions.single_target+=/arcane_blast,if=set_bonus.tier16_2pc_caster&buff.arcane_missiles.stack<2&buff.arcane_charge.stack=4&buff.profound_magic.stack>=2&mana.pct>90
added ~620 DPS.

I added a line to finish the fight with Barrage:

Code: Select all

actions.single_target+=/arcane_barrage,if=(target.time_to_die<action.arcane_blast.cast_time)
added ~180 DPS

I've been playing around with lowering the 95% mana for Abarr requirement, but it seems to be detrimental

Other ideas that I haven't tested yet:
-Going with the highest sp.coeff/time rotation during trinket procs, then using a lower dps manaregen cycle to recover afterwards
-Ending the last x seconds of the fight (x=probably between 2 and 20) staying at 4 stacks without consideration for your mana, ending in Abarr
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC]Arcane SimC APL

Unread postby Komma Thu Jun 12, 2014 7:28 pm

<snip>
The issue is seldom theory behind improvement, but the implementation. For example, we know for a fact that AT can be delayed during PBoI to wait for potential KTT/BBoY/Meta gem procs, for increased gain. We also know for a fact that with increased stacks of 2T16, you can choose to AB at lower and lower mana. The execution is where the difficulty lies. There are many edge cases to think of, and it's hard to make changes to make maximum use of theory.

Using your "burn mana at end of fight" example, how do you determine the threshold when to start burning? Haste changes the number of remaining casts for a specific amount of time. Your current Arcane Charge stacks, set bonuses, meta gem procs and maybe mana gem cooldown will all change the mana consumption/regen estimate. Having multiple targets means you have more bombs, which means more AM procs, and lower mana consumption as well. Your mastery level also changes the penalty that lowering your mana will cause.
Adding

Code: Select all

actions.single_target+=/arcane_missiles,if=buff.arcane_missiles.stack=2&buff.arcane_charge.stack=3
in front of

Code: Select all

actions.single_target+=/arcane_blast,if=set_bonus.tier16_2pc_caster&buff.arcane_missiles.stack<2&buff.arcane_charge.stack=4&buff.profound_magic.stack>=2&mana.pct>90
added ~620 DPS.
I'm not sure about this change. It does nothing most of the time, because the blast weaving already requires <2 missile stacks and 4 arcane charges. The only change this would make is during Arcane Charge building before each AT usage, and spend missiles to get from 3 to 4 charges. Does this mean that having 1 AM 1 2T16 buff is better than having 2AM and no 2T16 buff for AT?

I ran 250K iterations and saw a 200 DPS increase. Not sure how this is working.
I added a line to finish the fight with Barrage:

Code: Select all

actions.single_target+=/arcane_barrage,if=(target.time_to_die<action.arcane_blast.cast_time)
added ~180 DPS
Due to the 40 yard range, a better version would be

Code: Select all

actions.single_target+=/arcane_barrage,if=target.time_to_die<action.arcane_blast.cast_time&target.time_to_die>travel time actions.single_target+=/fire_blast,if=target.time_to_die<action.arcane_blast.cast_time
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
Vog
Posts: 33
Joined: Fri May 30, 2014 4:08 pm

Re: [TC]Arcane SimC APL

Unread postby Vog Mon Jun 16, 2014 7:02 pm

Over the last days I've tested out a large amount of modifications to Komma's updated APL, but most provide no improvement or questionable improvement given that they are below the DPS Error.

One thing that appeared to work though is to add a burnphase in the last 12 seconds of the fight in which you ignore the use of barrage to reset your cycle and instead keep on casting 4-stack Arcane Blasts and Missiles, disregarding mana concerns. The aim is still to end the fight with a Barrage or Fireblast though.

Adding &target.time_to_die>12 as follows provides a ~800-1k dps increase at 250k iterations and 250s fight length:

Code: Select all

+=/arcane_blast,if=buff.profound_magic.stack=4&buff.arcane_charge.stack=4&buff.arcane_missiles.stack<2&mana.pct>90&target.time_to_die>12 +=/arcane_blast,if=buff.profound_magic.stack=3&buff.arcane_charge.stack=4&buff.arcane_missiles.stack<2&mana.pct>90&target.time_to_die>12 +=/arcane_blast,if=buff.profound_magic.stack=2&buff.arcane_charge.stack=4&buff.arcane_missiles.stack<2&mana.pct>90&target.time_to_die>12 +=/arcane_blast,if=buff.profound_magic.stack=1&buff.arcane_charge.stack=4&buff.arcane_missiles.stack<2&mana.pct>93&target.time_to_die>12
and

Code: Select all

+=/arcane_barrage,if=buff.arcane_charge.stack=4&mana.pct<95&target.time_to_die>12
Note that the former is Komma's line

Code: Select all

actions.single_target+=/arcane_blast,if=buff.arcane_charge.stack=4&(buff.profound_magic.stack=1&mana.pct>93)|(buff.profound_magic.stack>=2&mana.pct>90)
written out in separate lines and adding &target.time_to_die>12 at the end, oddly enough writing it out into 4 lines appears to provide higher dps than this consolidated line.

What confounds me is that the mana pct >90 seems to provide the best dps for 2,3 and 4 stacks of profound magic, where I would expect there to be different points for the different stacks considering they reduce AB's mana cost by different amounts.
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC]Arcane SimC APL

Unread postby Komma Tue Jun 17, 2014 4:54 am

Nice finds on the time_to_die issue. My concern however, is that it's very gear dependent, and won't be a gain for all mages. Here's some idea of why this problem is much harder than it seems:
Mage mana regen = (1% per second ) * spell_haste_factor * (1 + 75% RoP mana regen) = 1.75% * spell_haste_factor
Arcane blast mana consumption = 1.67% * (1 + 1.5 * arcane_charges) * spell_haste_factor / (2 second base cast time)
At 4 stack, this turns out to be 5.83% * spell_haste_factor. This means that the net mana loss when spamming AB4 is ~= 4.08% * spell_haste factor per second. The main point is, the speed that you'll use up your mana depends on your spell haste, which is also affected by meta procs and bloodlust. How do you choose a good "time_to_die" threshold for both the entry Arcane mages with 20% spell haste and no meta gem, while making it work for 580 Arcane mages who are easily above 50% spell haste with frost armor, even before meta gem procs?
What confounds me is that the mana pct >90 seems to provide the best dps for 2,3 and 4 stacks of profound magic, where I would expect there to be different points for the different stacks considering they reduce AB's mana cost by different amounts.
I've messed with this a lot without success. One thought I had in mind was to simply compute the mana.pct threshold, considering the 11.67% mana cost of AB4:

Code: Select all

actions.single_target+=/arcane_blast,if=buff.arcane_charge.stack=4&buff.profound_magic.up&mana.pct>(96-2.9*buff.profound_magic.stack)
This did not give me an increase. Why? I don't know!

Another thing to keep in mind is the spell haste, as mentioned earlier. During bloodlust and meta procs, AB is GCD capped. This allows us to regen a higher % of mana during AB casts when compared to usual. However, SimC spell selection is decided when the cast begins, which means the hasted mana regen isn't taken into account. To do this, some additions/changes were made in the last few weeks: mana.regen should return the current mana regen per second. execute_time returns either the cast time, or gcd of the spell when it is GCD capped. Using these, we can guess how much mana a player will have at the end of the cast, and use it to better decide whether we should arcane blast more or drop stacks.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
Vog
Posts: 33
Joined: Fri May 30, 2014 4:08 pm

Re: [TC]Arcane SimC APL

Unread postby Vog Tue Jun 17, 2014 10:16 am

With regards to keeping the simcraft APL friendly to players of different ilvls, I understand why one would prefer to omit ilvl-dependent actions. One possibility is to try different gear lists, say every 5-10 ilvls and see what the optimal time is for each one and then make the time_to_die variable with ilvl but this would still be pretty rough and dependent on whether the user has the legendary metagem.
Another option would be to mathematically derive the optimal time_to_die point as a function of the player's spellhaste and mastery, but I have no idea if that's even feasible as you would have to consider future damage losses as a function of burning extra mana in the present.

Concerning the mana pct threshold, it could be simply that these cases don't occur frequently enough to show a noticable impact on dps. The 3- and 4-stack profound magic scenario's only had a count of 0.60 and 0.15 respectively.
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC]Arcane SimC APL

Unread postby Komma Tue Jun 17, 2014 3:32 pm

Concerning the mana pct threshold, it could be simply that these cases don't occur frequently enough to show a noticable impact on dps. The 3- and 4-stack profound magic scenario's only had a count of 0.60 and 0.15 respectively.
I wish that were the case. IIRC it was a DPS loss, beyond error bars.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Frosted
Posts: 1024
Joined: Thu May 29, 2014 5:09 pm

Re: [TC]Arcane SimC APL

Unread postby Frosted Tue Jun 24, 2014 4:06 am

This isn't strictly an APL thing, but I felt it should go somewhere to inform people.

Currently if you are using RoP, be cautious when employing the movement options which SimC offers. Due to how RoP is coded, the sim handles movement and it by immediately ending the buff. If we were to mirror this to in game events, it means that any time you move RoP itself would disappear and you would need to re-cast it. This obviously is a waste of globals, and will probably result in over-estimating the damage movement does to arcane DPS.

Return to “Arcane”

Who is online

Users browsing this forum: No registered users and 19 guests