COSMMUS - An infrastructure for massively multiplayer online games
Massively multiplayer online games (MMOGs) have become an important genre of online entertainment in the last decade. In these games, many thousands of participants play simultaneously with one another in the same virtual environment. This kind of application has been traditionally supported by powerful and expensive central infrastructures with considerable processor and network capabilities. This project intends to look into some of the key components of a geographically distributed infrastructure to support MMOGs. The most important features in such an infrastructure are consistency, performance, and fault tolerance.
MMOGs are characterized by a large number of players. To support so many participants, a client-server infrastructure is generally used, where client requests are handled by a cluster of servers, and sometimes a datacenter. In this paradigm, the servers have the official copy of the game state and are responsible for computing state changes over time; clients are responsible for presenting the game state to the players. Servers are also responsible for updating the clients in real time on the changes that occur in the game virtual environment.
Because of the high cost to maintain a centralized infrastructure, alternative solutions have considered distributing communication and processing among participants of a game, following a peer-to-peer model. Solutions of this kind, however, come with their own design challenges. Two of the main challenges are performance and fairness. Performance is mostly related to ensuring low response time for player actions, guaranteeing a good game experience. Fairness is concerned with malicious players who could try to subvert the game engine for their benefit, for example violating the rules of the game (i.e., cheating). While centralized infrastructures also have to deal with such problems, decentralized environments are more vulnerable to them.
The typical solution to boost performance (i.e., reduce latency) in MMOGs is to relax consistency. Inconsistencies in a game can be tolerated but are usually annoying (e.g., an object that suddenly disappears from a location and magically reappears in another). As we elaborate in the proposal, our ongoing work has considered optimistic techniques to reduce the latency of distributed game engines, with the advantage of preserving consistency. Work on decentralized MMOGs is too incipient to have addressed the problem of fairness. We discuss some approaches we intend to pursue to prevent and detect cheating.
While our motivating application is MMOGs, we expect the protocols designed in this project to be applicable in broader areas. The closest one is networked virtual environments which are not games, such as applications for military training or flight simulation. But the applicability of our results is not limited to virtual environments. Latency-efficient consistency mechanisms and group communication protocols may be used to improve performance of distributed databases, for example. Finally, any application that holds a state divided among several computers and requires strong consistency may benefit from our work.