Showing posts with label hyjal. Show all posts
Showing posts with label hyjal. Show all posts

Thursday, December 18, 2014

4.19. Little Details

"Welcome to Vashj'ir"
Artwork by Ikameka

The Dark Below

There are only two times in my life I can recall a piece of music that made me feel as if I were drowning.

In 1994, Zoid introduced me to a band named Delerium. I'd describe it as an ambient, almost hypnotic genre of music, famous for layering electronic soundscapes and euro-dance rhythms atop angelic vocalists -- some reaching seemingly inhuman octaves. This side project of Front Line Assembly heads Bill Leeb and Rhys Fulber seemed a more likely extension of Enigma, rather than the industrial sound Skinny Puppy.

Semantic Spaces turned me into a Leeb/Fulber zealot overnight, and in my excessive style, I dove deeply into any other side projects they produced. My research revaled a prolific, multi-volume career: three albums under Intermix, four as Noise Unit, a single-album stint as Cyberaktif, and perhaps most surprising of all, eight Delerium albums preceding Semantic Spaces. These earlier Delerium albums were dark, moody, and in some places, not much more than disparate sound effects (particularly true of Morpheus). Their sound was nothing like what I expected.

Sematic Spaces' follow-up, Karma, paved the way for DJs like Tiesto to help shape a new genre of music: trance. Invoke the name to a fan of the genre, and it will most likely summon up visions of ecstasy-infused glow stick raves at Ibiza. I wager very few Delerium fans will instead conjure up an image of Willem Dafoe, bloodied and nailed to a cross in The Last Temptation of Christ, yet samples of Peter Gabriel's haunting Passion is sprinkled throughout Spiritual Archives, a Delerium album that predates Semantic Spaces by three years.

It is this same haunting music that is ever present in another Leeb/Fulber side-project: Synaesthesia.

A person experiencing this "juxtaposition of sensory information" might taste the heat or smell the silence; even those ravers might feel the rhythm (if they're prone to cliche). Synaesthesia is a grammatical term, a neurological phenomenon, and thanks to Leeb/Fulber, a side-project rich with sonically submerged imagery. Their first two albums, Embody and Desideratum, weren't anything spectacular; most tracks were slow and odd, aka "experimental". But it was their third release, Ephemeral, that the underwater chord was struck.

Naked Sun weaves its hypnotic tentacles into your brain, implanting uncanny impressions that these sounds come from a mysterious and frightening source, many fathoms deep; all the tracks on Ephemeral are like this. Intelligence Dream had such a profound effect on me that I laid it into our High King Maulgar kill video. You listen and cannot help but feel you are sinking down toward the darkened ocean floor. Pardoxically, it is peaceful yet nerve-wracking, and is one of the few times such a distinct image of being underwater came from music.

The only other music to do this was Vashj'ir.

Mature notes consumer interest in his gem auctions,
Vashj'ir

What Goes Unnoticed

What is it, exactly, that Russell Brower, Derek Duke and David Arkenstone honed in on when building this musical landscape? The commonality between Vashj'ir and Ephemeral is subtle yet important. We hear those gongs, low pitched piano strings, granularized and slowly rippling outward in waves, like a ping from some ghostly sonar. Above the surface, air would deaden their duration, but sound waves suffer no such encumbrance under frictionless water.

The strings and flutes repeat their somber melody, two measures of four notes each; they're sad and empty. Yet, listening closer reveals a striking similarity to an alarm in slow motion, repeating its warning, eating into your consciousness, conveying both weightlessness and loss. The music of Vashj'ir is a cascading terror of the deep manifest, and is one of the most unappreciated aspects of Cataclysm.

In what should come as no surprise to anyone, Vashj'ir annoyed nearly every player who quested there. Any recognition of the zone's good qualities, particularly that of the music, was drowned out by focusing on their personal inconvenience. This was truly a tragedy. Lore nerds knew Vashj'ir was coming, knew it had to be completely underwater to be canon, and Blizzard pulled it off. Gorgeous visuals, immersive music, they even adapted our characters to bound quickly across the ocean floor.

Nobody cared.

Complaints flooded the forums about how annoying it was, and how Blizzard was "forcing players to think in 3D" -- as if by some strange miracle we had been playing two-dimensionally since 2004. Whatever little support the Vashj'ir zone received was deafened by the cries of the confounded and the perplexed.

I still love it, as does my daughter, but we are a sad and small minority. As with so much of the World of Warcraft's incredible attention to detail, Vashj'ir went misunderstood and underappreciated.

While Moorawr congratulates Moolickalot and Mature preps
his gear, DoD completes Heroic: Blackrock Caverns,
The Stonecore

This Isn't Canon

Leveling in Cataclysm wasn't a chore. For the first time in Blizzard's history, the expansion only extended our cap by five levels rather than ten. For those unable to withstand Vashj'ir, leveling kicked off in Mount Hyjal. This zone was locked away for years, visible only through a sealed gate that was buried deep in the back of a Winterspring cave.

There were, of course, other...more unconventional means...to catch a glimpse of Hyjal.

Our experience rested firmly within the Terms & Services: via the Caverns of Time, as a 25-Man raid in The Burning Crusade. Aside from raiding and exploits, Hyjal remained all but closed off to the WoW gaming community at large...until Cataclysm.

In the present day, Mount Hyjal was now accessible to all, blown wide open...
...and on fire.

I wasn't surprised to see an old friend emerge from the fire and greet Mature, as I made my way from Nordrassil to Sulfuron Spire. Ragnaros rose out of the flames to greet us with a warning - we were on his turf now. Molten Core, it would appear, was merely a setback.

One of Cataclysm’s central themes was that of the elements, taking us from the depths of the Abyssal Maw to the searing brimstone of the Firelands; from the majestic architecture of Skywall, miles above the surface of Azeroth, to Deepholm, the earth beneath the earth. I remember exploring the ebon rocks and cave formations in this latter zone, weaving Mature in between tiny bits of rock and stone that floated inches off the ground through unseen magic. When you turn your head to the sky and strain your eyes to see, far off in the distance above you, the bottom of the ocean -- the feeling is unmistakable: you are deep within the mantle's crust -- and a long way from home.

From the unimaginable depths of Deepholm, players next traveled to Uldum, another location just out of reach for years. Prior to Cataclysm, the only hint of Uldum's existence was a quest in Uldaman. A titan recording played back references to Norgannon and his discs, leading us to a fractured entryway in southern Tanaris. The great doors wouldn't open and its only exposure was a dark, black hole partially collapsed like a puzzle missing its final piece. The quest ended, and we returned to our Vanilla duties, while the doors remained silent and untouched, throughout Vanilla, TBC, and Wrath.

No longer.

We rushed through the now open gates, inviting us into a land inspired by Egyptian themes, hieroglyphics, and bizarre humanoids one might mistake for centaurs...if it weren't for their predominantly cat-like features. Uldum also buried secrets of a dwarven nature, and if Uldaman and Ulduar were any indication, those secrets in Uldum would hopefully wrap up unanswered questions. What of Norgannon's discs, and of the titans? What other Earthen spawned here and evolved into the dwarves that populate Azeroth today. And perhaps the biggest question of all: Why Azeroth? I geeked out in preparation for the final chapter of the three ancient titan cities, and couldn't wait to get started, arriving in Uldum three days after launch.

Two days later, I hit level 85 while handing in a quest in Uldum. I finished what remained, and never returned to the zone. No questions were answered, no great titan cities were exposed, no secrets revealed. I spent the majority of my time chasing Brann Bronzebeard who seemed more like a loose end left from Ulduar that a core piece of narrative driving the Warcraft story. The only connection to the titans, it appeared, was that these cat-taurs, the "Ramkahen" were left behind by the titans to guard their secrets.

What secrets?

No earthen or dwarven history was made mention of. In their place stood these cat people, tending to fields among the sands. There was no Norgannon. No Khaz'Goroth. No references to Algalon or anything of his kind -- nothing. If Uldaman was the appetizer and Ulduar was the main course, Uldum ended up a very disappointing desert.

Thursday, March 7, 2013

2.39. The Different Guild

"Archimonde the Defiler"
Artwork by Jim Nelson

Archimonde Anxiety

I have reason to believe that Xanax was invented as a result of the Archimonde encounter.

Since Blain's return to leading in full force, we saw a tremendous turnaround in raid progression. Serpentshrine Cavern and Tempest Keep were systematically blown apart, and the first boss in Mount Hyjal, Rage Winterchill, was one-shot with zero preparation. Bosses that followed -- Anetheron, Kaz'rogal and Azgalor -- were all pushing up daisies. To ensure our continued momentum, Blain switched gears and diverted us to Black Temple. High Warlord Naj'entus was our first victory there, and I earned my five minutes of fame dominating the damage meters during our execution of Supremus. But our rocket thrust was now in jeopardy. Blain was comfortable with the amount of people now in possession of their PvP trinkets, which meant it was time to return to Hyjal Summit, and wrap up the only outstanding obstacle:

Archimonde.

I dreaded the return to Hyjal Summit because after stripping Archimonde of all his bluish tint, his ret-conned Eredar lore, his pixels and sound effects and 3D model animations...I knew exactly what he was: A zero margin-of-error linchpin encounter. Linchpins like this caused anxiety to nearly strangle me, ever since Magtheridon fell to DoD's raiders a year earlier. Our strengths would be diminished, while our weaknesses would float to the top. Team jell was now much lower in importance on the totem pole. In its place stood the "personal accountability" obelisk of doom, wherein each player had to take their survivability into their own hands -- or ensure the death of all of us.

No carrying.

No covering for one another.

No room to excuse lag or timing or your add-ons or your slow-ass computer.

Everybody performs...or everybody dies.

As with linchpins before this, the typical tactics of a guild leader weren't an option. Continued failure couldn't result in kicking these players to the curb, bringing in another round to replace them. We had invested heavily in our 25-Man Progression team by this point, many of whom were well-geared -- starting from scratch because a certain person who "didn't get it" wasn't going to work. I had to be proactively correcting the roster's issues, not be a victim to it. Rather than wait for someone to complain that they used their Tears of the Goddess, but "lag got them", I went to the roster ahead of time, spoke to each player individually, and got a rundown of their Internet provider, general stability, problems they'd experienced with latency in the past. I even went so far as to check which players were using a wireless router, many of whom were none the wiser on its detrimental effects to real-time streaming online games.

In today's age, where Netflix usage is commonplace and every third house has an XBox 360 playing Call of Duty online, this may not seem like such a big deal. In 2008, however, working on Archimonde via a wireless router would sign our death warrant. Packet loss was an inevitability on hardware in those days. Even with players that claimed to have never experienced a router problem in their life, I still politely insisted that they cut over to a hard wire. It would only take one player death for this to end poorly. One lag spike, one moment of wireless latency that would bring it all crashing down. Each vocalist in my choir had to be pitch-perfect. The potential for any one single player to be the cause for a wipe left me perpetually wound up, a constantly bouncing ball of nerves. My mind begged for release but would gain no such relief from prescription meds.

"Legend of Mount Hyjal"
Artwork by Trent Kaniuga

Twilight of the Gods

April 13th, 2008, was an otherwise ordinary Sunday. Discussion on the guild forums circulated around various topics: whether or not win-trading was taking place in arenas, a link to a "Teron Gorefiend" simulator available on the web, and a group of players leaving MySpace for a new site that was gaining popularity identified only as "Facebook". Chief among the posts, however, was a discussion title "Archie", including videos and references to the Elitists Jerks forums. DoD actively engaged in discussion and assessed valid strategies. Of primary importance was the acquisition of PvP trinkets: our backup plan to break Archimonde's fearbomb...if you had the good fortune to be heading uncontrollably towards Doomfire. The healthy debate of strategy, what would work, what we should try, how we should solve problems on-the-fly was impressive.

They were aligned. Constant, consistent success.

---

As we huddled near some Night Elf architecture, buffing, flasking, and eating food, Blain gave us the 411.

"We can do this tonight."

Inside my brain, confidence was at war with skepticism. My inner realist kept picking away at me. Archimonde was a brick-wall boss, a linchpin with no room for error, a verifiable guild-killer. Every failure would be the result of a single man or woman fucking up, ruining the chance for the rest of us. Handled incorrectly, this would cause bitterness to impregnate the team. Animosity would incubate, eventually blooming into hatred and disgust. An undeniable stench of meh would fill the room. Left alone, it would infect the team and devour us from the inside out. Signups would fall off. Players would stop talking to one another, replaced by sarcasm and cheap shots.

"Oh, great. Him again. Thanks for ruining our raid night on Archimonde YET AGAIN. I love having my time wasted."

Eventually, the guild would collapse as its insides were eaten out. The risk was very real, the question was, would my guild be ready to rise above that?

In a final act of encouragement, Ater wrapped up the strategy by reiterating the guild motto he coined many moons ago -- one whose meaning was more relevant now than ever, due to Archimonde's Soul Charges:

"If we don't die...we win."

Descendants of Draenor defeats Archimonde,
Hyjal Summit

Famous Last Pull

The first few attempts allowed us to get a feel for timing on fears and Doomfire calls. Most important was the first-hand experience on the air blast, and at what part of the arc was most appropriate to use Tears of the Goddess. Too soon, and the buff would wear out before the player landed. Too late, and they'd become a fine red paste across the green plains at the Hyjal Summit. Misjudging either way produced the same result: falling to one's death, or "cratering". Each death allowed Archimonde to generate a Soul Charge, which he would then burn on us and wipe the raid.

While players adjusted to the timing of air burst and perfected use of their Tears, Blain observed the position of the groups. He spread us into the four prongs of a fork, with the tanks and melee at the base, and continued to refine this placement as the hours ticked away. Ater kept communication flowing back to the raid, alerting us of air bursts, and with each attempt he improved his own positioning, avoiding the air burst himself.

As expected, the mechanics were unforgiving. Doomfire wreaked havoc on us, especially during fear-bombs. Players cratered as they struggled to match their timing with their latency. The chain reaction of player-death-to-raid-wipe was alarming...and blunt. My fear was realized. One simple mistake was all it took. As soon as a player died, Archimonde's Soul Charge took out massive groups of players until it was a wipe. By the fourth and final hour, we completed a total of twenty-two pulls, and not one attempt had whittled the boss's health down below 50%.

"Last pull", Blain announced in Vent.

We arrived at the tail end of the raid. I did not want us to leave with ours tucked between our legs.

---

Ater's infamous countdown in Vent began, thus signaling the start of our twenty-third and final attempt of the night. I moved into position along my fork prong and began to light the giant Eredar up with Vampiric Touch and Shadow Word: Pain. A bluish beam of shadowy energy followed my DoTs, flaying Archimonde's mind. Doomfire etched its way across the plains without remorse, seeking targets to ignite; I side-stepped the fire and continued my shadowy barrage. Images of Battle.net forum posts began to flash in the back of my mind:
"DoD fails at raiding, disbands. LOL"
"Zanjina an embarrassment to Deathwing-US. Worst player on server."
I snapped out of it and refreshed Vampiric Touch to keep the mana flowing back to my group. Ater held Archimonde tightly in position, calculating small, surgical shifts to avoid air bursts. A tremor totem hit the ground, and moments later, Archimonde dropped a fear-bomb. Melee shifted for half-a-second in terror, then instantly returned to their duties...the tremor totem mitigating the bomb. My chat window lit up in bright purple as Melkezadek's' macro spammed me.

[W From] Melkezadek: FEAR WARD Cast: You're next!!!!

I moved towards Cyrant, hit him with a Fear Ward, and and spammed my own macro.

[W To] Neps: FEAR WARD NOW ON CYRANT...YOU ARE NEXT OMGWTFBBQ!!!!!!

Calm. 

Focus.

The air burst struck me and I was flung in to the air.

Hold.

Hold.

I reached the apex of the arc.

......Now.

I spammed Tears of the Goddess and drifted back down to the grass, rushing back into position. Cyrant dropped his tremor totem, moments before another fear-bomb, safe with my Ward shielding him from the chaos.

"Ater's air bursted."

"The warlock's are cut off from Doomfire."

Blain called out to Eacavissi, warning him of the impending fear bomb. A handful players along the ranged forks began running in random directions as panic and tension continued to smash its fist at the door.

"STRAIGHT. BACK." Blain reminded everyone. Running in a zig-zag pattern would only make Doomfire more vicious as it snaked its way toward targets. Staying in a straight line was the only way to keep it at bay, running along the length of the fire, rather than towards the tip. The fear-bomb hit; melee and tanks remained safe and in control.

"Oh, sweet Tremor." Blain said with relief.

I dropped from Shadowform and began putting whatever minuscule heals I could on the the players eating Doomfire. Houla dropped dangerously low, his health-bar a tiny green sliver on my screen. One more tick of damage would end him...along with this final attempt. I slapped on a renew and continued to look for players that needed help.

Suddenly, Blain called out. The moment of truth had arrived.

"OK, Bloodlust in 3, 2, 1...Go Bloodlust. GO. All out."

"Even healers. DoTs..." called Neps.

"Everybody DPS, there is no healing" added Breginna.

Lightning bolts flashed around the great Eredar, and the sky faded to red as night elf wisps bore down on him. Every raider blew every cooldown they had, all DPS, all working together, all alive....

At last, one single blinding explosion erupted in a shower of arcane energy, and Archimonde's battered armor lay at our feet. I couldn't believe it. Other players in the raid joined me in disbelief.

"...four fucking hours??" asked Dalans, as if to say how is this even possible?

Disbelief hung suspended while reality slowly set in. One of the most difficult bosses in The Burning Crusade, killed in only one night of work. Visions of the weeks we wasted on Gruul and Magtheridon, making the same mistakes over and over, were quickly blurring over. We had become so used to the same failures, the same excuses, that it was hard to digest what an accomplishment this truly was. Our crutch had been the profound claim that we took anyone to raids; that we felt everyone deserved a shot at end-game content. That mission statement wasn't wrong, but simply incomplete. We had failed with an incomplete vision for so long that an accomplishment like this seemed unreal.

But it was very real.

"Setting players' expectations of what our unified goals were" had finally taken hold of this group of players. Keeping people accountable, disallowing them from making excuses for failures, proactively solving problems before they manifested...it was like a different world. A different game.

A different guild.

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.