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-tanking. Show all posts
Showing posts with label wow-tanking. Show all posts

30 October 2009

WoW Mathematics: Programming Your Warlock Tank

In a few rare NPC encounters, a warlock may be needed to tank a boss. Examples include Mimiron's Aerial Command Unit and Leotheras the Blind in Demon Form. While the focus of the warlock is to maximise threat, they may be interested in maximising DPS while generating the minimum amount of threat needed to hold aggro.

Fortunately, they have the mathematical tool of programming (not to be confused with programming computers) to work with. In its simplest form, linear programming, a certain value (e.g. profit, costs, or in this case a warlock tank's DPS) will need to be optimised (maximised or minimised). Of course, two chosen factors will influence that value (for this case, the number of casts of Shadow Bolt and Searing Pain), and, subject to several constraints, the right combination of both will need to be found.

This exercise gives a little insight to the workings of stat optimising utilities like Rawr.

29 July 2009

There's Something About Lady RNG

Computerised environments intrinsically lack randomness, so a random number generator (RNG) must be used where an unpredictable result is required. In effect, the RNG works on randomly generated data provided to generate a seemingly random number. Since this piece of programming code decides your fate and destiny in WoW in several cases (just like how Fortuna (Lady Luck) decides your fate and destiny in real life), it helps to know a bit about probability!

The golden rule of probability
Probability
is that branch of mathematics that deals with random phenomena to (among other things) determine how likely it will act in a certain way. It is important to know that, for truly random phenomena:
Random does not necessarily mean even or fair!

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.