dc.description.abstract | This research tries to determine a sound and solid solution to creating a scalable client-server architecture for a massively multiplayer online game that is completely automated. This implies the automated spawning and closing down of servers based on CPU and memory load, data transfers between servers, and database sharding.
As the gaming industry starts to have a clear trend in the last years towards online multiplayer games, the optimization and atomization of a client-server architecture dedicated for such a game represents a very high interest subject in the last period.
The paper will focus on two main parts. The first part mainly discusses the actual client-server architecture. It takes into account how and why the architecture is layered, the functionalities and responsibilities of the servers on each layer, and proposals and comparisons between different ways of server-server communication and overall server system supervision.
In the second part, this paper will extensively analyze which is the best approach to take regarding player placement throughout the servers. While a number of very popular games choose to have a very clear cut system in which each server is allocated to a given geographic region and players from different servers can never interact, the solution proposed here wants to allow any two players from any two servers to interact with each other, keeping the data transfers, however, to a minimum. To reach this goal, this paper proposes a novel solution that consists of keeping track of the "closeness" between players in real time, and predicting future interactions based on this closeness graph.
Finally, the results of applying these discussed techniques on a massively multiplayer online game are shown and analyzed. Based on these results, conclusions are drawn, and the best configuration of the proposed architecture for the given game is presented. In addition, recommendations are given in the end for possible further improvement of the given system in the future. | |