Home to the new Game Discovery Home to the old Game Discovery Home to the new Game Discovery






BACK

CLUSTER GAMING NETWORKS - Dedicated multiplayer game servers

General description of dedicated servers and the problem:
---------------------------------------------------------
Dedicated multiplayer game servers such as those for Half-Life or Quake II are becoming increasingly popular. First of all, they create a sense of community for the regulars on any one server. Most importantly, however is that such servers allow many fans of any specific game to do something towards helping the community surrounding that game grow.

Therein lies the problem. With a lot of these amateur servers, no one is exactly sure what kind of server it is they connect to. Gamers will launch a server query tool such as GameSpy or Kali, update their list, and look for the server with the lowest ping. However, round-trip latency does not qualify as an accurate measurement when it comes to determining the overall quality of any one server. Such factors as CPU speed and RAM capacity may compromise the efficiency of the server and make it perform much like another server that is 200 milliseconds slower in round-trip packet time.

Another problem associated with such servers is bad administration. Server administrators will ignorantly set maximum player limits far beyond those that their dedicated servers can handle. The consequences of such actions result in ping spikes for all players on the server, packet loss, a reduction in the game's frame per second output, and an overall depreciation of gaming quality.

A cluster network:
------------------
Now that it is confirmed that with today's current limitations in bandwidth and processing technology it is nearly impossible to host multiplayer games with an extraordinarily large number of people on a single server, we attempt to look at the utilization of more than one server in order to create pseudo- load balancing such as that found in enterprise networks. If the game's network code were written in such a way that is very similar to what web browser's do, it would definitely solve many problems associated with server load and capacity.

Here is an analogy to describe the current problem with one that has already been solved. Running a dedicated server today would be like creating a world wide web in which it was impossible to have a hyperlink. If you can even imagine how slow the growth of the world wide web would be if it lacked hyperlink technology, it would seem to make sense that in order to create a true multiplayer gaming community, servers would have to be able to drop clients and pick them up without the client even realizing he has been relocated.

What gaming companies attempted to do by creating hyper-capacity gaming servers such as those used for many multiplayer RPG games can be likened to an attempt to put the whole world wide web in the hands of a single company. To make matters worse, most companies charge a monthly fee for access to such servers. Needless to say, not only does that hinder the growth and popularity of the game, but places a huge burden on the company to maintain the server once traffic becomes slightly excessive. Maintenance costs including thousands of dollars spent on hundreds of man hours may in the very end not be enough to give the player a quality connection, which is now expected since he pays a monthly fee. Now the company must spends thousands more on technical support lines and staff to ensure the community that the servers are being upgraded. Wouldn't it be easier if that burden was split among 10,000 server admins?

So now you see why such a network makes sense. Now let me explain the added benefits to having such a network.

Possible utilizations for large cluster networks:
-------------------------------------------------
Imagine a game in which you are a single soldier involved in a very large war. The war could be fictional, taking place in the future, or it could be historic, with events identical to those from World War II. You are dropped on the battle- field, now you must follow your orders. You rush over the hill and assault three infantry men, then proceed to the enemy's base where you will find a fourth. After a short knife struggle, you win, and suddenly you are transported back to a preset entity in the game and the "round" starts over again!

What just happened? Isn't this supposed to be a large scale war? How come there are only five players on the relatively large battlefield? Well, you have just experienced the current limitations of dedicated server technology.

Let's give our game a title. We'll call it, "War", which is short and straight to the point. If War was just released by a company called "Squid Software" that is known to make excellent action game titles, it is without a doubt that a lot of people will pick it up off store shelves. They will then bring the game home, install it, and connect to a dedicated server that has a few players and a low ping time. After about 4 such "rounds", you reach the conclusion that the game is completely unrealistic and it depreciates from gameplay given the scenario of the game, which is large scale war.

With large scale cluster servers, though, each server will contain part of the very large battlefield. More servers that are inter-connected equates to more players that are simultaneously playing and a seemingly larger battlefield. If the current scenario is the invasion of Normandy, then the beach landing will be on one server, and as the players move further into France, they hop from one server to the next on the cluster. This will result in players actually feeling that they are in a large scale war, with anywhere from 500 to 1000 or possibly even more players on the battlfield! When the player dies in the game, he is brought back into the game as a military reinforcement unit, landing on the beach once again. An alternate possibility is having the player out of the game until a certain trigger event takes place, such as troops reaching a certain location or the commanding officer gives the order for the paratroopers to land. The possibilities are endless.

Cluster network topology:
-------------------------
Now that we discussed the problem, the solution, and a possible use for such technology, it is important to discuss possible ways that this technology can be implemented. Cluster networks generally mean networks that are interconnected with each other in such a way that every node of the cluster can communicate with every other node. So if you have 5 servers, A, B, C, D, and E, server A can communicate with B, C, D, and E. Server B can also communicate with A, C, D, and E, and so on. Such a cluster is said to be PARALLEL, because every server shares information with every other server. While this seems like a very good way to implement our sought technology for gaming purposes, if you factor in the bandwidth limitations that most people are subjected to things can become very complicated. Given the fact that most dedicated servers found in server query tools are run on a cable modem connection, it is quite difficult for 5 servers to share information with each other all at once. Congestion will occur, because server A will have to upload player information not only to server B, but also to servers C, D, and E. This consumes a large portion of server A's upload bandwidth. If you include the bandwidth required to update the clients (e.g. players) with other player information, you will soon realize that each server needs five times the amount of bandwidth that every player is consuming COMBINED. If you were running a cluster of 150 servers, you will soon realize that such an implementation on a large scale is not only impractical, but impossible.

There is a solution, however. If administrators were given the option of including their server in the cluster in the form of a SERIES network, in which every server talks to only the one before it and after it in the cluster, the server would only need to have three times the bandwidth that players are consuming. This data rate can be calculated by taking the data rates necessary for a single player to have a good connection with minimum frame loss, multiplying it by the number of players on the server, and then multiplying it by three. In a series network, assuming there were 26 servers A through Z, server H would only need to communicate with servers G and I. The layout of such a topolgy can be directly correlated by events in the game. For example, let's go back to our Normandy scenario. Players that are on the beach cannot view players that are a mile into France. It would only make sense that as players move in, they are "rolled" over from one server to the next, and in that sense, their view distance is directly related to what server they are on! Server A can be the beach confrontation, and about 500 relative yards into France they can be moved to server B, and so on and so forth. Hopping across servers would need to be flawless. Maps would need to be precached into video memory in a segmented pattern. Today's current .bsp map standard is too localized and inefficient for our purposes. We have to make maps small so they load without clients noticing a change. Mapstream technology allows maps to load continuously, flushing old data from video memeory and replacing it with new texture data and visual entities. Kill/death statistics would be calcuated through client side network code which sends a packet every time the player dies or kills someone to a central database server which compiles the information and submits it into the cluster. Server power will ultimately be limited to determing the position of the players on the map, and wether or not a player is hit. The data would then be relayed to either all or nextdoor neighbor servers depending on the cluster mode, where each server will submit the data back to its clients. Client side processing includes 3D modeling and the processing of player positions as dictated by the server, and kill/death stat updates to the scoreboard server. At the end of the game scenario, all of the servers in the cluster submit the data that the scoreboard server compiled to the clients, where it is then displayed on screen. Up until that moment though, everyone's score is kept to themselves.

I urge all those developers interested in the implentation of such technology in their game to contact me as I have many many ideas I would like to share, and I would prove to be an excellent asset to your project team.

CLUSTER GAMING NETWORKS - Dedicated multiplayer game servers

ZiN
drx@tampabay.rr.com

Avoiding making a fool of myself, I must inform you of that I am mainly a video gamer and seldom play PC multiplayer games. That said, I admit that some of the details in your most excellent article/idea about server problems and possible solutions went beyond my knowledge on the subject. But I don't see that as a problem. After all, this article is not dedicated to me :]

Idea Reviewer:
-Vegard Aure-


BACK