Client/Server Gaming Architectures
Client/server gaming architecture refers to a typical distributed architecture for the support of networked games. In this architecture, a single node plays the role of the server, i.e., it maintains the game state and communicates with all other nodes (the clients). The server notifies game moves generated by players and computes the game state updates.
Online Gaming Architectures
An online gaming architecture is typically composed of two types of entities: client entities (CEs) and game state server entities (GSSEs). A CE is a client software application that performs input/output with its player and receives/notifies events to the GSSE to which it is connected. Stated simply, a CE acts as a viewport to the game state and passes commands issued by its player to the GSSE. The GSSE computes the advancements of the game state.
The client/server architecture is the classic solution used in commercial game products, e.g., Quake, Ultima Online, and Minecraft (Briceño et al. 2014). In this case, a single copy of the game state is maintained at the server-side. Each event generated by a CE is sent to the single GSSE that processes the event computing a new game state; then, the GSSE forwards the newly computed game state to all other CEs. During the game, the GSSE controls the generated events’ validity.
In this scenario, clients are very simple since they have only to take inputs from the players and render the output state. Consistency is easy to maintain as well as cheating avoidance, because only a single GSSE maintains the game state, and thus a single node is in charge of determining the game state advancements. For this reason, provided that the GSSE is a trusted entity, illegal manipulations of the game state are extremely difficult/easily detected (Ferretti 2008; Mauve et al. 2002). Often, these advantages push game middleware providers to adopt this architectural solution (Bauer et al. 2004).
However, the major drawback of such an approach is that a centralized server could be the bottleneck of the system (Briceño et al. 2014); moreover, the GSSE is a single point of failure. Furthermore, this architecture is not scalable with the number of players (Reis Cecin et al. 2004). Finally, users that experience different network delays, due to their (possibly) different types of connections, are treated unfairly.
Despite these clear drawbacks, this solution is the preferred one in commercial networked games. This is due to several reasons. First is the already mentioned ease of management of the game state and game administration. Second, when the server is maintained by the game distributors, the server acts as an authoritative control node. In the pay-to-play business model, the server permits to control the access to the gaming servers and to reduce (or avoid) the game piracy. Moreover, this allows to profile users and offer additional services related to the game. An example is in-game stores in which gamers can purchase items and services. In the last years, many online game distributors have switched to a free-to-play business model in which players have access to a significant portion of their content without paying. In this case, the presence of in-game stores is a key part of the business model. Third, today’s games allow users with the possibility of connecting to the game using very diverse terminals and modalities of interaction. In this case, a dedicated server can provide each specific user with different output modalities, based on his/her specific needs. An emerging trend in online gaming architectures is multiplayer browser games in which the game is played over the Internet using a web browser. In this case, the client/server approach is now the most appropriate solution even if new technical solutions (e.g., WebRTC) could permit the development of peer-to-peer browser games.
The client/server gaming architecture can be naturally deployed over cloud computing infrastructures (Marzolla et al. 2012). Multiple servers can be hosted in the cloud, which are devoted to handle different gaming sessions. Such an approach increases the scalability of the provided game service. Moreover, in massively multiplayer online games, the game world can simulate a vast area. In these cases, the game state can be partitioned and distributed over multiple servers. Each server handles a specific portion of the game world and interacts with those CEs that are within that area. According to this approach, once a player leaves the area managed by a given server and enters another area (handled by a different server), it must disconnect from the previous server and open a novel connection with the newer server, all that without introducing consistency errors or affecting the gaming experience of the players.
- Bauer, D., Iliadis, I., Scotton, P.: Communication architectures for massive multi-player games. Multimed. Tools Appl. 23, 47–66 (2004). https://doi.org/10.1023/B:MTAP.0000026841.97579.1fCrossRefGoogle Scholar
- Briceño, L.D., Siegel, H.J., Maciejewski, A.A., Hong, Y., Lock, B., Panaccione, C., Wedyan, F., Teli, M.N., Zhang, C.: Resource allocation in a client/server system for massive multi-player online games. IEEE Trans. Comput. 63(12), 3127–3142 (2014). https://doi.org/10.1109/TC.2013.178MathSciNetCrossRefzbMATHGoogle Scholar
- Mauve, M., Fischer, S., Widmer, J.: A generic proxy system for networked computer games. In: Proceedings of the 1st Workshop on Network and System Support for Games, NetGames’02, pp. 25–28. ACM, New York (2002)Google Scholar
- Reis Cecin, F., de Oliveira Jannone, R., Resin Geyer, C.F., Garcia Martins, M., Barbosa, J.L.V: Freemmg: a hybrid peer-to-peer and client-server model for massively multiplayer games. In: Proceedings of ACM SIGCOMM 2004 Workshops on NetGames’04, pp. 172–172. ACM Press (2004)Google Scholar