Tags

wow (82) real.life (27) mathematics (19) info.tech (13) commerce (10) doomsday (7) runescape (4)

Search This Blog

Showing posts with label wow-raiding. Show all posts
Showing posts with label wow-raiding. Show all posts

21 July 2009

Not All Hitpoints are Created Equal

There is always question on whether the output of healing meters (healing charts) can be used in indicating a healer's performance. Unlike points of damage, where heals go matters. While everyone has use for a heal, some players will need it more than others.
 Healing meters (such as the 'Healing done' component of Recount) collect raw figures from the combat log. It becomes easy to assert, from skimming over the healing chart, that all hitpoints (HP) are created equal, with all players appreciating 1 HP of healing equally. However, I would not.

1. Factoring in absorptions
When a player inevitably takes damage, a healer can respond to it in any of two ways:

13 July 2009

The Spectrum of Classes


This spectrum diagram illustrates the position of WoW's nine playable classes in the class balance. It is two-dimensional: rigour is read along the horizontal axis, while tactic is read along the vertical axis.

Rigour: Any given class uses a certain balance of physical abilities (using a weapon and/or shield) and magical abilities (casting spells) in combat. The classes to the right place an emphasis on the magical, with the priest and mage being magically pure. Classes closer to the centre are hybrids, who appreciate a combination of the magical and physical. The druid enjoys most a balance of the two rigours. The mana line divides the spectrum into those who use mana and those who use other power sources. To the left are the classes who place emphasis on the physical, with the warrior and rogue being physically pure and to the left of the mana line. Hybrid classes near the centre can tweak their respective balances through talent specialisation, though pure classes at the extremes are resolute about their respective masteries.

Tactic: Any given class uses a certain balance of tenacity and ferocity when engaging in combat. Tenacious classes will mitigate the damage taken in an attempt to outlast the opponent. The tenacious warrior will reduce the damage taken initially through heavy armour, while the tenacious priest will heal the damage that is taken. Ferocious classes maximise damage dealt to end combat as soon as possible. The rogue and mage place emphasis on this. Tactic can be tweaked by all classes through talent specialisation. The classes at the junctions (warlock and hunter) enjoy the versatility that class pets bring, so as to exercise a level of control over this balance.

It would be important to note that I cannot find a place for the new death knight class in this spectrum. This may be due to the youth in their class development; Blizzard simply has not yet found a niche that they can fill. It may suggest any of the following:
  1. There are no more niches that a death knight (and future hero classes) can fill, and they are doomed to be patchworks of any of the nine original classes. In fact, death knights possess some of the qualities of paladins and warlocks.
  2. The domain of the death knight and other hero classes lies outside of this spectrum.

10 July 2009

Flagging for PvE

WoW's PvP flag is a game mechanic introduced in its earliest days, where it marks the player for player-versus-player (PvP) activity. While very simple, it also has ramifications on the player's experience of player-versus-environment (PvE) content. Needless to say, the flag does not need to be permanently up for a PvE raid.

In fact, the PvP flag should not be permanently up for a PvE raid. Patch 2.4.3 introduced the following change:
Zoning into an instance on a PvE realm will now drop your PvP flag.

The game approaches flaggable actions conservatively. While targeted attacks towards enemy players or targeted aid towards PvP-flagged friendly players will raise the flag, incidental attacks or aid will not. This means that:
  • Area-of-effect (AoE) heals (e.g. Prayer of Healing) cast by an unflagged healer will not affect flagged players, unless the flagged player was targeted on spell cast.
  • Raid-wide buffs (e.g. Prayer of Fortitude) cast by an unflagged buffer will not affect flagged players.
  • Healing a flagged player flags the healer.
  • Buffing a flagged player flags the buffer.

It would be safe to assume that a majority of players disable PvP. It is therefore best that, for a PvE raid on a PvE realm, any permanently raised PvP flag should be lowered! This is done though the player's portrait's drop-down menu shown above.

There is yet another important note for PvP flags. Many PvP quests written into the Quest Log will keep the flag up until completed or abandoned. If the flag stays up 5 minutes after disabling PvP, this may be why.

06 July 2009

The Clock-cycle Model of Chain Casting

Chain casting is an action where multiple spells are cast in succession with minimal delay between them. This is a crucial skill in raiding, where (provided that the person does not upset a mob's threat table) it improves individual performance, whether tanking, healing or dealing damage.

There are striking similarities between how one chain casts and how a computer's processor works. The following will draw parallels between the two, and may allow the chain casting process to be treated differently to frantic button-mashing. It would be important to know that the central processing unit (CPU) is the component of a computer that follows a series of instructions to produce a series of results. Only spells with cast times of some multiple of the global cooldown will be considered.

Processing an instruction <--> Spell casting
The instruction (in computing) is the atomic unit of a CPU's entire workload. the CPU can only digest one instruction at a time (though if it has n cores, it can process n instructions at the same time), and will do so in sequence.

When casting a spell, the player selects a target, decides which spell to cast and presses the appropriate button (in any order). The player does this repeatedly and sequentially while chain casting.

Clock generator <--> Global cooldown
A crystal oscillator which can provide a clock signal to a computer system.

By itself, the CPU has no concept of time and thus cannot process instructions (which take time). A clock generator provides a rhythm (the clock signal) to the CPU. As a certain amount of time passes between beats (clock cycles), the CPU can use this rhythm to perceive time. It will then process however many needed instructions in a clock cycle (or vice versa). The frequency of the clock generator is measured in hertz (Hz), or cycles per second.

The global cooldown (GCd) is the minimum time that needs to pass between spell casts, which (when not modified by Haste Rating or Bloodlust/Heroism) is 1.5 seconds. This corresponds to a frequency of 2/3 Hz. (As a side note, Haste Rating can reduce the GCd to 1 second and increase the frequency to 1Hz.) This GCd can provide a rhythm which avoids the need for button-mashing. Some long-cast spells (e.g. Greater Heal) take whole multiples of one GCd to cast, which can be spread over several multiples without losing the sense of rhythm (simply miss a few beats).

Clock multiplier <--> Chain casting ability

An interface showing a system's system clock settings.

The clock multiplier multiplies the clock rate by a certain number n, so that the clock signal actually used by the CPU is n times faster than the clock signal from the clock generator.

A novice player may be able to cast 1.5 second spells over 3 GCds (frequency of 2/9 Hz), which, if the GCd was used for the 'clock signal', would cast on a 'clock multiplier' of ~0.33.

Overclocking and resulting overheating <--> Practice and resulting fatigue
Overclocking the CPU involves setting its clock multiplier higher. This hastens the clock signal in use and causes the CPU to work faster. However, by working faster, the CPU also generates more heat. If it cannot withstand the heat, it will start introducing errors in its work.

With practice, the player can chain cast close to the maximum 'clock multiplier' of 1. However, if they keep this up, they will get tired (if done repeatedly, they may suffer burnout). In normal raiding, the practical maximum is not usually needed, and the player can afford to work suboptimally to keep their energy levels up.

Interrupt handling <--> Situational awareness
A (software) interrupt is an instruction for the CPU to stop processing a set of instructions (a process) and start processing another. It allows a single CPU to run several processes at the same time (multitask) by simply switching between them.

Raid encounters rarely involve simply casting spells at fast as possible. There are almost always random events to respond to. The player would chain cast as normal, then interrupt it to respond promptly to events needing attention. For example, a tank healer responsible for two or more tanks would need to switch constantly between them, devoting most of their attention to the target tank. Some attention would be reserved for recognising the healing needs of the other tank(s), as well as responding to the environment.

Something to consider
A Brunel University study found that working to a rhythm reduces fatigue. By casting in time with the GCd (or some other rhythm), less energy will be used and the player will be able to more easily sustain their performance in a raid.

01 July 2009

Playing the Blame Game

For many frustrated raiding groups, there are boss NPC encounters that stump them so many times. Those bosses might allow only a small margin of error; no matter how much knowledge and experience those players possess, a simple mistake made by any of them can snowball into a wipe. While still existing in all encounters, it is these ones that causation is most evident.

Simply, causation is the relationship between an event and its effect, such that the event causes the effect. Using this concept while diagnosing a raid wipe, the effect of the wipe can be credited to the event of a particular person's (or persons') misconduct (and therefore can be identified as something to avoid next attempt) if a causal relationship can be established.

Consider the following...
To demonstrate this type of troubleshooting, I will use a theoretic (though still plausible) attempt under the Archimonde encounter in the Battle for Mount Hyjal raid, the encounter in which causation may be the most evident. It would be important to note that, at level 70, the typical nontank health is ~7500. Archimonde has the following abilities:

Consider the following plausible scenario, where A is Archimonde, B and C are dps, H is a tank healer and T is the tank:
A casts Air Burst on B. B fails to break their fall (using Tears or otherwise) and dies from fall damage. Archimonde gains a Soul Charge (the silencing sort), which he immediately uses and cuts every nontanks' health by half. A then inflicts H with Grip, which C, who is the only curse dispeller in range, cannot dispel under the silence. A then casts Fear, making H run out of range of C into a Doomfire. H cannot heal through this much damage and dies. T is left vulnerable and A gains another Soul Charge. A uses it and kills both T and all melee dps. A starts spamming Finger of Death, eventually leading to a wipe.

Follies in diagnosing the raid wipe
The raid, diagnosing this wipe, would reasonably ignore all events after the tank's death and attribute the fault to the healer, who caused T's death by insufficient healing. (In the extreme case, T would be blamed for the wipe because they died!) Unfortunately, doing only this will not provide a full picture of the attempt. The insufficent healing was under extenuating circumstances, after all!

Diagnosing the raid wipe by buck passing

A buck and a set of playing cards used in poker.

H is now said to hold the buck. If H can attribute their fault to someone else's fault through causation, they are said to pass the buck, with such an action being called buck passing. Under buck passing between players, the buck will ultimately stop at a single player or group of people, who can be deemed ultimately at fault.

It would important to note that the effect of a preceding event is also the event of the succeeding effect. The following series of events can be constructed from the scenario, ordered according to reverse chronology and linked by causation:

  1. There is no one in melee range alive after the second Soul Charge and, after A's spamming Finger of Death, the raid wipes.
  2. T fails to receive sufficient healing and dies.
  3. H suffers unhealable Grip and Doomfire damage and dies.
  4. C is silenced from the Soul Charge and H is Feared out of range, so C cannot dispel H's Grip.
  5. B fails to break their fall when A casts Air Burst on them and dies, earning A a Soul Charge.

From this, the following series of causation can be derived:
  1. The raid wiped because the T was dead and not reducing A's damage to the raid in general.
  2. T was dead and not reducing A's damage to the raid in general because H was dead and not healing.
  3. H was dead and not healing because H suffered unhealable damage from Grip and Doomfire, which would have been healable if C dispelled Grip.
  4. H suffered unhealable damage from Grip and Doomfire, which would have been healable if C dispelled Grip, because C was silenced by the Soul Charge from B's death, and by the time C could cast spells again, H was feared out of range.
  5. C was silenced by the Soul Charge from B's death, and by the time C could cast spells again, H was feared out of range because ...



The series of events and causation can be merged into a chain of fault, which allows for a buck to be passed along it. By the time the diagnosis reaches point 5., the buck would have stopped at B, where B cannot blame anyone else. Here is where the ultimate fault rests, because if it were not for this player's action, the whole chain of events would not have happened! The raid would then consider this something to learn from and maybe would even discipline the player at ultimate fault.

Junctions of preceding causations
Could anyone along the series of events have introduced their own fault along the way, continuing the chain of events? If they did not introduce the fault, could the chain of events have terminated? Certainly (e.g. considering event 4., if C did not notice a 0.5 sec window of opportunity to dispel the curse from a H barely in range), but these can be ignored for any of the following reasons:
    • The preceding causation would have made it unreasonable for this person to have acted properly, e.g. if C was too distracted at considering the Soul Charge that they did not notice said window of opportunity.
    • A properly established causation can make said fault insignificant, and the chain of events would proceed the same way even if it did not exist.
    • For all practical purposes, the possible said fault is unlikely to happen. Whether it actually does is out of the scope of ordinary World of Warcraft raiding and can (depending on disposition) be predicted by divination or actuarial science.
    What if a proper causation holds yet the extra fault stays significant, if both (or more) were required for the series of events to continue? For example, considering event 3., there was in fact a second healer nearby (named J) which made the damage unhealable because they were not healing H? 3. then becomes a junction of two preceding causations: had C dispelled H's curse, J's healing would not have been needed, and had J healed H, C's dispel would not have been needed (at least for the meantime). Here, the buck splits into two, and they are passed up two separate branches of series of causation: while the raid figures out why Grip was not dispelled, they are, at the same time, figuring out why J was not healing H. The chain of fault then becomes a tree of fault.

    Groups at fault
    Consider causation 5. Say that B, while Air Bursted, was whispered to by another player D who was warning them (at the very last minute!) that they were airborne. This whisper distracted B so B ended up not interrupting their fall. There is then this following segment of the chain of events:
    1. B fails to break their fall when A casts Air Burst on them and dies, earning A a Soul Charge.
    2. D whispers to B about the Air Burst and B becomes distracted.
    There is then the following chain of causation:
    1. B fails to break their fall when A casts Air Burst on them and dies, earning A a Soul Charge because D whispered B about the Air Burst, distracting B from breaking their fall.
    2. D whispered B about the Air Burst, distracting B from breaking their fall because D anticipated B to fail to break their fall when A casts Air Burst on them and die, earning A a Soul Charge.
    3. B, as a matter of fact, fails to break their fall when A casts Air Burst on them and dies, earning A a Soul Charge because D whispered B about the Air Burst, distracting B from breaking their fall.
    4. D whispered B about the Air Burst, distracting B from breaking their fall because D anticipated B to fail to break their fall when A casts Air Burst on them and die, earning A a Soul Charge.
    5. B, as a matter of fact, fails to break their fall when A casts Air Burst on them and dies, earning A a Soul Charge because D whispered B about the Air Burst, distracting B from breaking their fall.
    6. etc...
    In this case, the buck is endlessly passed between B and D! This signifies that a group of people are at ultimate fault, where the faults of these people (in this case, B's and D's) are mutually dependent on each other. This is despite that the chain of events does have a definite beginning. Inspecting the series of events overall, it can be observed that if this group had not been at fault, the whole series of events would not have occurred! The raid would then consider this something to learn from and maybe would even discipline the group at ultimate fault.

    Of course, another person or group could have caused said group to be at fault; the group does not need to be at ultimate fault. This would extend the chain of fault further.

    Methodology
    The person or group at ultimate fault is the person/group who started the chain of events, and had they not done so, the chain of events as it is known to have occurred would not have existed. To find this person/group under buck passing:
    1. Construct a series of events from the wipe backwards. Each event should involve a single player's actions that make them at fault, and should exclude any actions beyond player control (e.g. the boss' behaviour).
    2. Construct a series of causation, connecting events together using "because" or "causes". Note where (if at all) the buck seems to pass between the same people and deal with it (no pun intended) accordingly.
    3. Merge the series of events and series of causation into a chain of fault. Analyse for any junctions (where an event joins several preceding causations) and groups at fault (where members are blaming on each other) and amend the chain of fault accordingly.
    4. Pass the buck up the chain of fault. Where the buck(s) stop(s), the person(s)/group(s) holding it/them are deemed to be at ultimate fault.

    24 June 2009

    Succeeding at finding an ice block

    FailBot has its uses for troubleshooting a raid wipe. However, due of the wording of its /ra output ("{Player} fails at {boss action}."), I do suspect that this AddOn was devised under a sadistic mentality. However, don't fret, as this series of guides will give help avoid these embarrassments!

    Sapphiron's Frost Breath AoEs the entire area for an enormous amount of damage. If you are not careful, you can easily end up a frozen corpse lying on the floor of his cold, cold lair. There are only two ways to avoid this demise:
    1. Be frozen in an ice block by Sapphiron's Icebolt.
    2. Hide behind someone frozen by Icebolt, breaking line-of-sight of the epicentre.

    When doing this encounter, it is a good idea to zoom the camera out, so as to get a wide view of the area. To increase the maximum range of the camera, execute the following slash commands:
    /console cameraDistanceMax X
    /console cameraDistanceMaxFactor Y
    where X and Y are arbitrary numbers. The valid range for X is 0-50 and its default value is 15. The valid range for Y is 0-3.4 and its default value is 1.

    You can tell when Frost Breath will soon be cast when Sapphiron flies up into the air (an action conveniently accompanied with a raid warning). When this happens, all players should gather in a common area (though still keeping 10 yds of distance from each other, since Icebolt also AoEs). This will ensure that everyone does not need to run too far to reach an ice block. Also keep in mind the various Chills that may be up; it is a good idea to stay away from these.

    With luck, Sapphiron will distribute three ice blocks evenly over the congregation; otherwise, they should still be in technical reach. He will fire them off in succession, so it is best to wait until the second one occurs before running for one. Avoid Chill areas, since they will slow movement speed by half if afflicted.

    Once behind an ice block, it is a good idea to check your line-of-sight (or lack thereof). You can do this by attempting to cast a ranged ability at Sapphiron. If you are positioned correctly, you will get an error saying that you are out of line-of-sight; otherwise, adjust your position accordingly. Just wait until the flash of blue, and you will have successfully weathered a frost wyrm's icy breath!

    28 May 2009

    Succeeding at lava waves

    Flame Tsunami (lava wave) is that annoying ability Sartharion uses that can send you spinning in circles. It is very difficult (impossible if Shadron is up) to heal through. Fortunately, there is some predictability you can exploit.

    A lava wave will always start at either the north or south side of the island, then sweep across the island to the opposite side. All lava waves originating from the same side will always have the same configuration of gaps. If coming from the north, there will be a gap in the centre of the island, while if coming from the south, there will be gaps in the east and west ends of the island.

    Just observing one side when Raid Warning calls out "The lava surrounding Sartharion churns!" is enough to tell where you need to be. Guild convention states that Sartharion be tanked at the south-east corner of the island, thus it will be easiest to turn towards the southern side when needed. There are two courses of action which you will need to choose between:
    1. If you see the lava wave's originating there (at the southern end), you need to be at either end of the island. As Sartharion occupies a large portion of the eastern end, the tank should stay in the eastern gap and the rest should be in the western gap. Of course, in this case, you will easily be able to judge where you need to go since you are observing the lava wave directly.
    2. If you don't see the lava wave's originating there (instead originating at the northern end), the tank should hop onto one of the "stepping stone" islands (off the main island) and the rest of the raid should be in the centre of the main island. However, during any drake phases, the raid may find that the (stagnant) lava off the west end is closer than the centre of the island. Do not be afraid to jump in; it is only slightly over lukewarm.


    Doing this, you will not need to use the A and D keys as much.

    Originally posted here.