Showing posts with label Combat. Show all posts
Showing posts with label Combat. Show all posts

Friday, June 28, 2013

Encrypted Text: Combat and the GCD

t15Every week, WoW Insider brings you Encrypted Text for assassination, combat and subtlety rogues. Chase Christian will be your guide to the world of shadows every Wednesday. Feel free to email me with any questions or article suggestions you'd like to see covered here.

The three rogue specs share many common mechanics. They all follow the same formula: generate combo points, use finishers, activate your cooldowns when they come up. The real differences between the specs only show up once you start playing them. Assassination is well-known for being more relaxed and favors pooling energy over spamming attacks. Subtlety rogues have a knack for massive burst damage via their complex cooldown, Shadow Dance.

Combat is arguably the simplest of the three specs, and is often characterized by its fast-paced gameplay and high actions-per-minute rate. Adrenaline Rush, which has been combat's signature cooldown for years, is designed to let you push buttons even faster. Assassination's Vendetta lets you hit harder, subtlety's Shadow Dance lets you use openers, and Adrenaline Rush doubles the numbers of buttons you can push. Unfortunately for combat, the concept of "push more buttons" can't scale forever.

The 1-second GCD

The GCD, or global cooldown, has multiple purposes. By invoking a minimum amount of time between abilities, Blizzard can reduce the amount of burst damage that classes can do. It ensures that the server has time to process each ability and action, so that spells don't occur out of order. Imagine if a mage could unload his entire mana pool into a barrage of hundreds of Ice Lances at once. It wouldn't be very fair for anyone else. A rogue dropping multiple Ambushes at the same time would be similarly overpowered.

Rogues have always had a short GCD. Even in vanilla WoW, we had a 1-second GCD that let us make split-second decisions and unload multiple attacks in short time windows. The default GCD is 1.5 seconds for most other classes, which made playing a rogue feel slightly faster and slightly more fluid. I was personally drawn to the rogue due to the quicker gameplay and the ability to react quickly to my enemies.

When 1-second isn't enough

A rogue's base energy regeneration rate is 10 energy per second. With a 1-second GCD, we could use a move that costs 10 energy every GCD. We don't have any DPS abilities that cost 10 energy, so we're obviously not using every GCD available to us all the time. Haste rating on our gear, buffs in our groups, and Bloodlust during burn phases can all increase our energy regeneration. There are also several spec abilities that grant bonus energy or increase our energy regeneration rate. All of those pale in comparison to Adrenaline Rush.

Adrenaline Rush doubles our energy regeneration while active. If we were pushing buttons every 4 seconds before, we're pushing them every 2 seconds during Adrenaline Rush. As we obtain more and more haste, we're able to use more and more abilities. Luckily for us, we've never quite reached the threshold of being able to use an ability every 2 seconds, so we've never been truly GCD-blocked during Adrenaline Rush outside of Bloodlust situations.

Shadow Blades and the 4-piece tier 15 bonus

The new 4-piece bonus on our tier 15 set cuts the energy cost of our abilities by 40% while Shadow Blades is active. If we have the set bonus, we can use 40% more abilities per second, or cuts the time between our abilities by 40%. Suddenly, we've moved from using an ability every 3 seconds to using an ability every 1.8 seconds. Shadow Blades also penetrates our target's armor and grants us double combo points, which means we want to pair it with Adrenaline Rush to achieve the maximum effect. The problem is that AR's energy-doubling effect would have us gaining enough energy to use an ability every 0.9 seconds, which is shorter than the GCD. What now?

Blizzard decided to allow the set bonus to drop our GCD by a few fractions of a second. There is already a Glyph of Adrenaline Rush that does the same thing, and yes, they stack. The goal was to lower the GCD enough to allow rogues to use their abilities as fast as the energy came in. Now, during SB+AR windows, our abilities have less than a second delay before the next one is ready to use. We're finding ourselves pushing Sinister Strike and Eviscerate as fast as we possibly can.

Latency doesn't like short GCDs

One of the biggest problem with enforcing a short GCD is latency. If you're playing with an average ping time of 100ms, it could be 0.25s before your Sinister Strike press leaves your computer, is processed by Blizzard's server, and then confirmed back to you. You won't know how many combo points your SS generated until you have less than half a second before your next move needs to be determined and then pressed. Who has reaction times that good?

If you're playing in a situation with high latency, like on wireless, your ping times could easily exceed 200ms. Now you're left blindly spamming Sinister Strike and hoping that you push Eviscerate at the right times. Blizzard's servers also had issues handling the low GCD times, as they're forced to process our incoming abilities faster and faster. Ghostcrawler confirmed that while lowering the GCD time might have fixed the energy capping problem in this tier, it also isn't a perfect solution.

What's next for combat?

When combat's whole niche is "push more buttons" it can be hard to figure out where to go from here. You can only push so many buttons so fast, and combat with the 4-piece bonus definitely pushed that envelope. In order for combat to continue to scale in the future, I think the 1-second GCD needs to be respected and other ways to boost combat's damage should be evaluated. The issue is that assassination and subtlety rogues are both nowhere near being GCD-limited, due to the high energy cost of their abilities and their lack of Adrenaline Rush.

How do you solve energy capping, then? I'm not sure. There's a lot at play with Adrenaline Rush, and most of the solutions feel very messy. Extending our max energy pool during Adrenaline Rush doesn't solve the problem, making our abilities cost twice as much but deal double damage is redundant, and inventing a new high-energy cost ability to use during AR is just making it Shadow Dance. The goal of Adrenaline Rush is to provide the rogue with a lot of fun, active damage. Teasing around the 1-second GCD is what we want to see happen. So how do you ensure that your energy regeneration never teeters into the sub-second-per-ability range? We'll have to wait and see. Sneak in every Wednesday for our patch 5.2 guide, a deep-dive into the world of assassination and combat rogue AoE rotations -- and of course, all the basics in our guide to a raid-ready rogue. Tags: adrenaline-rush, ar-sb, combat-energy, combat-rogue, combat-rogue-encrypted-text, energy-cap, featured, gcd, global-cooldown, guide-to-rogues, rogue-combat-encrypted-text, rogue-gcd, rogue-guide, rogue-info, rogue-talents, sb, set-bonus, shadow-blades, tier-15, wow-rogue, wow-rogue-info, wow-rogues

Filed under: Rogue, (Rogue) Encrypted Text


View the original article here

Friday, June 7, 2013

Blood Pact: Combat log kung fu for warlocks

Blood Pact Combat log kung fu for warlocks MONEvery week, WoW Insider brings you Blood Pact for affliction, demonology, and destruction warlocks. This week, Megan O'Neill is finishing out the World of Logs posts while she hunts for BC-era battle pets.

Have you ever tried to read the combat log? Maybe you're on the PTR testing a spell change or you want to know how often a new trinket procs, so you open the combat log chat window and start reading.

You get twenty-something lines down before you realize something horrifying -- that's only one second of combat. Your jaw slowly falls to the floor and you reach up to pull your hair out as you contemplate reading a combat log for an entire raid fight -- that can sometimes last more than six hundred seconds and includes far more actors than just you and the training dummy.

Luckily for us, when events are printed in a specified format without too much variety, computers can read and process --or parse -- these lines magnitudes faster than we humans can. World of Logs has graphs and charts to help us understand our performance, but it also includes what is basically Google for your combat log. Just like there are tips to speed up and pinpoint your browser searches, there are tricks you can use to query events better in the World of Logs expression editor.

Combat log queries 101

Compiler errors -- where you typoed a constant name or you put a number where the program expects a word or string -- are easy to make and easy to fix. When it comes to knowing the "words" or spelling of a query expression, there's really no substitute for having a dictionary open nearby. Like real-life vocabularies, you'll eventually learn expressions through either memorization or simply by using them all the time. Here's the expression editor list of constants and identifiers, and you can acquire a dictionary of spells by simply using a good database like Wowhead.

On the other hand, logic errors -- e.g., where you put an 'and' when you meant an 'or' -- will still give you results, just not the ones you wanted. The order of operations is really simple: anything within parentheses goes together and then the editor goes in order left to right.

sourceName="Ponerya" and spell="Incinerate"

AND: Using 'and' will tie together attributes and focus down your query results to specific events. This example returns all the times I cast Incinerate.

sourceName="Ponerya" or spell="Incinerate"

OR: Using 'or' means you're including a different item or attribute than the previous item. This example returns all the actions I did as well as all the times Incinerate was cast, whether it was mine or another warlock's.

(sourceName="Ponerya" or sourceName="Rekviem") and spell="Incinerate"

sourceName="Ponerya" and (spell="Incinerate" or spell="Conflagrate")

PARENTHESES: Much like math, you can write parentheses to group similar chunks together. In the first example, I grouped together warlock names to show all the times either of us cast Incinerate (but it would leave out all the times a third destruction warlock cast Incinerate). In the second example, I grouped together the spells to show all the times I cast either Incinerate or Conflagrate.

Tip: You can write the code all in one line, but entering a chunk of code on a new line can help you visually separate conceptual components and see if your logic will work as intended.

Now that we have the linguistic basics down, let's see a couple of warlock queries in action.
Blood Pact Combat log kung fu for warlocks MONWreak Havoc with a bouncing Shadowburn

Much like affliction has a glyphed Soul Swap to copy DoTs to two different targets, destruction has Havoc to duplicate a filler or Immolate to two different targets.

While Havoc is the reason for many awesome pictures of double dragons, a sweet trick with Havoc is to "bounce" Shadowburn onto a healthier target using a second target who is about to die. Since Shadowburn consumes an ember and is only available during the execute range of health (below 20%), it's a powerful hit, often hitting as hard as Chaos Bolt normally does.

This trick is applicable in both PvP and PvE, as both often have multiple targets: there's almost always a group of enemy players or the raid boss and his/her minions. All you need are two targets with at least one below 20% health. Since the Havoc target will be different from the Shadowburn target, and moving mobs or players can cause difficulties in selecting targets quickly, warlocks often use focus, mouseover, or specific target macros for Havoc.

/cast [@focus] Havoc

/cast [@mouseover] Havoc

/cast [tar="Tortos"] Havoc

But let's say you and I already have our Havoc macros ready and used. We stepped into Throne of Thunder and realized that the fourth encounter of turtle air hockey would give us plenty of Havoc-bouncing practice.

First, let's find out when I cast Shadowburn.

sourceName="Ponerya" and spell="Shadowburn"

Shadowburn is actually a complex spell: it deals damage and applies a debuff, and then 5 seconds later when the debuff falls off, it returns one of my class resources depending on whether the target died or not. This query result shows when I cast it, what got hit by it, how much damage it dealt, and how much mana I received from it. (Since the Whirl Turtles don't technically die but sit at 1 health point, you'll sadly never get embers from Shadowburning a Whirl Turtle.)

This query also shows all the times Shadowburn damaged the boss, but you won't see a line of me casting Shadowburn specifically on Tortos until the end (when Tortos fell under 20% health). Since I really only care about the Shadowburn and Havoc applications on Tortos, I'm going to focus the query a little more.

sourceName="Ponerya" and targetName="Tortos"
and (spell="Havoc" or spell="Shadowburn")

Havoc has 3 stacks and a 25-second cooldown. If you use Chaos Bolt with Havoc, you consume all three stacks with one Bolt. Everything else you can use with Havoc -- including Shadowburn -- consumes only one stack. So, assuming you time it correctly and have three full embers ready, you can hit Tortos three times with Shadowburn per Havoc application.

Blood Pact Combat log kung fu for warlocks MON

The times I remembered to hit Tortos with a Havoc, I never did so three times. Maybe I didn't have the embers? Maybe I wanted to refresh the Immolate on Tortos with Havoc? Maybe I forgot I had Havoc up and I cast Incinerate out of habit? We can expand the query if we want to.

sourceName="Ponerya" and targetName="Tortos"
and (
spell="Havoc" or spell="Shadowburn"
or spell="Incinerate"
or spell="Conflagrate"
or (fullType=SPELL_AURA_REFRESH and spell="Immolate")
)

Let's write it in English:

I want things only I cast, but only when the spells hit Tortos, and only these spells -- Shadowburn and also Havoc and also Incinerate and also Conflagrate and also whenever I reapplied Immolate.

From here, you'll get into complex combat logic like realizing that Incinerate has a travel time, so I would see me cast Incinerate twice before the first one even lands. And eventually you'll realize that sometimes the combat log goofs and puts events out of order, especially when multiple events happen within tenths of a second.

But I'm not here today to explain the intricacies of how the combat log interprets combat action. So let's move on to a proc and DoT example in the expression editor.

Blood Pact Combat log kung fu for warlocks MON

Tracking stacks with procs and DoTs

An important part of playing affliction is paying attention to gear and raid buff procs so DoT refreshes can be properly timed. But it's hard to tell with the buffs and debuffs graph exactly whether you applied a DoT when a trinket proc occurred, or if it was just holdover from before the proc. So let's explore with the expression editor how an Agony refresh is timed with that great stacking proc trinket, Wushoolay's Final Choice. (Since we often reapply DoTs with a Soulburn: Soul Swap, Unstable Affliction and Corruption should also be applied, but let's keep this simple.)

I don't care about when Agony ticked, so to borrow from the previous example, I'm only going to look at when I applied it, instead of also every time it dealt damage.

sourceName="Ponerya" and fullType=SPELL_AURA_REFRESH and spell="Agony"

Wushoolay's Final Choice actually has two effects going on: there's the duration of the buff and there's the stacking intellect buff (the tooltip has a placeholder number). The part we care about is the stacking intellect buff. In combat, the right overpowering number of stacks varies depending on what has been proccing so far for the player, but the general rule is to refresh DoTs with a Soulburn: Soul Swap on the fifth and tenth stacks of the buff. I also care when the stacking buff fell off, so the code becomes:

sourceName = "Ponerya" and spell = "Electrified"
and (amount >= 5 or fullType = SPELL_AURA_REMOVED)

Here's the combined query on a Patchwerk-like fight like Jin'rokh normal:

sourceName = "Ponerya"
and (
(spell="Agony" and fullType=SPELL_AURA_REFRESH)
or
(spell = "Electrified" and (amount >= 5 or fullType = SPELL_AURA_REMOVED) )
)

Blood Pact Combat log kung fu for warlocks MON

And...that's really it for looking at a DoT with the expression editor. If we care about overall or average damage done, we'll probably get more use out of one of the charts or graphs.

You forgot demonology AGAIN

In fact, I've been spending the past couple of weeks playing demonology in a variety of PvE environments, for my own betterment at playing that spec I rarely play, but also because the ungodly awesome AoE makes me feel useful on Lei Shen 25N. I spent this week's column using destruction and affliction examples so I could spend an entire column next week drilling down on two demonology warlocks with CompareBot.

See, I didn't forget at all.

Blood Pact is a weekly column detailing DOTs, demons and all the dastardly deeds done by warlocks. We'll coach you in the fine art of staying alive, help pick the best target for Dark Intent, and steer you through tier 13 set bonuses. Tags: affliction, agony, buff, combat-log, debuff, destruction, DoT, expression-editor, featured, guide-to-locks, guide-to-warlocks, havoc, lock-guide, lock-info, lock-talents, proc, shadowburn, warlock-guide, warlock-info, warlock-talents, world-of-logs, wow-lock, wow-lock-info, wow-locks, wow-warlock, wow-warlock-info, wow-warlocks, wushoolays-final-choice

Filed under: Warlock, (Warlock) Blood Pact, Mists of Pandaria


View the original article here