There are several ways to coordinate the flow of data required to run an MMORPG, but the most common requires a client and a server. The client is the program that runs on your computer. The server is the machine -- or machines -- you connect to when you're ready to play.
A client is a combination of the playing board and the window used to view the game world. Nearly everything about the world -- including maps, landscapes and even what different mobs look like -- exists in files and databases on your computer. Your computer uses algorithms, or sets of rules, to translate these files into a representation of the game world and what's in it.
Your computer processes the game's sound and graphics. The game client on your computer also houses your user interface (UI), or the buttons and keystrokes you use to participate in the game. Some games allow you to modify your UI through independently-created add-ons. The client also tells the server where you are, where you're going and what actions your character takes.
A game client receives lots of information from the server as the game progresses, and handling it all requires lots of processing power. Game play can slow to a crawl for players with slow processors or poor graphics processing power, particularly in high-traffic areas. For this reason, many players find that they have to exceed a game's minimum system requirements in order to have a good playing experience.
The server has several responsibilities as well. Sometimes, these require input from the client, but in general, the server:
- Compares where your character is to where mobs, players and NPCs are
- Calculates whether a character is in range of the mob the player wants to attack
- Notifies your client when you're being attacked
- Calculates the probability of whether your attacks are successful
- Reports how much damage or healing you do to you and the rest of your party
- Notifies other players' clients when you damage or heal their characters
- Instructs your computer to display a mob's death animation when you kill it
- Determines what loot drops when you kill a mob
The term "server" is really a misnomer -- most MMORPGs require lots of servers. The most obvious, the world server, is where the game takes place. Sometimes, a world server is really several servers, and each one contains a particular zone or continent. Many games divide the player population into multiple world servers, also known as worlds or realms. On a physical level, different realms are virtually identical, and each has its own group of players, which can't often communicate with players on other servers. However, communities on each sever can develop distinct personalities. One realm might be dedicated to player-versus-player combat, while another might be primarily used by players who are interested in raiding.
MMORPGs require other servers as well:
- A login server allows players to log in to the game and access the game world. Some games route players from multiple realms through one login server.
- A chat server relays all the text players use to communicate with one another. A VoIP or voice server does the same for voice traffic.
- A Web server allows players to access their account information. Some games display characters' statistics and gear on a Web page -- in these cases, the game's databases have to have access to the Web server.
- Some games have their own game logic server, which performs all the necessary calculations related to game play and physics.
Game play is essentially an interaction between the client and the server. We'll look at exactly what happens next.