|Microsoft DirectX 9.0|
A client/server game consists of the individual players' computers (the "game clients") connected to a central server computer. The topology of a four-player client/server game is shown in the following graphic.
Game play is handled by having each user's game client communicate with the server. The server is responsible for passing information about to the other users. For instance, when one user moves, the user's computer sends a message to the server. The server then sends messages to the other players to inform them of a change in game state. The server can have a number of responsibilities; it can:
A client/server game is typically arranged and launched through a lobby client application that resides on the user's computer. The lobby client acts as a link to a lobby server application, which usually runs on the same remote computer that is hosting the game. When the game has been launched, the game server application becomes the host and handles tasks such as admitting new users to the game.
There are a number of advantages to client/server games.
Once you have developed and shipped a peer-to-peer game, you are essentially finished. The game clients are largely self-sufficient. However, with a client/server game, you have an ongoing responsibility to your users that goes beyond providing support services. You must also provide and maintain a game server computer and the associated software, along with the network links to handle all the messaging, for the lifetime of the application. In the case of massively multiplayer games, you may need to operate your servers for extended periods with few or no breaks in service, or risk angering users by disrupting their game play.