Let's examine the image below as an example of how the "World of Warcraft" game client works. In it, a shaman named Yellowbell is collecting a stone for a quest, but she's caught the attention of a goblin, which is on his way to attack her. Here's what's happening from a client perspective:
- After pulling data from the archives stored on the computer's hard drive, the client creates a representation of Yellowbell's surroundings.
- The client informs the server of Yellowbell's position and receives information about stationary and mobile objects, or mobs, around her. A mob is essentially any wandering object in the world, but it's most often used to describe attackable enemies.
- When Yellowbell tries to pick up the stone, the client tells the server what she's doing. It also displays a status bar, showing the player how long it will take for Yellowbell to retrieve the stone.
- The client receives information about the goblin's attack from the server. It interrupts Yellowbell's stone collection when the goblin hits her. The client sends information to the server about how Yellowbell defends herself, and it receives information about the goblin's actions and the progression of the fight.
- Once Yellowbell kills the goblin and finishes collecting the stone, the client stops displaying it on the ground and instead displays an icon representing it in Yellowbell's inventory. It informs the server that Yellowbell has collected the stone, so other players will no longer see it in the game world.
These are just the highlights. The client constantly accesses or receives information about the game world and the characters in it. The more other characters there are nearby, the more work the server has to do. This is why some players' games can slow to a crawl in highly populated areas -- the computer's CPU and video processor can't keep up with all the information they need to display. In some cases, the frame rate, measured in frames per second (FPS), can drop dramatically, causing players to see the world as a series of still pictures rather than a moving scene.
The client also stores information about your character and your in-game options in the WTF folder on your hard drive. Files in this folder are usually in one of three formats:
- Text (TXT) files
- WTF files, which can be opened and read with a text reader (like TextEdit on a Mac or Notepad on a PC)
- LUA and LUA.BAK files, which come from the Lua programming language.
We'll look at Lua -- the language used to create "World of Warcraft" addons -- on the next page.