In the last month, three group members have been assigned with individual tasks. Each of us targets one aspect of networking architecture in MMOGs. We gleaned, read, and summarized papers we found and shared them between each other. Here is what we learned so far about networks of MMOGs in three different areas.
MMOGs are large-scale applications providing a real-time, shared, persistent and seamless virtual environment (VE) to huge communities of users.
Today’s architectures for MMOGs rely on a client/server model(centralized server).
Virtual data locality has been used to increase scalability of MMOG. The most common approach, called zoning, divides the VE into regions, each region independently managed by a server.
On-demand resources provisioning (also known as cloud computing) may alleviate the aforementioned scalability and hardware ownership problems.
Mechanisms to integrate user-provided resources in a MMOG infrastructure naturally evolved from the peer-to-peer (P2P) paradigm. P2P has its unique advantage on reducing the load on centralized servers.
P2P-based infrastructures require additional mechanisms to suit the requirements of a MMOG.
To sum up, centralized servers are still the main architecture used for modern MMOGs. With the fast demand from players and development of video games, many advanced technology has been merged into the centralized server model to extend game’s scalability and stability. As client/server models play a leading role, a hybrid network architecture model has been widely used for better MMO gaming experience.
One paper argues that the P2P advantage is good data distribution, but when it comes to MMO there are 3 problems.
When the network is split, there is a risk of game data loss.
There is no connection point, so it has no stable way of connecting to the game.
The game has no authority, so it’s difficult to prevent cheating.
So solving these 3 problems is the important point of designing P2P networks in MMO games. One solution is central connection(CC) which is a group of two algorithms which decides one central client among peers then it will act as a central peer until the system assigns new CC or the peer leaves the group.
But for cheating prevention, instead of relying on CC to monitor cheating, the voting system will work effectively. More specifically, for each data modification, all the connected peers will check if the modification is valid or not.
In another paper, researchers developed a peer to peer support scenario based on Pastry considering actual MMORPG network patterns.
Due to asymmetric allocation of upstream and downstream bandwidth, they use Scribe which is an application level multicast tree. First, one node is selected as root, and when more than 2 nodes try to reach the root using the same path, the multitree is established.
D38 is root and 356 and 467 are the peer nodes.
In regular client-server connection, the server generates 10 times larger traffic than client. For example, in 3D MMO game Lineage2, the server's upstream requirement is 140Mbp while downstream is only 9Mbp. So in the simulation, they use Scribe multicast to solve asymmetry problems in P2P.
The results of the simulation have shown that the Scribe tree performs well in bandwidth stress among peers, but there is a bottleneck in upstream bandwidth stress(which can be solved by a low cost-algorithm). Also, the scalability of the tree was good since even the number of peers increases 5 times, the level of the tree only increased by 2.
The other paper proposed a knowledge based approach on P2P games. Unlike client based MMO, each peer has to have storage for containing information about the current state of the game.
Each component has the following characteristics,
– User Interface: Responsible for the interface between the user and the game; accepting
user commands to be used as actions and providing feedback about the game state for
the user to make future decisions on actions.
– Rules: Holds the game rules which dictate how the game is played and how the game
progresses depending on the inputs given.
– Rule Engine: Processes rules as well as attempts to run actions.
– KB: The KB (knowledge base) represents knowledge about the state of the game as well
as knowledge about the network.
– Reasoner: Provides knowledge to the rule engine so that it is able to process which rules
apply. The application of rules generates fresh knowledge which is passed back to the
reasoner so that it can update the knowledge base.
– P2P Protocol: Handles any messages to be sent to and received from the P2P network
and to handle any information to be used by the peer or to be passed on to other peers in
the network.
Peer-to-peer connectivity is evolving as one of the networking sector’s most inherently disruptive innovations. It is imperative to analyze peer-to-peer (P2P) communication’s characteristics and background thoroughly to get a better understanding of its importance and why it is used and how it can improve multiplayer gaming.
ARPANET
The principle of peer-to-peer networking goes back to the mid-1960s when ARPANET (Advance Research Project Agency Network) was developed in The United States by the Department of Defense (DoD). ARPANET consisted of multiple hosts and each was deemed essential. It was a competitive client-server network where information could be requested and served by any node on the network.
The first version of Telnet was stemmed from ARPANET. Many of the games in this era were single player and Telnet was one of the programs that allowed games to be available to users in different locations. Doom was one of the first networked games that utilized USENET and FTP sites. The implementation of TCP/IP was to have direct communication between hosts with networking as the main guide for packets to reach their destination. Many of the protocols used such as FTP, DNS, HTTP and SMTP are based on the assumption that hosts connect directly with each other to share data and rely on the network to ensure it happens. The methods used by peer-to-peer networking are essentially an extension of these concepts. Although the simplicity of its routing system was effective, ARPANET was not able to keep up with advancing technology.
Napster
Napster developed in 1999 is well-known as the pioneer of P2P networking. It used a centralized index that allowed users to search and store files on a network. Peers are associated with a central database where information about the content they want to share is published. A user seeking specific content queries the database, retrieves the IP address of the nodes where the data is located and downloads it directly from one of the nodes. This centralized approach made it simple to identify files and keep track of those uploading and downloading files.
Gnutella
Gnutella, created in 2002, started the second-generation peer-to-peer networking. This model has been adopted by others since there was none like it replacing centralized systems with decentralized systems. Gnutella uses an unstructured overlay network approach. Typically, unstructured overlays are differentiated by how search requests are propagated and by variations in the creation of links with nearby peers. Gnutella also implemented the flooding mechanism where queries are forwarded to all linked peer nodes to verify their request. Additionally, SOLIPSIS was a massive multiplayer virtual world created in the early 2000s that utilized Gnutella. It optimized this topology by gathering entities which are close in the game-world on the P2P network. The distance that messages have to move on the underlying P2P network is therefore decreased. However, Gnutella proved not to be scalable.
BitTorrent
BitTorrent is by far one of the most popular peer-to-peer applications to date. It is said to be the third generation of peer-to-peer networking implemented. The premise of BitTorrent was to allow nodes to simultaneously download and upload files. Even though BitTorrent operates as a decentralized system, it still relies on a central server which the call atracker for coordination of users and to keep track of files’ location and availability.
There are applications that have also used this distributed architecture to provide their users and services with enhanced overall performance. The use of this P2P networking by gaming developer and publisher Blizzard Entertainment Inc. goes back to the 90s and 2000s when more multiplayer games were being created. The company used peer-to-peer for its multiplayer setup when Diablo was initially released. A player would serve as the host and the other as a client. Another service offered by Blizzard that also used peer-to-peer for gaming was Battle.net which enabled a voluminous number of concurrent players with a server for chat and another for matching players. They then started using BitTorrent to allocate patches and updates through its Blizzard Downloader for games like World of Warcraft.