Tuesday, September 27, 2011

Game Server And Server Architecture

a.    Game Server
A game server is a remotely or locally run server used by game clients to play multiplayer video games. Game servers can be classified as listen servers and dedicated servers:
•    Listen server refers to a situation in which the server typically runs in the same process as the game client, allowing a player to both host and participate in the game. As a side effect, the server is usually terminated when the client is.
•    Dedicated servers are servers which run independently of the client. Such servers may be run by individuals, but are usually run on dedicated hardware located in data centers, providing more bandwidth and dedicated processing power. Dedicated servers are the preferred method of hosting game servers for most PC-based multiplayer games. Massively multiplayer online games run on dedicated servers usually hosted by the software company that owns the game title, allowing them to control and update content. In many cases they are run on clustered servers to allow huge environments and large player counts, and that’s why we are also going to use them in this project to make sure that many users can play simultaneously.

b.    Server Architecture
Massively-multiplayer online games have been a huge commercial
success in recent years. Existing deployments of such games
have been built on different server architecture:
•    Centralize or client-server architecture: is the most common architecture using the classic client–server model, where a big server is responsible of all the event’s processing and distribution and a thin client updates the user interface accordingly. This configuration involves multiple clients connecting to a single, central server which has the requirements to be a high capacity, high speed computer with a large hard disk capacity. In the Multi-Players Online Games world, this architecture has several drawbacks; one of them being the restriction imposed by the network capacity of the server machine creating a large bottleneck of inbound and outbound traffic.

•    PeerToPeer architecture: is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the application. A PeerToPeer architecture on game server consist of a system where the players are responsible of storing and distributing game artifact. Rather than concentrating its power in the server, Peer-to-Peer models rely on the power and bandwidth of participants. This technique lower the bandwidth necessary on the server side to host a game therefore shorten the bottleneck created on the server using centralize architecture. But the disadvantage of this style of architecture is the possibility of cheating, since critical events are processed on player nodes.

•    Hybrid architecture: is a hybrid technique that aims at taking advantage of the pros of both Centralize and Peertopeer architecture and diminish their cons. Centralize architectures have enormous server-side bandwidth requirements and Peer-to-peer game architectures provide better scaling, but open the game to additional cheating, since players are responsible for distributing events and storing state. The Hybrid architecture uses a combination of client-server and peer-to-peer event distribution, so that only critical events are processed by the server. The resulting architecture therefore maintains centralized control of state, while significantly reducing server bandwidth.

 
Powered by Blogger