Tuesday, July 8, 2008

Hate, aggro, threat - Managing NPC hostility

An understanding of "aggro" in World Of Warcraft is key to your success against computer controlled opponents. When you understand how mobs react you are able to control the fights to ensure victory.

First, what is "aggro"? The terms hate, threat and aggro are often used interchangeably. They all mean essentially the same thing: how annoyed the mob is at you. This is a measurable, numeric value. The higher it is, the more that mob hates you.

Each term overlaps the others but there are certain loose definitions:

Hate: The numeric value measuring how much a particular mob "hates" you. Each mob keeps a separate value for each combatant in range. These values go up or down as the fight progresses depending on the actions of each combatant. Hate values on each mob are tracked separately.

Threat: The value added to a mob's hate list for each action performed in combat. Each attack adds threat, some special abilities remove threat. Tracked independently by each mob.

Aggro: Loosely defined as being the focus of attention from a mob. "Holding aggro" means you are the one who the mob hates the most and will be attacked by it if possible.

Aggro radius: An area about each mob where it can detect and react to hostile combatants. The aggro radius around individual mobs can interact with other mobs of similar type to cause a chain reaction of hate activation.

In general, actions done by a combatant cause threat to one or more mobs, increasing their hate levels towards that combatant. NPC's can have threat and hate towards each other as well as towards players, if the npcs are of hostile factions. Some actions cause hate to all mobs in range, others only to the mob affected by the action.

On to some examples. A young Cryptography, neophyte undead rogue, is standing safely out of range of a single skeletal soldier near the Agamand Mills. Crypto is well beyond the skeleton's aggro radius, so it does not yet know he exists. As Crypto walks towards the skeleton, he crosses the edge of the aggro radius. Immediately, the skeletal soldier is now aware of Crypto and starts rushing towards him. Crypto now "holds aggro" from that skeleton. Being a cowardly soul, Crypto immediately runs away. The skeleton pursues Crypto for quite a distance before breaking off and returning to its starting location. Crypto caused no threat from any attacks, but, since he was the only one on the skeleton's hate list, he "held aggro".

Some little time later, Crypto returns to face the skeleton. He now knows roughly how close he can get before triggering its aggro radius, so stays carefully outside that range. With careful manoeuvring, he can be in range to attack with his bow but still be outside the aggro radius. He sees an opportunity and shoots the skeleton! Instantly, Skelly-boy is made aware of Crypto's presence - an arrow in the ribs being a rather pointed indicator of something being wrong - and rushes over to chastise the young rogue! After a few exchanges of blows, Crypto is taking the worst of it and runs away again. This time, Crypto made several threat-generating attacks on the skeleton but since he was again the only one on the threat list he still "held aggro" and thus the mob's undivided attention.

Deciding the skeleton is too tough to tackle alone, Crypto teams up with another neophyte undead. Mortified is a young mage, barely out of the academy. She's brash and impulsive, supremely confidant in her abilities but aware of the limitations of wearing cloth armour. The plan is discussed beforehand and Crypt will attempt to "pull" the skeleton with his bow before Mortified opens up with her fireball. A few quick shots should smash the nasty skeleton!

Crypto again walks up to just outside the skelly's aggro radius. Mortified is standing some ways back. Crypto fires his bow and the skeleton rushes towards him waving the large axe vigorously. Mortified starts casting fireball, which completes and zooms off to splash explosively against the skeleton's chest just as it reaches Crypto and takes its first swing. Immediately, the skeleton roars and rushes over to Mortified, smashing her to the ground in a few swings of his axe despite Crypto's best efforts with his dagger in its back! When Mortified is dead, the skeleton turns its fury on Cryptography, who almost manages to kill it before also falling to its attacks.

What happened here is that Mortified's potent fireball attack mean that she overtook Crypto on the skeleton's hate list. Mobs attack the one they hate the most... which was the tissue-paper clad mage. Crypt's attacks with bow and dagger did not generate sufficient threat to retake aggro before the mage died. Mortified "stole aggro" and died because of it. Next (and only) target on the mobs hate list was Crypto, so once Mort died, Crypt was targeted and killed.

A little later, after respawning and healing up, Crypt and Mort wish to try again. This time, Mortified will wait a bit before opening up with her fireball. Hopefully Crypt will survive long enough in his better armour to finish off the skeleton.

Using more or less the same tactics as last time, Crypto gets just within bow range before attacking. Mortified is somewhat further back but waits before casting. The skeleton, arrow bouncing loosely in its ribs, charges at Cryptography. When it gets close enough, Crypt stabs it several times with his dagger and manages to take only a few blows from the creature's axe before the first of Mortified's fireballs crash into it. This time, the skeleton goes down! Crypt is in fairly good shape and Mortified is completely untouched. Victory and loot is theirs!

This time round, Crypto built up a reasonable amount of hate before Mort' s high-threat fireballs kicked in. By waiting a few seconds before opening up with her attacks, Crypto was able to "hold aggro" throughout the fight and his much better armour meant that they both survived long enough to finish off the skeleton.

(I will post this now but plan on editing it later.. got to do some work!)

No comments: