Thursday, February 28, 2013

Why Raid Teams Fail

In early 2008, I read a book on team management. Shortly after reading the book, I imposed a number of changes to our rules, which would go on to form the foundation for a restructure of the guild. It is my belief that those changes paved the way for our defeat of Archimonde, which is detailed in this blog postFor your enjoyment, here is the refined forum post I made, months after Archimonde's defeat, at the start of Wrath of the Lich King. It is, in essence, the World of Warcraft raider's interpretation of The Five Dysfunctions of a Team.

---

Raid teams, like any group of individuals working together as part of a business organization or sports team, can be prone to dysfunction. This dysfunction typically manifests in five ways, each one acting as a catalyst for the next. They are:
  • Absence of Trust
  • Fear of Conflict
  • Lack of Commitment
  • Avoidance of Accountability
  • Inattention to Results
What follows is a description of each, along with examples. As well, I provide a number of solutions for each, as you attempt to solve those problems with your own raiders. Dysfunction begins with trust...or lack thereof.

Absence of Trust

Trust is a fundamental part of what makes people work well together. When players in a raid do not trust one another, it leads to issues:
  • They are unable to admit their own mistakes, and prefer hiding them in anonymity
  • They rarely ask for help from others regarding their class and play
  • They typically do not offer assistance outside their own area of expertise
  • They are quick to jump to conclusions when considering why other raiders are making certain decisions, without asking for clarification
  • They hold grudges
  • Eventually, they avoid signing up for raids
In order for a team to function correctly, and increase the level of trust between raid members, players need to consider:
  • Admitting to mistakes and their own shortcomings, without fear of alienation or rejection
  • Ask for help
  • Openly accept suggestions/recommendations on how they can improve
  • Give fellow raiders the benefit of the doubt before arriving at some predetermined negative outcome (ie. "He died in the fire because he always dies in the fire--he's a shitty player"...when in fact, the player in question just received news about an ill family member)
  • Take risks in offering feedback to others
  • Appreciate the value of other raiders' expertise, and take advantage of their knowledge
  • Focus effort into valid issues (ie. "How can we better optimize moving ghouls from spawn to off-tank in Phase 1?"), not into wasteful politics (ie. "All of our attempts are going to fail because we have two Paladin tanks, and we have to have at least one Druid tank!")
  • Offer/accept apologies without hesitation (this relates DIRECTLY to the first point)
  • Look forward to future raids in which to implement the points above
In short, foster an environment where players are encouraged to speak, ask for help, and admit mistakes without being publicly humiliated...a task best started with YOU. Don't judge (unless you're a Paladin), and keep people focused on growth, improvement, and what better progress will be made when you return to the raid next week.

Fear of Conflict

When a team has an absence of trust, they become fearful of producing any sort of conflict. Conflict is not always a bad thing; it is normal in most relationships and organizations, and is a healthy part of an engaged team environment. It opens up the channels of communication, and gets members passionate about what they believe to be important. In raids, conflict often manifests as a result of failing to kill a boss. A raid that avoids conflict usually looks like this:
  • Completely quiet in vent. Often dull/boring
  • Play environment encourages politics and personal attacks (ie. Vent remains quiet, while /officer chat lights up, blaming a bunch of individuals for a particular wipe)
  • Controversial topics critical to raid success are avoided (ie. Continuing to support/enforce/rotate in a failing Tank that is key to the success of the raid, rather than speaking up)
  • Other members of the raid are not considered for their opinions, many of which may be valid, but are suppressed due to the first dysfunction - Lack of Trust
  • Wasted time pouring energy into defending one's own position rather than tackling the real issue at hand (ie. "Well, I healed through that Unchained Magic because the damage is trivial and I can control it" - instead of - "We all need to be actively watching Unchained Magic and holding our casts to the best of our ability")
In order to allow conflict to become a healthy part of a raid team, players must:
  • Have interesting, lively raids, where people communicate openly and easily. This is one of the reasons why we've never enforced a "raid-vent-silence" channel, where only one person speaks.
  • All raiders' ideas/opinions ought to be polled on strategic solution, regardless of how significant their perceived contribution may be. This is why the Raid Leader works with the Role Officers in order to resolve boss failures, rather than do it all himself. In many cases, individual Raiders also contribute to strategy resolution.
  • Keep politics to a bare minimum
  • Attack the most important issues first, and solve them quickly
Conflict is not to be swept under the rug; it's vital to every well-rounded team. Raiders are no different. Keep communication flowing, but be firm and educate your players when the appropriate time to speak is (you're not cracking jokes while listening to raid calls; save the chit-chat for trash clears). When a raid wipes, get to the heart of it. Speak up about what you've observed, but don't be negative, just objective. Be respectful. And if you call someone out, make an effort to bring a solution along with you, not just the problem. Scrubs complain. Expert team members solve.

Lack of Commitment

Once a team is resigned to avoiding conflict, the decisions they make permeate into a behavior that lacks any sort of commitment to the raid at hand. Commitment is an absolute requirement of raid success, no questions asked. The raid leader gives an instruction on a particular boss, and when you decide for whatever reason that you don't feel the need to meet that expectation, you are setting up the entire team to fail. A raid without commitment:
  • Causes raid members to be ambiguous about what they are responsible for (ie. "Uhhh....so, I'm not really certain about what I need to do when I get marked for an ice-block during Sindy, so...I guess I hope I don't get marked!!")
  • Loses opportunities to improve/solve a problem while issues are over-analyzed and unreasonable delays occur
  • Encourages raiders to stay quiet, and not admit when they make mistakes, thus delaying the resolution for future attempts, as well as eat away at the player's own confidence of being able to execute at all.
  • Constantly goes over the same issues. Again. And Again. And Again. And Again.
  • Causes raid members to second-guess one another (ie. "Oh great, we have so-and-so in the raid again, well...here goes any hope of completing the heroic achievement on Sindy!")
In order to combat the lack of commitment, a raid team must:
  • Create clear and concise expectations of raiders. This is why we have role officers, and why they are in place to create healing assignments, which side of Valithria the melee needs to be on, which foot melee needs to be on for Festergut, etc.
  • Focus the team on the common goal (kill the boss!)
  • Develop the ability to learn from mistakes: Acknowledge it. Ask for/receive clarification (without prejudice). Make the change. Problem solved.
  • Take advantage of opportunities before other guilds do. (read: Opportunities, not EXPLOITS)
  • Move forward on decided-upon strategy, without hesitation (ie. "Well, we've done Strat A on Heroic Lich King for two weeks, and now the Raid Leader changes it to Strat B...he must have a good reason, so I'll make these changes on my end as well")
  • Adapt and/or change strategy as needed, without hesitation or guilt. As much as we can avoid, we typically do not change strategies on a boss mid-raid, but sometimes it is necessary (and typically the RL makes the right call on this)...and when it happens, EVERYONE needs to be on board.
Be committed to the end result. Narrow your focus on the goal (but don't play with blinders on and die in the fire!) If you make a mistake, don't be silent...ask for clarification, make it crystal clear in your mind. And if you have opportunities to gain insight, whether it be researching strategies on the web, watching videos, or reaching out to fellow raid guilds -- don't turn your back on these options. Take every legitimate opportunity you can to make the end goal reachable.

Avoidance of Accountability

A team that fails to commit produces a bunch of wishy-washy, less-than-adequate players who take no responsibility for their own actions; they avoid accountability. Raid teams that avoid accountability:
  • Produce resentment among raiders who have different standards of play
  • Encourage people to play at a level we can only consider 'mediocre'
  • Allow players to miss raids without consequence
  • Place an unhealthy amount of stress and burden on the raid leader as the sole source of rule enforcement
If you want to build and enforce more accountable players in raids:
  • Ensure poor performers have incentive to improve. This is why we have the guild rank/reward structured as we do. Mini-goals are achieved based on performance, and rewards are then showered on the player to celebrate the accomplishment.
  • Identify problems quickly by openly questioning other members' approach without hesitation (ie. "So-and-so, I see you are still casting while you have Unstable Magic, what's going on there? I thought the deal was to stop casting...")
  • Establish acknowledgement/respect for raid members who are held to the same high standards (relates to the guild ranks listed above), thereby validating the effort of those players who are truly committed
  • Delegate the handling of individual groups' expectations, which are clearly defined and explicit (ie. Our role officers handle each subsequent group in healing, melee, and ranged DPS. A healing officer, therefore, can be expected to state: "Healing assignments are posted - if you fail to heal these people, you are removed from the raid - Questions? /w RL, the healers are ready...").
Players that demonstrate accountability are truly a sight to behold in action. They jell with extreme efficiency, communicate clearly, and see the success of the entire team as it is their own personal responsibility. This builds a healthy balance between raid leader and raiders, and provides incentive for players to improve, grow, and eventually gain rank and status within the guild. In turn, this will cause your raid team to gain status on the server (or perhaps beyond).

Inattention to Results

A raid full of players that couldn't care less about what they do is a sorry sight to see. Their individual poor performances lead to consistent raid wipes for a multitude of reasons...many of which are easily identifiable and solvable. But nobody cares about solving them. Their attention is elsewhere--whatever is on TV, what the current score is during the Football game. It's sad and pathetic to watch, and painful to be a part of. Raids that don't care about their success or failure:
  • Fail. Period. They do not improve, nor care to.
  • Are beaten by other guilds in progression.
  • Cause the very best raiders in the guild to begin looking elsewhere for a guild
  • Encourage individual raiders to focus on themselves instead of the team/guild as a whole.
  • Are easily distracted--(ie. cracking jokes and spamming ASCII-art macros in General Chat while inside a raid).
When raid teams care about what they do in a raid, and make an effort to examine the finer details of raid strategy, they:
  • Retain the best and brightest players
  • Minimize individualistic behavior (ie. "The healing assignment went out, and I'm assigned to heal X, but I'd rather inflate my numbers on WorldOfLogs.com, so I'm going to do XYZ instead!")
  • Are able to enjoy both success and failure, because they fully understand that each is needed, and leads to growth
  • Benefit from team members' skills whose personal focus shifts to the success of the team (ie. "Wow, if it wasn't for that one DK who Chains/Gripped that Blood Beast, I'd have been killed for sure. His DPS went down a bit, but...well...we killed Saurfang!")
  • Avoid Distractions (ie. I can only imagine how many wipes we have avoided by not being in General Chat and missing some crude/stupid joke or macro that catches the attention of a key tank or healer, causing the entire raid to die).
There it is. Start repairing your raid team by building the foundation of trust, encouraging conflict, driving commitment, enforcing players to be accountable and ultimately driving the quality of what they do onward and upward. If you succeed at applying these rules, I guarantee that you will kill raid bosses with great efficiency, because you will have a great team.

Tuesday, February 26, 2013

2.38. Day of the Dog

Descendants of Draenor defeats Shade of Akama,
Black Temple

Services No Longer Rendered

Akama huddled in the shadows with a sickle in each hand, his eyes fixed on the six summoners keeping his darker, shadowy essence jailed in eternal servitude. Illidan was all too suspicious of his Broken comrade, seeing through his mask of withered features and tentacled beard. He knew the truth. Inside, Akama was, and always will be, a Draenei, a force for good powered by the light of the Naaru -- an alien race destined to overthrow the burning legion. This being the same legion that Illidan now served under, so it was in Illidan's best interests to enslave Akama's shade, guaranteeing his loyalty. Illidan had the foresight to see Akama's eventual betrayal.

All we saw was a loot piñata.

Blain instructed us to split into two groups covering two trapezoidal doorways on opposing edges of the room. The Ashtongue Deathsworn flooded the room from those two entryways, the unwavering allegience binding them to defend the Shade of Akama. Meanwhile, at the top of the steps, summoners encircled the Shade and needed to be brought down. Our raiders unleashed fel fire, frost and arcane missiles, and volleys of arrows while the summoners struggled to maintain imprisoning beams ensuring the Shade of Akama stayed bound to Illidan's allegiance. Blain put the best and brightest DPS on those summoners; it was imperative that the magical prison be disrupted quickly. Only then would the Shade be unleashed, attacking its master while we joined Akama in severing his unwilling servitude from The Betrayer.

"C'mon, c'mon, we're behind," Blain called into Vent, noting that every second we wasted in inefficiency was adding to Akama's impending death. If Akama fell victim to his Shade, the encounter would be a wash. I watched the damage meters as I tried desperately to beat Melkezadek, an undead shadow priest who consistently schooled me. We were neck-and-neck and for a brief moment; I felt like I might actually pull ahead. The Shade of Akama fell over dead, with Dalans exclaiming, "That's it?", pointing out the sheer insignificance of the fight.

Melkezadek had pulled ahead. I remained the undefeated champion of 9th place. Two spots above him was Eacavissi, one of the longest running and most successful warlocks in Descendants of Draenor's history. I had acknowledged his proficiency with the warlock long ago, making him my warlock officer following the events of the second exodus.

"Almost got you, Eaca," I said menacingly.

"How's ninth place treating you?" he replied. I imagined him grinning on the other end.

One week earlier, Eaca was playing a different tune.
Eacavissi at the top of the meters for Gruul,
Gruul's Lair

"DPS harder!!"

Eacavissi was a warlock to be reckoned with.

The guy was often unmatched in the ranged DPS department. His destruction capabilities commanded the top spot among casters in DoD raids. Eaca carried himself in a typically quiet and reserved manner, but his power spoke for him. When he wound up his Shadow Bolts and lit his targets up with Corruption and Immolate, he produced so much damage that his threat burst out of Omen like a lanced boil; even the best of tanks struggled to keep control of mobs under Eaca's fire. It became a running joke in the guild that Eaca's tactic in dealing with mobs he pulled off of tanks was to DPS harder, killing them before they reached his position far to the back of the room. We bugged him about it regularly, but don't confuse playful ribbing with an attack on his skill. Eacavissi knew exactly what he was doing every step of the way, and it was his mastery of the warlock that caused Recount to float purple bars to the top.

Zanjina was constantly swimming upstream in Eaca's wake.

Cutting over from a tauren shaman to a troll priest mid-way through tier 5 was the first strike, and the change of roles from healing to damage didn't help. It wasn't that dps was more difficult -- ranged damage is unequivocally the easiest role to play -- but old habits die hard, and in my quest to act as the raid's mana battery, I found myself continually dropping out of Shadowform to save people. Coming to terms with the fact that my priest was no longer in a role of player preservation was an exercise in discipline. I worked on it every night, that scab that you just want to scratch, to pick at until it bleeds, not giving it a chance to heal. I just had to shake it off like a driver about to fall asleep at the wheel. Resist the urge to drop Shadowform. You're not helping anyway with pathetic Renews. Keep Vampiric Touch up. Keep Blasting. Keep Flaying. I kept on it, amid the knowledge that a troll priest's racial, Hex of Weakness, was an embarrassing joke in comparison to that of an undead priest's Devouring Plague. I kept on it, even with my sub-par Frozen Shadoweave, which didn't hold a candle to Eacavissi's Corruptor Raiment. I kept on it, and was sure to remind Eaca that he better watch out, that one day I would catch up to him. He laughed it off, knowing full well that a troll priest lacked the tools necessary to match the power of a destruction warlock.

And then one day, we arrived at Supremus.

Descendants of Draenor defeats Supremus,
Black Temple

Supremely Irritating

At the far eastern end of the illidari training grounds, the monster stood. He was an infernal of absolute immense proportions; I felt as though Zanjina would fall backwards simply from the act of having to tilt the camera so sharply toward the sky...just to frame the boss on my screen. He felt larger than any other boss we'd come toe-to-toe with, and those toes were large enough to crush the entire raid in a single, insect-squashing stomp. His eyes were bluish fire burning holes into deep sockets in that rock of a head, staring mindlessly forward, guarding the entrance to the inner catacombs of the Black Temple. We cleared the entire training grounds in preparation for the mother of all kites.

Phase one was simple. Tank-and-spank the big boy while side-stepping columns of blue flame that snaked out from his feet. The flame was not unlike Doomfire in their tendency to attune to new targets, but far less detrimental to the success of the raid. One could burn up in Supremus' blue flame, and the worst consequence would be a multitude of raiders pointing out your violation of the fundamental rule of raiding. The gargantuan rock monster also employed a Hateful Strike. Since DoD had never experienced Patchwerk during Naxxramas, this was our first taste of it. Gruul's Hurtful Strike wasn't nearly as impactful. More than ever, melee was going to have to be exceptionally careful in their positioning, for if the off-tank's health were to drop below their own, their lives would end in tragedy and humiliation. For this, Blain requested that all raiders (save the tanks) remove their Power Word: Fortitude buff.

Wonderful. Now Zanjina has even less health. You should be eating dirt in no time.

Phase two was when the pace picked up. Fixing a gaze on a player, Supremus would chase them relentlessly. Visually he appeared in slow motion, as if chasing us at the bottom of a pool. But his great size allowed him to cover a large distance with ease. If an unlucky player allowed Supremus to close said distance, the enormous Infernal would punt the player across the training grounds, forcing them to run back into the fight, losing precious healing or dps time. And what Supremus attempt would be complete without a myriad of volcanic eruptions spewing forth greenish hellfire into the raid? The geysers were unrelenting, catching players that ran around in a panic, killing them in seconds. Even the great and powerful Eacavissi was having problems with kiting. We ground out attempt after attempt; many of them ended in a slow, painful loss due to attrition.

Supremus didn't scare me. I lit him up with dots, blasts and flays as I had with every boss that preceded him. I had no problems turning and running when the time came for Supremus to become my best friend. Players struggled to heal, to DPS, to move in and out. For me, his towering inferno of intimidation was a non-factor. He'd fix his gaze on me and I would turn and run, eyeballing my DoT Timers, ready to refresh Shadow Word: Pain at the click of a button. I never needed to stop and turn to face my chaser, the risk to help burn him down and meet a fiery fate by his boot was too severe.

After a multitude of wipes, the raid finally managed to turn Supremus into a pile of rubble. Kiting all the way down to the far end of the training grounds was a lost cause; only when we decided to keep the kiting area constrained to Supremus' starting point did we begin to really get a handle on the boss. Recount was hidden from my UI, so I clicked a button to bring it back into view, seeing how I fared against the mighty Eacavissi. I beat him. I beat the entire raid. I was #1 on the meters. My DoTs had given me the edge on this fight which caused everybody to be constantly in motion.

"Suck on that, Eacavissi!" I called out into Ventrilo.

"Enjoy it while it lasts!" he called back. Finally. I could clock out of The Burning Crusade claiming victory on at least one boss. It wasn't much, but I took the tiny win regardless. One is better than none.

Every dog must have his day.

---

As the raid began to dissolve for the evening, Blain called everyone's attention in Vent.

"Have your PvP trinkets ready for next week, people."

The signal gun had been fired. Archimonde was next on the shit list.


Thursday, February 21, 2013

2.37. Sacrificial Lambs

"Whiplash"
Artwork by Phroilan Gardner

Alcoholic Muppets

The eighth wave of the undead scourge had arrived, fueled by the power of the burning legion. Our raid broke apart into groups, swiftly executing their appropriate assignments, slicing into abominations, unleashing barrages of arcane and nature and fire into banshees and crypt fiends and fel stalkers. Behind us, Thrall stood diligently at the base of an orcish town hall. Next to him, the body of an enormous yellow doomguard still lay face down in the dirt. Ater called out to prepare everyone for positioning as the pit lord made his appearance. The previous bosses had been trivial by comparison, but Azgalor would not be so easy. His strategy would require discipline, timing and coordination. If we could pull it off, the guild would see their first tier 6 tokens in the form of gloves. In order to make that happen, some of us were going to have to die.

Azgalor waddled in to the area with all the grace of a drunken Snuffleupagus. Immediately, Ater took hold of the demon and swung him to face Thrall, pulling him back to the orc town hall as fast as possible. We stayed our hand as threat was touchy during the pickup, especially with Ater less focused on threat, and more on pulling Azgalor into a raid-ready position. Random attacks and side-steps, backpedals and hopping turns; all the gimmicks an embattled warrior tank pulled from their repertoire just to keep Azgalor facing him long enough to settle in for the fight. The tiny tauren warrior raced to position him next to the warchief of the horde; his arrival was our signal to ramp up our damage. Azgalor's frontal cleave was unforgiving, so melee held back, waiting for that signal. Any players chomping at the bit to unleash hell into Azgalor's side would meet a cruel and tragic fate before the encounter even started.

The fight was no less forgiving than the pull. Combining the atrocity of Howl of Azgalor and Rain of Fire produced a painful symphony of terror and death. The Howl was a silence the pit lord spammed against players in close proximity. Players unable to stay out to the maximum range for their spells would be caught in the silence and shut down -- particularly troublesome if you were main tank healing. Meanwhile, Rain of Fire would shower down onto unsuspecting players, not only doing fire damage to those who stood dumbfounded in the burning precipitation, but continuing to tick off health as the result of an applied DoT. Players unable to mitigate the fire damage would eat, at the very least, about 6000 HP of damage, so it was vital to stay dry and reduce the stress on the healers whom were already stretched thin by constant movement and impending Howls.

Descendants of Draenor defeats Azgalor,
Hyjal Summit

Taking One for the Team

The gimmick came in how Azgalor's soft enrage was invoked. Throughout the fight, he would curse people with Doom. After about twenty seconds, they would die and spawn a doomguard, a miniature Kaz'rogal that would need to be picked up by an off-tank and killed. The process of this slow attrition would ultimately do the raid in if it were unable to kill the pit lord in time. In order to mitigate the loss of these players, the warlocks were assigned soul stone duty. Those marked for death would be given a second chance at life through Eacavissi's fel energies, so Blain would keep close tabs on which players were the most valuable, ensuring no soul stone would go to waste. It cut to the bone when your time ran out on Doom, and Blain remained silent when the warlocks called out, "Should I soulstone him?" It wasn't personal. Going into each attempt, all players needed to accept their place and prepare to sacrifice themselves for the good of the raid. But there were clearly some players contributing more than others and a pecking order inevitably shone through when the warlocks called out your name for impending soulstone, only to be greeted with silence.

Rejection can be a painful thing.

On the evening of March 16th, 2008, Azgalor finally met his match. Four weeks in Hyjal produced four boss deaths, the raid continuing to march to the rhythm of Blain's drum. But his self-fulfilled prophecy now stared us in the face: the path was clear to Archimonde yet the raid was ill-prepared to handle Doomfire, a great majority of the players lacking their pvp trinkets.

Blain spoke into Vent, "Head to Black Temple."

---

The raid coalesced at a gap in the wall, draenei masonry ripped apart haphazardly, stones and wood strewn in a pile. Someone clearly wanted inside the temple and, with the enormous front gates guarded by a legion of nathrezim, decided to make their own entrance. The raiders squeezed in through the makeshift door, re-buffed, and began to pull the trash: a mix of Vashj's left-over naga elite guard, enforced by corrupted water elementals varying in size and scope. The waterlogged basement of the draenei temple provided a convenient entry way into the illidari training grounds, a wide-open area full of fel orcs and doomguards that patrolled the area. We gained entrance to these grounds via breached sewage pipes, but before that happened, we'd have to get past our first obstacle: High Warlord Naj'entus.

The beast was a naga anomaly, one mutated far beyond anything we had witnessed before. Although he bore the same general half-humanoid, half-serpentine form that was a familiar trademark of all naga, his face was something else entirely. Gone was the traditional humanoid facial features -- the familiar eyes, nose and mouth that was the naga's last tie to their former night elf lives. In their place was a chitinous bone shell crowned by an evil maw of dagger-like teeth drawn below. In his right arm he wielded a large conk shell shaped like a spike, ready to impale any player who dared breach the temple's walls in search of Illidan.

Descendants of Draenor defeats High Warlord Naj'entus,
Black Temple

Wearing Multiple Hats

Blain set us up in pairs, encircling the boss. The buddy system would be the key to taking out this mutated naga. Throughout the fight, Naj'entus would thrust his spine into unsuspecting players, rendering the character immobile. It would be up to their "buddy" to quickly withdraw this spine, the act of which both freeing the target, and granting the savior a Naj'entus Spine to be used when the boss protected himself with a Tidal Shield. Those raiders with a spine would pop the bubble, interrupting the boss's regenerative aura -- a tactic Naj'entus used to draw the fight out further. The catch? Bursting the bubble had an explosive impact on the raid, reducing everyone to 5% of their health. The focus, therefore, was to keep the main tanks alive following the burst. With the healers hyper focused on keeping the main tank alive, followed by each other, the rest of us had to take survivability into our own hands. Like certain bosses before him, Naj'entus opened my eyes to the two types of players that lingered within our ranks: those who were willing to do whatever it took for the good of the guild, and those who loved to make excuses.

It was amusing to see the differences in mentality. There were those who had taken the initiative to max out their first aid, bandaging frantically once Naj'entus had his bubble popped. And then, there were others who clung to their age-old biases on the separation of role and responsibility...many of whom fell over dead shortly after the bubble burst. Many casters who poured all of their waking hours into doing damage still believed it was the healers' responsibility alone to keep them alive. But as the complexity of these encounters grew more sinister with each new set of mechanics, the wearing of multiple hats became more important. By this point in The Burning Crusade, it was clear that we were no longer living in a specialist world where one player only performed one job well. A review of our non-standard tank requirements was one of the first real indicators. The Twin Emperors, Razuvious, Maulgar, Leotheras the Blind -- a smattering of bosses that needed tanks draped in cloth or leather. And with bosses like Naj'entus demanding non-healers to heal themselves, how many more hints did we need?

In order for our raids to be effective enough to compete with hardcore raiding guilds that doubled our schedule, we were going to have to become generalists: players with a wide berth of knowledge of game mechanics. Casters that could tank, tanks that could heal, damage dealers that dispelled instead of just pouring mindless pyroblast after pyroblast into a boss.

I was beginning to see the guild differently.

Months earlier, when we were struggling on Gruul and Mag, I was angered and annoyed that Blizzard was asking us to play different roles, forcing players to do things they weren't good at, roles they weren't particularly accustomed to. But in a team environment, one may need to wear multiple hats, in order to ensure gaps could be filled, to test the team's strength and diversity; its ability to adapt under pressure. In order for the greater good, a little bit of sacrifice is in order. I knew this fact more than anyone, barely clinging to life as a result of Zanjina's pathetic health pool. I swallowed whatever pride I had playing Kerulak, and knew what needed to be done. And when that Tidal Shield burst, I clicked my Netherweave Bandage and got right back into the fight, until Naj'entus collapsed in a splash of sewage water...

...and then took note of those folks lying dead beside him, victims of having never bothered with first aid.

Tuesday, February 19, 2013

2.36. World of Lovecraft

"Tree of Life Form"
Artwork by UnidColor

Sitting With a Tree

The tank situation was especially tight, as always. I was bending to the whim of Ater's reduced schedule as he continued his job search, so harping on the remaining tanks to continue to show became a daily ritual. Of my current lineup, one of the newer faces had been a real life-saver. Rocraw had come to us fairly early in The Burning Crusade, just as the 25-Man was getting off the ground in tier 4. Rocraw had a pleasant demeanor, was kind and friendly, and had a propensity to drop everything he was doing to help folks in the guild. All these traits allowed him to acclimate into the guild quite effectively.

Rocraw was especially crucial to the mind-numbing attunement quests which we repeated ad infinitum for players wishing to raid. He'd gladly drop what he was doing and drive us through another Mechanar or Arcatraz if it meant new, sharp folks willing to raid. His cheerful attitude and dedicated loyalty was a shining star in the guild, even in the face of impending roster hang-ups and defectors. When Rocraw caught wind that I was struggling with recruits, he'd always fire back a message to cheer me up,

[W From][Rowcraw]: I'm here 'till the end, Kerulak!

Rocraw's presence was especially helpful in these months when Ater's schedule grew more erratic than what I was used to. Rocraw, alongside Kurst, made up the brunt of the tanking warriors in the guild. Beyond them, I called on to Dalans to tank whenever possible. Bretthew had been another option, but since the hacking incident, had been reduced to playing other people's alts just to keep the 25-Man roster full. Throughout this hyper sporadic fluctuation of tanks, players with the longest streak of consistency were my pillar to lean on. Rocraw was one such pillar. With other roster changes spiraling around me in a twister, it was a relief to know that there were still a few folks who had my back.

Now as it happened, Rocraw was not the only new face that I came to rely on amid roster changes. On the healing side of the fence, we'd gained a restoration druid about the same time: Cattledrive. Joining us near the start of The Burning Crusade, Cattledrive was a friendly, outgoing gal who loved to heal and demonstrated a similar amount of guild pride in keeping us on track. If players needed to be healed through dungeons in order to get attuned, she'd offer her services up in an instant. She, like Rocraw, clocked a lot of hours in-game -- this translated to way-above-average availability for assisting others. In this era of druids and their changing function in raids, I'd lost many restoration druids to alternate rolls. Like Breginna, I was ever thankful that Cattledrive chose to ingrain her healing roots. At every opportunity, Cattledrive was rotated into progression and the rest of the 25-Man team was as thankful for another resto druid as I was.

Topping the list of people thankful for seeing Cattle rotated in was Rocraw.

In their joint effort to support Descendants of Draenor's raiders, Rocraw and Cattledrive slowly began to fall into a similar schedule. They were on at the same times, running folks through dungeons together, Rocraw charging into a pack of bloodwarders while Cattledrive hung back, flowering the heroic 5-man with blooms of regrowth. Over time, they became inseparable. Whenever Rocraw was in a 25-Man progression raid, helping us fight through Vashj or practice the grueling mechanics of Kael'thas, Cattledrive was right there beside him. Outside of raids, they had their own Vent channel, leveled alts together, and both jumped when called upon for more attunement help. They were the quintessential boyfriend/girlfriend team in DoD, and it wasn't long before Rocraw had confided to several folks that he was moving in with her. Continuing to put the guild before himself, Rocraw made certain to keep me apprised of all the moving dates and did everything he could to rearrange his schedule so that he'd still be present to tank. I couldn't ask for a more loyal duo than Cattledrive and Rocraw. By Hyjal Summit, they were both deeply entrenched in the roster, comprising two of the many core raiders that were both well played, and geared to the teeth.

Which is about the time that Cattledrive went missing.

Looking at the Puzzle Box

BlizzCon 2007 Official Poster
Copyright © Blizzard Entertainment
Turtleman was certifiably pissed off.

He and Tigoraga, a hunter who'd been with us since Vanilla, were spouting some profanities into guild chat, directed at a certain healing druid. Thankfully, she wasn't online at the moment.

I shot over a tell.

[W To][Turtleman]: Is there something I need to know?

Turtle clamped up.

[W To][Turtleman]: I'm sure you have a very good reason to drag this gal's name through the mud while she's not here to defend herself. Mind telling me what that is?

We took it to Vent.

"Tig and I are just pissed off because she's two-faced, y'know?"

No, I didn't 'know'. "Keep going."

"Cattle was supposed to pick up some BlizzCon tickets for all three of us. We had all the arrangements in place, I had my travel all set up...everything was great."

"Ok, and...?"

"And she just went ahead and decided she wasn't going to give us our tickets! For no reason at all! She's just going on her own, or whatever."

"Wait. Let me get this straight. All three of you planned to go together, she bought the tickets on your behalf, and is now...out-of-the-blue...refusing to give you the tickets you paid for?"

"It's fuckin' stupid! Totally two-faced."

This didn't make any sense at all. There had to be a rational explanation.

"Was there a falling out between you guys? A specific event that made this whole BlizzCon thing go south? I mean, did you say or do anything to cause her to change her mind like this?"

"Nothing, Hanzo. I can't think of anything we ever did. She just woke up one day and decided we weren't going."

"But this doesn't make any sense, Turtle...it's a story with a missing part. Surely, there must be something that happened to cause her to change her mind. Overnight, no less."

He took a deep breath, "I dunno what that is, but I'd sure love to know, too."

I stared at my troll priest Zanjina while lost in thought, cycling through the events that Turtleman had laid bare. The story wasn't coming together quite right, there was still some key piece of information he was leaving out. I pressed my Vent talk key.

"Remind me again why Cattledrive was the one who was buying the tickets for all of you? I mean, how did you all decide on this plan as a group?"

"Well, she was buying for Tig and her, initially. And then Tig invited me to come along, and so I said I could, and then he had her get another one for me."

"...Ok, and why was Cattle buying for Tig? Like, what's the relationship there? How do they know each other?"

"He's dating her, Kerulak. Was dating her, anyway..."

The missing piece.

I thanked him for the story, reminded him to try to keep his temper in check, and went about my business in Outland. I tossed the puzzle piece back into the pile, and never once gave the story a second thought, never once glancing at where that particular piece fit into the entire puzzle. 

I should have.
"Orc Warrior"
Artwork by CorruptRecluse

Confessions of a Warrior

"She left me," Rocraw sent over in a tell. "She's not responding to me at all. Won't answer my calls. She won't reply to any tells when she's online."

"What's going on?" I asked

"I don't know. She just...won't talk to me anymore."

"So...are you moving out?"

A few seconds went by before the answer came in; a testament to a person dealing with an ending relationship. The haze that blankets your thought process, makes it difficult for you to respond to questioning, as the broken relationship is always there, always lingering, weighing you down.

"I guess."

"I'm really sorry this happened, man. I suppose it was never meant to be." I tried to swing things around, in the hopes that distracting him would ease the weight, "Maybe getting back into Hyjal will keep your mind off it."

"I can't be online when she is," he replied, "it's too painful."

So much for that idea.

"Well, chief, I really do feel bad for you and the situation you're in. If I can do anything, will you let me know?"

"Yep. Thanks, Kerulak."

There was nothing I could do for him. Of course. The relationship had gone south for an unknown reason that, to this day, I can't put my finger on. But I had the signs in front of me. The incident with Turtleman and Tigoraga should have been enough of an incongruity to cause me to take a step back, take notice of the big picture. Hearing about the BlizzCon ticket fiasco provided clarity to the situation at that moment in time, explaining the tirade unraveling in guild-chat. But that was just one small piece of the puzzle; its final assembled form was one I failed to take into consideration. Behavior that was so unorthodox, so unplanned and without logic or reason should have set off some kind of alarm in the back of my head. And perhaps it did, but I was too busy gearing Zanjina to take notice. Or perhaps it only served as temporary amusement, causing me to disregarded it as unimportant.

I mean, let's face it. Hundreds of thousands of QQers made daily proclamations to the tune of "guild leadership is srs bzness LOL" on the forums...how could they be wrong?

The more I believed the masses, denouncing my approach to guild leadership as "overkill", the less frequently I flipped that puzzle box over to examine the picture. I didn't see the importance that one piece held in the entire puzzle. Each fleeting moment it occurred, I tilted my head upon a particular revelation, thinking, "Huh. That's weird!" yet failed to explore why. I stepped off the curb to cross the busy intersection while the bright white walking man went dark, replaced by a glowing red hand, and I paid no attention. I walked right out into oncoming traffic. In order to get a handle of every facet of guild leadership, I was going to have to train myself to pay attention to this "feeling", this alarm sounding off in the back of my head and gnawing at my gut once the big picture was revealed...

...this "red flag".

Thursday, February 14, 2013

2.35. Time Travel

The entrance to Hyjal Summit in present day Azeroth
blocked by an impenetrable gate (Vanilla/TBC era),
Darkwhisper Gorge, Winterspring

Mind Control for Fun and Profit

Fueled by the back-to-back deaths of Kael'thas Sunstrider and Rage Winterchill, the progression raiders seared with electricity upon returning to the Caverns of Time. Hyjal Summit boasted a uniquely different design when compared to raids of the past. Rather than moving from trash pack to trash pack, weaving through corridors and dungeon halls to discover what boss awaited us, Hyjal was a re-creation of the final level of Warcraft III: Reign of Chaos, the RTS which would seed an eventual MMO. In that final mission of the RTS, "Twilight of the Gods", players wielded the combined forces of the orcs, the humans, and the night elves, combining the might of their armies against wave after wave of undead minions, backed by the power of the Burning Legion. A series of doomguards would appear at various intervals, signaling a major milestone that needed to be overcome.

Those doomguard would serve as our boss progression through this instance.

As it was in the original RTS mission, waves of undead scourge, backed by the nathrezim, would come to us. Our tanks grabbed a hold of them while we burned them down, awaiting each successive onslaught. To some, this was a fresh new way to approach raid content. To others -- like Dalans -- it was a nightmare of repetitive tedium. If we happened to make a wrong move on the boss, setting off a chain of events that led to our wipe, we'd have to restart the eight waves of mobs. Every boss wipe guaranteed eight new waves of trash. As a result, raiders had more of a vested interest in putting in additional effort. Nobody wanted to redo trash. The challenge was in teaching players to keep their opinions about the trash to themselves. It benefited no one to complain, and only served to chip away at the integrity of the roster. So, I reminded folks to keep quiet and focus on delivering boss kills, which I felt was a much more prudent strategy to combat complaints and burnout.

I continued to find my own place as a contributor during these later months in TBC, struggling for placement on the damage meters. Thankfully, The Battle for Mount Hyjal gave me another opportunity to shine. Nestled among the many waves of banshees, ghouls, infernals, gargoyles, and frost wyrms were human units named Shadowy Necromancers. These casters, draped in blood-red cloth, could be mind-controlled by a priest, thereby revealing their secret ability: Unholy Frenzy. This 100% attack speed buff could then be cast on players whom benefited greatly from said spell. Since my own damage continued to struggle among the many well-played folks in our roster, I took on the responsibility of mind-controlling, buffing players like Blain, Jungard, and Abrinis, whose melee damage shot through the roof as a result. They sawed through waves of undead flesh with a greater proficiency than I could ever hope to attain. Buffing others was a less glorious role than climbing the damage meters, but it helped me regain a sense of tangible contribution. Over time, I grew more likely to believe I was of value to progression, rather than remain the Achilles heel of it.

After Rage Winterchill came Anetheron, a dreadlord that summoned infernals to pummel the raid while a Carrion Swarm enveloped us, reducing the effectiveness of our healers. It was vitally important that Anetheron be faced away from the raid because of his heal-dampening locusts; healing efficiency needed to remain at 100%. Meanwhile, Anetheron's strikes leeched health, so Blain took on the role of applying wound poison to the boss. Two could play at the nerf-healing game. Meanwhile, a fire-resist tank would position himself near Jaina Proudmoore, in preparation for Anetheron's inferno. After three seconds, a fiery infernal plummeted to the ground, striking everyone in an area with AoE damage. The infernal needed to be picked up before it began one-shotting players, and a focused DPS group had to burn that rock creature of greenish fire down as fast possible. Dragging the infernal to Jaina caused her to join in the fight, which was a helpful trick to widen the margin of error.

Only one weekend of work was all it took.

Anetheron outstretched his arms in agony and dissipated in a puff of smoke, his armor crashing to the ground. We were now 2/5 in Hyjal, with only two weekends of raids in -- and time was still left on the clock to leave the humans behind, and move up to join the orcs in their defense of the world tree.

Descendants of Draenor defeats Anetheron,
Hyjal Summit

Clutch

Kaz'rogal proceeded Anetheron, providing only a moderate challenge. Aside from a nasty cleave that could one-shot unsuspecting melee (as damage was shared among all targets), and the occasional warstomp which stunned players in close proximity, Kaz'rogal had a truly evil trick up his demonic sleeve in store for the casters. He placed a debuff, a "Mark of Kaz'rogal" on unsuspecting players. This debuff would drain mana from the target like a siphon. If the player was unable to keep their mana pool afloat during this time, they would become a mana bomb and detonate, taking out nearby players in the process. So, while he was technically a linchpin of sorts (as any one caster could take out the entire raid), the margin of error could be mitigated by shadow resistance gear and mana potions.

Kaz'rogal joined Rage Winterchill and Broodlord Lashlayer as one of the few bosses we were able to one-shot on our very first pull of the boss, an inconsequential challenge upon reflection. A few weeks later -- when a number of poorly positioned casters, empty of mana, carved gigantic chunks out of the living -- was when the challenge began to reveal itself. And when it appeared that the attempt would be a wipe, as a skeletal crew of several tanks, a few melee, and only one healer remained, the situation looked grim. Our minds turned to the approaching wipe with contempt and disgust, preparing for the monotony of having to clear another eight waves of trash. I rested my head down on the desk, waiting to hear when it was safe to release and run back.

And then, something brilliant happened.

The lone healer, who just happened to be a healing officer and a druid, decided to take matters in to her owns hands. Breginna bolted towards the tanks, and shifted into Bear Form, standing next to them to diminish the impact of Kaz'rogal's cleave. Someone in Vent yelled out "Go Breginna!" and I glanced back up at the screen.

What the...

The casters and healers were dead, so the Mark of Kaz'rogal held no more weight. From here on out, it was tanks and melee, albeit a pitiful few. But there hopped Breginna in bear form, waiting for the cleave to come in, eating it, and gaining tiny bits of health by burning rage into Frenzied Regeneration. It was a genius move. By being in bear form, her mana pool was non-existant, yet she was still able to keep herself alive in those remaining few moments while melee laid into the doomguard with every last bit of vigor in their virtual veins. People in Vent began chanting to Breginna, the volume escalated to that of an entire crowd cheering on their team, as the seconds clicked off to the end of the game. Breginna said nothing, continuing to hop in Bear Form, tanking Kaz'rogal, eating cleaves, burning rage for heals, while the last few rogues and warriors drove their blades into the boss's ankles.

Kaz'rogal, looking as stunned as I at this clutch turnaround, collapsed dead at Thrall's feet. Cheers filled Vent as the bear druid stood up and did a dance. I stared wide-eyed at the screen. Breginna had saved the day.

Descendants of Draenor defeats Kaz'rogal,
Hyjal Summit

The 180

Rocraw was in a funk.

Normally, the orc warrior that held the line at the head of the raid was a constant beam of positive energy that the raid had come to rely on. His positive attitude, humility surrounding his class, and dedication to his fellow guild-members established him as a recognizable face in the roster -- one we'd all come to rely on over these many months. Regardless of whether we were struggling or enjoying success, Rocraw was a consistent, solid member of the team...and a loyal friend. So to see his attitude suddenly spiral downwards was disconcerting. Once laughing and joking with us in Vent, he grew quiet and found little amusement in the day-to-day chatter. He grew clumsy behind the wheel inside raid instances, made more mistakes, lost control of adds with greater frequency. For all intents and purposes, Rocraw seemed to be vacant, mentally checked-out and lost in a confusion of his own troubling thoughts.

I should have seen it coming; the path of breadcrumbs he left me any hippie with a talking dog could have followed. But as with other events in my guild that I let slip through the cracks, I failed to pay attention to each individual shard of the mosaic. Each exercise in guild leadership was the act of dumping all the puzzle pieces out on the table. It was as though a lunatic was challenging me with mad ravings: all the thousand pieces must be placed together correctly in order to see the final picture. One by one, you rotate and flip them, you plug them together until the picture matches the box, then wipe your hands and move on. Yet, when you are putting the puzzle together, the individual pieces make little sense. A fragmented beam of light here, a shrub there. You become frustrated, trying to jam pieces together, thinking they fit when they don't, because you lack the image of that final picture. So what do you do? Go back to the box cover. Review the big picture. Ensure you're on the right track. Rinse. Repeat.

As it was with many of the decisions I made during The Burning Crusade, I left the puzzle box cover face-down, never referring to it, unable to grasp the impact each piece had on the entire picture. Until it was too late.

It had something to do with her.

Tuesday, February 12, 2013

2.34. The Lemmings Are Marching...

Descendants of Draenor defeats Rage Winterchill,
Hyjal Summit

Rage Winterchill

My heart was racing. I frantically scanned the landscape for anything that could kill me, but wasn't certain exactly what to look for. Twenty-four players were in the instance with me and seventeen of them were dead. My eyes darted down to the damage meters. I took a deep breath, trying to remain calm, keeping my DoT rotation as maximized as possible. Being unprepared was unsettling. Our attention had been a laser for the last five weeks, burning a focused beam of light squarely through Kael'thas Sunstrider and his council. The encounter's nightmarish complexity of tactics and coordination dominated our thoughts and invaded our dreams. With all of our energy poured into his defeat, we spent little time on anything beyond his lifeless body...yet he lay dead at our feet only an hour earlier. In any other case, this would be cause for celebration and an early night off.

Blain was uninterested in ending the raid early.

We still had a long road ahead. Two full tiers of content were now crushed under our boots, leaving us to tread the final path through tier 6. And there was a deadline to keep.

The enormous skeletal necromancer continued to lose health, while Blain kept the raid calm -- kept me calm. Panic was not an option, regardless of your level of preparedness. Be calm. Focused. Do your job. Stop calling things out. Winterchill's health melted away while I hopped out of Death and Decay, my PvP trinket granting me the ability to break out of his ice-block. A few moments later, the lich burst apart in a flash of light.

We had one-shot Rage Winterchill, the first boss of tier 6 content. The last time we had one-shot a boss on the first pull was Broodlord Lashlayer, third boss of Blackwing Lair. Vanilla. Two years earlier. I was beginning to think that the new raid mentality was sinking in. The guild's expectations of fun were starting to align with ours. Constant, consistent success. And for the first time in months, I felt like Illidan was once again squarely in our sights. Our confidence remained intact.

---

This surge of confidence catapulted me back into examining the issues that plagued the guild. Long had I been a slave to the roster, with its constant fluctuations and myriad of faces giving me varying degrees of commitment. Step one was already behind me: set expectations clearly and concisely, so there was no room to misinterpret who we needed each night in raids. In order to shift the power the roster had over me, I needed to grow the pool further, riding on the steam of our recent completion of tier 5. If I could find away to recruit more efficiently, more effectively -- I might be able to put a stop the never-ending excuse factory:

"I don't want to raid anymore."

"Sorry, I'm grounded."

"I don't want to bring my rogue, I want to change my main to a shaman."

"Oh, I thought the raid was cancelled?"

"Man, Nip/Tuck is on!"

It amazed me how a guild like Elitist Jerks could pull it off for an entire expansion (or longer) with a fixed roster -- how do you compel a player to show any sense of loyalty and dedication to the guild? I remained baffled, spending far too much time in-game trying to keep the roster from falling apart. Our new schedule demanded that we raid every Friday and Sunday without excuse. I needed to ensure that Descendants of Draenor held good on that promise. So recruitment continued. I spent hours sifting through useless Battle.net forum posts, cluttered with other guilds begging for new players; leaders in the same boat I was in. Trying to find a single player looking for a new guild was almost entirely a wasted effort, as the reams of forum topics were nothing but officers cast into the same leaky boat as I.

An item from the game Unweb,
written by Hanzo

Gimme The Cache

I needed to come up with a new recruitment strategy, something that would save me hours of sifting through Battle.net forums looking for "that one priest" or "that one druid" that could potentially close the door on the excuse factory for good. I had been toying with the idea of writing a parser in CFML that would scan the Battle.net recruitment forums for users, trying to pick out only what we wanted: players looking for a guild. This automated process could save me hours of recruitment time as it tossed aside the miscellaneous posts of other guilds sharing my pain. But there was a concern with my approach.

Fetching web pages, parsing their HTML, and performing very specific business logic on the content seemed too expensive for CFML to handle. I attempted on-the-fly parsing once before in a web-based game I called "Unweb". Inspired by Diablo II, Unweb let you type in a URL which was converted into a "monster" that you would go on to slay for items and gold. It was a pretty fun exercise to explore application development and allowed me to grow as a programmer.

In practice, however, my architecture was short-sighted. Unlike a typical website driven by static pages of unchanging content, Unweb needed to create content dynamically on each and every page click. To further complicate this, a key step in the process -- the act of reaching out to a specific URL and parsing its content -- was what we in the industry refer to as a blocking call: a part of program execution that must pause and wait for a completion flag before continuing. This pause varies in time because the data is somewhere else, and can only run as fast as the slowest result.

Confused? Let me give you an example of how horrible this particular decision would've played out if it were in WoW. Pretend for a moment that all of the character data for your toon doesn't sit natively in the WoW game client, but rather exists in its entirety in only one place: the WoW armory on the Battle.net website. So while you are playing the game and decide you want to open your character panel to review your stats, the entire game locks up the minute you press the "C" button, as the game client pauses to fetch info from the website. Can you imagine how frustrating this would be if it were the case in real life? Constant pauses and lock-ups, just to look at your character info?

This is what was happening behind the scenes in Unweb, each and every time someone tried to play the game.

The strain of many hundreds of concurrent users playing Unweb caused the webserver to hang while blocking calls waited for URLs to return website results. Alas, this design was the oversight of an amateur developer attempting a large-scale game which didn't lend itself well to HTTP. My lack of experience afforded me no strategies to mitigate its poor performance. The flawed design of Unweb essentially turned what was supposed to be a fun web-based game into a inadvertent load testing tool; the more players that piled on, the quicker the web server buckled.

With the Battle.net forum parser idea in the back of my head, but lacking a real strategy to solve the performance issue, I turned to the one person I knew that could offer me new insight: Ater.

---

"Cache the results", he said to me, biting into a sandwich. Luggage was piled up behind his kitchen table, as he prepared for his upcoming move to Illinois.

"What?" I replied. His simplicity often overwhelmed me.

"You're thinking about it the wrong way." Ater elaborated, "You're approaching this like you've got a search interface, and when you enter in a URL, it's going to go out to Blizzard's forums and parse them live. Right when you click the submit button."

I never told Ater about Unweb, but In that one sentence, he successfully described Unweb's architecture, thereby pointing out the flaw in my original design.

"The search interface will hit a cache, not Blizzard's live forums. You schedule a task for the parser and it'll run in the background, on some fixed interval. Y'know, say every thirty minutes. It'll scan the forums on its own, collect up the data, dump it in the cache...a local database on your server. Then your search interface queries the cache. Simple."

Everything was just so damn simple to Ater. Simple, and one-hundred percent correct. In his succinct explanation, he re-designed my idea and solved the problems I experienced with Unweb. Now, it was not just a CFML-based forum parser, it was a fully-fledged spidering engine.

A screenshot of WoW Lemmings, a guild
recruitment tool, written by Hanzo

Rebuild Your Guild

I went to work immediately, implementing Ater's suggestions. That entire weekend was spent coming up with the initial architecture of the spider. It would run in three passes. The first pass would scan Blizzard's guild recruitment forums, looking for posts, slurp them up, and dump them into a database. On the second pass, the engine would follow the URLs to those forum posts from the database, extracting the bodies of the actual post itself. This is where the meat was: where a player would talk about themselves, what server they were on, what class they played, and where they hoped to find a new guild they could call home. It was the third and final pass where the spider would analyze the content in the forum post, scoring it on such things as: Can I determine a class (ie. Priest, Hunter, Rogue), a server (ie. US-Deathwing), a server type (ie. PvP, PvE). Additionally, was there an armory link provided? Could I use it to process the player's gear? The more information that was provided, the better the score. This scored database of parsed data became what Ater called the "cache" -- a collection of pruned posts comprising only players looking for guilds and nothing else.

I slapped on a web-based interface to allow users to search the cache, and released the new website into the wild, watching the cache grow. Every thirty minutes, another set of players would show up:

"Priest LF new Guild"

"4/5 Hyjal Resto Shaman LFG"

"Tankadin looking for raiding guild"

It was working. Not only was it incredibly cool, but I actually started seeing people I wanted to contact immediately...just while testing the app! The days of wading through hundreds of forum posts were fast becoming a distant memory. Now all the players needing a guild would come directly to me, through a simple search interface. Towards my web site they headed, single file, awaiting their fate. They hoped to be saved, to be plucked from their death march and placed into a new raiding home. It was in that instant that I came up with the name of my new guild recruitment tool:

WoW Lemmings.

A place where guild leaders and recruitment officers could go to find the masses of lost players seeking a new home. A place to rebuild your guild.

On February 13th, 2008, after briefly discussing the tool with Gurgthock, I announced WoW Lemmings on the Elitist Jerks forums, hoping to solicit feedback. Initial response was extremely positive; I received numerous suggestions and tweaks that I used to improve the app further, including the ability to scan other forums outside of Battle.net: MMO-Champion, Wowhead...anywhere recruitment forums resided. WoW Lemmings served (and continues to serve) me, as well as countless other guild leaders, shaving significant time off our recruitment hours. Thanks to this tool, I was able to once again get a handle on recruitment without it dominating all my waking hours. Slowly, eventually, I grew the roster back to a healthy pool of progression raiders (and fillers). And like so many times before, I again had Ater to thank. His simple insight into changing my approach toward the app's architecture turned it from a doomed load-testing tool, to one of the most stable and self-reliant systems I've ever assembled.

Thursday, February 7, 2013

2.33. Controlling Power

"The Eye of Tempest Keep"
Artwork by Sandara

Baby Steps

Guildies constantly offered to help in any way possible, especially those who weren't consistent raiders (but wanted to be). In many cases, they couldn't bring what I needed to the table -- they either didn't have the right class, or their character wasn't geared or keyed for Tempest Keep. It made for complicated and stressful raid rotations. Even gearing alts wasn't much of an option at that point; the entire process had to be repeated from scratch, taking into account raid upgrades from content we no longer farmed. If you hadn't worked your way through tier 4, it was too late catch up by the time we looked into eyes of Kael'thas. My tanks dwindled with Ater's fluctuating schedule and the loss of Bretthew to a hacker. I gobbled up what players I could, pointed them to the forum thread that differentiated Veterans from Raiders, and shoved them into The Eye.

While Bretthew may not have had access to his fully geared tank, he desperately sought to repair any damage to the roster that was left in the wake of the hacker. After exploring options, he managed to secure a deal with another member, Kedavra, who possessed a geared Elemental Shaman. Kedavra loved raiding but couldn't commit to the hours we demanded, so he offered his account up to Bretthew as a loaner. It wasn't a tank, but it was a raid rotation filled with someone I could trust, rather than a stranger or new recruit plucked fresh out of trade chat.

Blain began the arduous process of explaining the five-phase fight in bite-sized chunks, the only way we could digest it without forgetting crucial facts. Once again, we faced a council not unlike Maulgar or Karathress. I did my best to keep my mouth shut, but if I could let the raiders know at some point that any progress was significant, I made sure to do so. I channeled Richard Dreyfus' character from the movie What About Bob?, I repeated baby steps over and over to the raid team.

Any progress is progress.

Baby steps. 

Baby steps.

The Most Difficult Encounter

Adapting to phase one came quickly, giving us a solid handle on phase two by the end of the first weekend. We took our time, kept things steady and focused, with the immediate goal of securing a clean pass through all four of Kael's advisors. Mistakes happened, but spirits remained positive. I reminded everyone it was OK to make mistakes, just not repeat them. There were random one-shots from Thaladred and the occasional death during a fear bomb from Sanguinar, but it was Capernian's Arcane Burst which caught most of the raid off guard. Positioning was tight, and needed to be adjusted at a moment's notice. Those less spatially aware were often trapped in this explosion, which was especially challenging for those afflicted with her Conflagration. All it took was a single person to be in the wrong position at the wrong time, and a chain reaction of events toppled every player in the raid. At times, the progression team was convinced that Capernian was bugged, never working exactly the same way each attempt. But, as was typical in that era, Blizzard remained quiet about raid encounters, bugged or otherwise, so we muscled through it.

In week two, we had to improve our DPS during phase two in order to see more of the encounter. This phase involved fighting ghostly legendary weapons, and we were aiming for a very specific kill-order. We could consistently make it through the Netherstrand Longbow, the Staff of Disintegration and the Cosmic Infuser. But, we were falling behind on Phaseshift Bulwark, Warp Slicer, Infinity Blade and Devastation. Some of the raiders were losing their focus, becoming confused, and needed loud calls in Vent to direct them to each appropriate weapon. Macros also helped them switch targets to shave a few seconds off this delay. The raiders were very active on the forums, discussing their strategy, refining their individual tactics. It was encouraging to see a combined effort to defeat the encounter.

Week three saw further complications. I was hoping to be well into phase four by this point, but the "slim pickings" I'd expressed to Ater were rearing up. New people had to be chosen, some with less experience, and some whose priorities lay elsewhere. The inexperienced folks grated on Blain, who grew tired of re-explaining the same tactics over and over. As for the players who claimed to have to leave early because their "girlfriend just got home" or that they needed to "get caught up on Nip/Tick", they wore my patience thin. Frustration eventually got the better of both Blain and I, simultaneously meeting our death at the hands of Thaladred. Blain kept his anger in check; I wasn't as reserved. My temper flared, filling Vent with obscenities and the loud crack of desks being punched.

Hysterics aside, week three concluded with a glimmer of hope as we saw our first transition to phase four. Kael'thas Sunstrider himself charged into battle, disintegrating the raid with his Pyroblast. Validation! The baby steps were working. Slowly. Inch by painful inch. And there was more good news, as week three marked the first time our raid transitioned completely into phase four with all legendary weapons defeated. If we pushed hard enough, I thought, we might actually get him the following week.

Week four's raid nights would fall on January 25th and 27th of 2008, which meant the following weekend -- February 3rd -- would take a healthy cross-section of raiders out of commission. Why? Super Bowl XLII. Fantastic. The great American past time of congregating with friends, consuming large amounts of snacks and beer while cheering on your favorite team.

The Super Bowl meant about as much to me as slaying Onyxia meant to John Elway.

I didn't care about Football. All I cared about was keeping my raiders focused on Kael'thas, and any amount of down time spent watching and/or being pissed off at "the game" was a risk that detracted from our goal. In all of our time spent in World of Warcraft, this was the most difficult encounter we had ever faced.

We had one week to wrap up Kael'thas Sunstrider.

Descendants of Draenor defeats Kael'thas Sunstrider,
The Eye

Insomnia

Sunday, January 27th boasted our best performance yet. Ater had freed up his job search schedule, and was able to lend his steel to the weekend work. That little edge he gave us pushed us over, transitioning into phase five for the first time -- the final part of the encounter. I remember the evening's attempts being gut-wrenchingly close; a kill was in sight. But being caught up in the excitement of our first phase five, we lost track of players that were mind-controlled. As my raiders turned their blades against one another, Kael managed to fire off an uninterrupted Pyroblast and kill the tank, converting the attempt to a painful wipe. Everyone had come so far, making tiny bits of progress each week, but reality sank in. I was not going to have a raid the following week, thanks to the NFL.

---

The raid was cancelled the following week. The 25-Man progression team took the day off and watched the historic upset of the New York Giants defeating the New England Patriots 17-14. All I could think about was Kael'thas Sunstrider. Was this one canceled weekend going to send us into a nosedive? The uphill climb had been so grueling, chiseling piece by piece off with a rock hammer. The time-off might be too much for the raid team; they were already exhausted from four solid weeks of Kael'thas practice, sans boss kill. 

The bad dreams returned.

Players coming and going from the guild, spinning through a turnstyle. I feared us becoming a "stepping-stone" guild: where players came to make a name for themselves, only to be plucked by a hardcore guild later when it came time for the real deal. What choice did I have? I had no control. If players were leaving the guild or happened to forget their Kael'thas strategy or simply wanted to watch Nip/Tuck or decided to start harassing Ekasra again...I was at their whim. They acted, I reacted. 

The roster controlled me, not the other way around.

---

It was on the evening of that fifth weekend of work, February 10th, 2008, that our raid team was finally able to put all the pieces of the puzzle together. Not since our kills of Ragnaros, Nefarian and Maexxna in Vanilla had we experienced such an adrenaline rush achieving final victory. Even Lady Vashj a few months earlier felt less of an accomplishment than this. I will forever remember it as one of the most significant raid achievements that Descendants of Draenor ever pulled off. And they did, one baby step at a time.

As we stood together for our screenshot, I wondered if one day I would be able to get the guild into a state where I was in control, tired of bending to the whim of the roster. I was tired of losing sleep.

"We're not done", Blain piped up in Vent, "everyone head to Mount Hyjal."