Prev NEXT

How World of Warcraft Works

Client-server Communication

A raid fights Doom Lord Kazzak
©2006-2009 Blizzard Entertainment, Inc. All rights reserved. The Burning Crusade is a trademark, and World of Warcraft and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries

All the maps and scenery in "World of Warcraft" live on your computer, but information about what's going on in the world has to come from a server. Based on the information it gets from your game client, the server performs a lot of calculations about the world, including:

  • where mobs are in relation to you
  • whether you're in range of mobs you want to attack
  • whether your attacks are successful
  • how much damage you inflict on a mob you're attacking
  • how much damage the mob inflicts on you
  • how much you heal yourself or people in your party, using healing spells or bandages

The server also collects information from other players clients' -- whether you're in a group with them or not -- and relays it to your computer. This allows you to see other characters, their gear and their actions in the game. It also lets you receive chat messages, guild invitations and group invitations. This information doesn't travel directly from another user's computer to yours -- it travels to you via the server.

Advertisement

The efficiency of all of these interactions is dependent upon the amount of time it takes a message to travel from a client to a server and back. Players who experience high latency -- or a long travel time -- can see significant delays between when they perform an action and when they see it happen on the screen.

A battle against a mob is an ongoing exchange of information between your computer, the computers of the people in your group and the server. For example, say you and some friends plan to Doom Lord Kazzak, a raid boss in Outland. Here's what happens:

  1. You and your group approach the Kazzak. All of your clients send information to the server about where you are. The server knows where Kazzak is -- if you get too close, you'll pull him by accident, at which point he'll probably kill your party.
  2. Once you're in range, someone in your party attacks Kazzak. That person's client informs the server of the attack. The server responds by causing the Kazzak to attack your party and to verbally taunt you. It relays this information to your computers.
  3. As you're fighting, your party's clients tell the server which spells you're casting. Based on your character's statistics, the server calculates your damage and healing. It relays that information to your clients, so each player can see what's happening to all the others. Other players' clients are doing the same thing, so you can see how they fare during the battle as well.
  4. When you successfully kill Kazzak, the server instructs your clients to play its death animation. If not, the server instructs Kazzak to further taunt each killed player.
  5. When someone loots Kazzak's body, the server consults its loot table and lets each client know which items dropped. The clients display these items on each player's screen, or on the screen of the player designated to be in charge of distributing loot (the master looter). The players decide who will receive the items.
  6. When a player collects an item, the client removes the image of the item from the list of dropped loot and places an icon representing it in the player's inventory. The client also tells the server that the player has done so, and the server instructs the other clients to remove that item from their game view.

Click to advance.­

PvP combat is a little different -- the server still makes calculations, but other players, rather than artificial intelligence, control the other combatants. But regardless of whether an AI script or a human brain is in charge, the battle itself can often be challenging.

Related HowStuffWorks Articles

More Great Links

Sources

  • Bartle, Richard. "Players who Suit MUDs." (11/11/2007) http://www.mud.co.uk/richard/hcds.htm
  • Blizzard. "World of Warcraft Surpasses 9 Million Players Worldwide." Press release. 7/24/2007 (11/11/2007) http://www.blizzard.com/press/070724.shtml
  • Blizzard. "World of Warcraft." 2004.
  • Blizzard. "World of Warcraft: Realm FAQ." (11/8/2007) http://www.worldofwarcraft.com/info/faq/realms.html
  • Blizzard. "World of Warcraft: The Burning Crusade." 2007
  • GameSpy staff. "World of Warcraft: Lead Designer Rob Pardo." 11/23/2004 (1/8/2007) http://pc.gamespy.com/pc/world-of-warcraft/568494p1.html
  • IDGA. "Online Games Whitepaper." 2002.
  • James, Daniel, et al. "2004 Persistent Worlds Whitepaper." IDGA. 2005. http://www.igda.org/online/IGDA_PSW_Whitepaper_2004.pdf
  • Palo Alto Research Center. "Playing Time." 6/21/2005 (11/11/2007) http://blogs.parc.com/playon/archives/2005/06/playing_time_1.html
  • Pinckard, Jane. "Over 18,000 Accounts Cancelled in World of Warcraft." 11/22/2005 (11/820007) http://www.1up.com/do/newsStory?cId=3146573&did=1
  • Smith, Will. "MMORPG." MaximumPC. May 2005.
  • Terdiman, Daniel. "Game Players Say Blizzard Invades Privacy." Cnet. 12/12/2005 (11/7/2007) http://www.news.com/Game-players-say-Blizzard-invades-privacy/2100-1043_3-5830718.html
  • Vivendi. "Financial Report and Unaudited Condensed Financial Statements for Half Year Ended June 30, 2007." http://www.news.com/Game-players-say-Blizzard-invades-privacy/2100-1043_3-5830718.html
  • Vivendi. "Introduction to Vivendi Games." Investor presentation/filed with the SEC. June 2006. http://www.sec.gov/Archives/edgar/data/1127055/000095012306007628/y22210exv99w1.htm
  • Williams, Dmitri et al. "From Tree House to Barracks: The Social Life of Guilds in World of Warcraft." Games and Culture. Vol. 1 No. 4. October 2006. http://www.nickyee.com/pubs/Tree%20House%20to%20Barracks%202006.pdf
  • Yee, Nick. "WoW Basic Demographics>" The Daedalus Project. 7/28/2005. (11/22/2007) http://www.nickyee.com/daedalus/archives/001365.php
  • Yee, Nick. "WoW Gender-bending." The Daedalus Project. 7/28/2004 (11/22/2007). http://www.nickyee.com/daedalus/archives/001369.php