Many researchers regard multiplayer online games as the future of the interactive entertainment industry (Brun, Safaei, & Boustead, 2006; El Rhalibi & Merabti, 2005; Sharp & Rowe, 2006). In particular, due to advances in game design and the availability of broadband Internet access to the enduser, multiplayer online games with real-time interaction have come into wide use (Aggarwal, Banavar, Mukherjee, & Rangarajan, 2005; Claypool & Claypool, 2006; Yasui, Yutaka, & Ikedo, 2005). The majority of these games are made up by classic software titles that need to be installed on the players’ machines (El Rhalibi & Merabti, 2005). Browserbased multiplayer games, on the contrary, can be run instantly from a Web site, but have, due to technical limitations, long been round-based, strategy-focused games. However, with the ongoing evolvement of Rich Internet Application (RIA) technology (Allaire, 2002) such as Adobe Flash and Java, browser-based online game development has reached a point where also real-time games can be produced and distributed to a large audience quickly and easily. Browserbased games can be utilized in conjunction with e-business offers in a very simple way and hold a number of exciting possibilities for new online business models, new markets, and new growth (Kollmann & Häsel, 2006; Sharp & Rowe, 2006). However, as the browser is a very different operating environment and interactive experience from that of classical game software, browser-based multiplayer real-time games involve gaming architectures that are distinct from their classical counterparts. A major challenge when designing and implementing such architectures is that multiplayer online games are highly vulnerable to propagation delays resulting from redundant communication, bottlenecks, single points of failure and poor reactivity to changing network conditions (Ramakrishna, Robinson, Eustice, & Reiher, 2006). As latency from input of information to its output determines gameplay and fairness (Brun et al., 2006), the game architecture has to be designed in a way that it mitigates latency effects and meets the expectations of the players (Claypool & Claypool, 2006). Elaborating on the example of an online tabletop soccer game with two remote players, this article discusses two architectural models that can be applied to implement browser-based multiplayer real-time games using RIA technology.
Online games that give the player the ability to compete against other players over a network emerged strongly in the middle of the last decade. Traditionally, multiplayer online games have been implemented using client-server architectures (GauthierDickey, Zappala, Lo, & Marr, 2004). Thereby, a copy of the software is installed on each player’s machine, which connects directly to a central authoritative server designed to handle game logic (Claypool & Claypool, 2006; El Rhalibi & Merabti, 2005; Guo, Mukherjee, Kangarajan, & Paul, 2003). The server deals out information individually to each client as it is requested and keeps all the players up to date with the current state of the game (El Rhalibi & Merabti, 2005). Whenever a client performs an action (such as firing a gun or kicking a ball), the data is sent to the server, which calculates the effects of that action and sends the updated game state to the clients (El Rhalibi & Merabti, 2005). Client-server architectures have the advantage that a single decision point orders the clients’ actions, resolves conflicts between these actions and holds the global game state (GauthierDickey et al., 2004). Unfortunately, they also have several disadvantages. The most obvious one is that client-server architectures introduce delay because messages between players are always forwarded through the server (GauthierDickey et al., 2004). This adds additional latency over the minimum cost of sending commands directly to other clients (Cronin, Kurc, Filstrup, & Jamin, 2004). Moreover, traffic and CPU load at the server increases with the number of players, creating localized congestion and limiting the architecture by the computational power of the server (GauthierDickey et al., 2004).
Key Terms in this Chapter
Client-server: A network architecture that separates several clients from a server. A client is an application that sends requests to the server and is often responsible for rendering the user interface. The server passively waits for the clients’ requests, processes them and sends appropriate responses to the clients.
Rich Internet Application: A browser-based application that has the features and functionality of a traditional desktop application. Rich Internet Applications (RIAs) introduce an intermediate layer of code between the user and the server that acts as an extension of the browser. They are typically run in a secure “sandbox” environment and can be implemented using technologies such as Flash, Java or Ajax.
Browser-Based Game: An online game that is accessed with a Web browser over the World Wide Web. Unlike classical game software, browser-based games can be played instantly and do not require a prior installation on the player’s machine. Browser-based games may be implemented using standard hypertext mark-up or Rich Internet Application technologies.
Real-Time Game: A multiplayer game featuring real-time interaction between the players, that is, when a player performs an action, other players are made aware of the consequences of that action within an operational deadline. As a discrepancy in the perceptions of the players may lead to undesirable outcomes, such games entail increased constraints on responsiveness and consistency.
Peer-to-Peer: A network architecture that does not have the notion of clients or servers, but only equal peer nodes that simultaneously function as both clients and servers to each other. If a peer-to-peer network has a central server that keeps information on peers and responds to requests for that information, this network is often referred to as hybrid peer-to-peer.
Latency: A time delay between the moment something is initiated, and the moment one of its effects begins. With respect to packet-switched networks such as the Internet, latency (also referred to as lag ) refers to the time taken for a packet of data from the sending application to the receiving application.
Multi-Player Game: A game that is played by multiple people at the same time. In contrast to single-player games that feature artificial opponents, players in multiplayer games compete against each other or team up to achieve a common goal. Modern multiplayer games connect geographically dispersed players by using Internet technologies and allow them to play together.