A chat with a World of Warcraft bot programmer
Every day, millions of people trade in their real-life personas for virtual humans, orcs and night elves in the massive online game World of Warcraft. Real people spend countless hours controlling their virtual counterparts, collecting online treasure, fighting monsters and making their characters more powerful. Some, in a bid to save time or the sanity of their girlfriends, have started using bot programs to autonomously control their characters. We took a close look into one such "bot" program WoWglider and chatted with its developer who goes by the nickname "Mercury".
In World of Warcraft, players log into various online characters such as a Warrior, Mage or Priest and travel around the twin continents of Azeroth. The goal is to fight monsters and complete quests that will award experience, gold and equipment. As characters gain experience, they will "level up" and procure better skills. All of this takes time and it's not uncommon for people to spend several hundred hours getting up to level 60, which is currently the highest achievable level.
While many people enjoy spending time venturing around World of Warcraft, others want a fast and easy way to the top. WoWglider and other bot programs automate the leveling and treasure gathering process by automatically moving characters around and attacking monsters. While it will still take many hours for characters to reach higher levels, people can now surf the web, read a book or even sleep.
Mercury told us that the primary purpose of WoWglider is to allow busy people to "level up" their characters. When he first started playing WoW, Mercury felt left behind because his friends were already at level 60 and he had little time to catch up. "I also wanted to get to 60 to come along on the instance runs, but I had no time to grind it out between work and social life." Many areas of the game are only available to higher level characters, so Mercury wrote WoWglider to accelerate his game.
While WoWglider can be used to level up the first character, Mercury discourages people from doing so and recommends the program for people's alternate characters. In WoW, people can have many characters and their primary one is usually referred to as the "main", while the other characters are called "alts". "I always discourage new players from using Glider. All that 1-60 content is pretty fun... and skipping it with Glider is just a shame," Mercury said.
People can download and try WoWglider for free. The trial version works for a few minutes and users can pay $25 for a perpetual license. Mercury told us that the program has been "fairly popular" and while he doesn't want to give away the exact numbers of people who have paid $25, he does say that the program has been downloaded 3,000 to 5,000 times.
WoWglider works by navigating characters in a big circle around an area. Users set up waypoints and the program automatically scans for monsters and attacks them in the "glidepath". Killed monsters are then automatically looted for treasure items. Special gathering skills such as mining, herb gathering and animal skinning can also be applied.
Mercury told us that WoWglider reads the game's memory locations to find out the status of the character and nearby monsters. Keystroke information is then sent to the operating system, which is then sent to the game client. "It reads memory to see your health and mana, the monster's health, etc. It works pretty much you would, pressing keys and moving around in response to what's happening in the game," says Mercury. He emphasizes that the program won't do anything that a human player wouldn't be able to do such as, "finding stealthed monsters or teleport".
Blizzard, the owners of World of Warcraft, obviously doesn't like these programs and tries to ban anyone using these. Two methods, one technological and one human, are used to detect these bot programs. A security program called "the Warden" routinely scans memory addresses and window names for anything suspicious. Bot programs can also be detected by their robotic behavior and Blizzard employs people acting as GMs ("Game Masters") follow that behavior.
Mercury realizes that avoiding detection is tough, but can also be fun, adding, "Avoiding detection is rather exciting, to be sure." A big part is randomization of character movement to fool onlookers that the player is human. "We try to add little mannerisms here and there, like jumps and random strafing and bits of randomness to combat," says Mercury. Character movement between waypoints is also randomized so as to not walk over the same point multiple times.
Despite all of these measures, WoWglider users have been detected and Mercury constantly adds anti-detection features. GMs usually use the in-game-chat to talk to a suspected botter. Players that do not respond are usually banned for 72 hours or permanently. Mercury added in an auto-responder that blares out an alarm and responds with a user-defined phrase. He even added in teleport detection to thwart sudden teleportation, which is another GM tactic. A once sure-fire way to detect a botter was to teleport a character to another place for a chat. A robotically-controlled character would still go around in circles, while a human would stop and usually say, "What the heck just happened?" WoWglider now detects teleports and will sound an alarm and shut down the program.
Blizzard isn't completely against automation and allows players to install custom user-interfaces, like CosmosUI, that allow limited automation of spell casting and other attacks. There is even an official "UI and Macros" forum on the World of Warcraft website. Automation can help ease some tasks, especially for spell-casting players. The game has an array of beneficial spells that temporarily give effects such as extra strength or attack power. The spells usually last a few minutes, but can be as a few seconds. In a regular party of five people, it's easy to see how this could become a major headache.
What's next for WoWglider? Mercury is thinking about adding in custom combat routines to give players, "absolute control of the fight and post-fight resting". He also is giving into user requests to add limited player to player fighting. Mercury had maintained a policy that WoWglider would never be used against another human player, but told us it must be added in to help avoid detection. "A player who ignores an attacking player looks very suspicious, so we're building in some limited means to fight back," says Mercury.