throbber
Case 1:16-cv-00455-RGA Document 32-4 Filed 10/21/16 Page 1 of 52 PageID #: 1891
`

`

`

`

`

`
`Exhibit F
`
`

`

`Case 1:16-cv-00455-RGA Document 32-4 Filed 10/21/16 Page 2 of 52 PageID #: 1892
`
`CSUR4601-09
`
`ACM-TRANSACTION
`
`October 10, 2013
`
`21:43
`
`Peer-to-Peer Architectures for Massively Multiplayer Online Games:
`A Survey
`
`AMIR YAHYAVI and BETTINA KEMME, McGill University
`
`Scalability, fast response time, and low cost are of utmost importance in designing a successful massively
`multiplayer online game. The underlying architecture plays an important role in meeting these conditions.
`Peer-to-peer architectures, due to their distributed and collaborative nature, have low infrastructure costs
`and can achieve high scalability. They can also achieve fast response times by creating direct connections
`between players. However, these architectures face many challenges. Distributing a game among peers makes
`maintaining control over the game more complex. Peer-to-peer architectures also tend to be vulnerable to
`churn and cheating. Moreover, different genres of games have different requirements that should be met by
`the underlying architecture, rendering the task of designing a general-purpose architecture harder. Many
`peer-to-peer gaming solutions have been proposed that utilize a range of techniques while using somewhat
`different and confusing terminologies. This article presents a comprehensive overview of current peer-to-peer
`solutions for massively multiplayer games using a uniform terminology.
`Categories and Subject Descriptors: C.2.4 [Computer-Communication Networks]: Distributed Systems;
`K.8.0 [Personal Computing]: Games
`General Terms: Algorithms, Design, Human Factors
`Additional Key Words and Phrases: Peer-to-peer networking, massively multiplayer online games, interest
`management, network overlays, multicasting, replication, fault tolerance, consistency control, incentives,
`cheating, commercial applications
`ACM Reference Format:
`Yahyavi, A. and Kemme, B. 2013. Peer-to-peer architectures for massively multiplayer online games: A
`survey. ACM Comput. Surv. 46, 1, Article 9 (October 2013), 51 pages.
`DOI: http://dx.doi.org/10.1145/2522968.2522977
`
`1. INTRODUCTION
`Massively Multiplayer Online Games (MMOGs) are among popular online technologies
`that produce billions of dollars in revenues and introduce several new and interesting
`challenges. One of the main attractions of these games lies in the number of players
`that participate in the game. The more players that are in the game world, the more
`interactive, complex, and attractive the game environment will become. Successful
`games such as World of Warcraft with nearly 12 million subscriptions [Blizzard 2011]
`have to provide a truly scalable game world while maintaining responsiveness.
`To better understand MMOGs, we first need to give a definition. Video game is
`usually defined as an electronic game that is played by a controller and provides
`user interactions by generating visual feedback. A multiplayer game is a game played
`by several players. Players can be simply independent opponents or they can play in
`
`A. Yahyavi was funded by NSERC Strategic Grant STPGP/350626-2007.
`Authors’ addresses: A. Yahyavi (corresponding author) and B. Kemme, School of Computer Science, McGill
`University, Montreal, QC H3A 0G4, Canada; email: amir.yahyavi@cs.mcgill.ca.
`Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted
`without fee provided that copies are not made or distributed for profit or commercial advantage and that
`copies show this notice on the first page or initial screen of a display along with the full citation. Copyrights for
`components of this work owned by others than ACM must be honored. Abstracting with credit is permitted.
`To copy otherwise, to republish, to post on servers, to redistribute to lists, or to use any component of this
`work in other works requires prior specific permission and/or a fee. Permissions may be requested from
`Publications Dept., ACM, Inc., 2 Penn Plaza, Suite 701, New York, NY 10121-0701 USA, fax +1 (212)
`869-0481, or permissions@acm.org.
`c(cid:2) 2013 ACM 0360-0300/2013/10-ART9 $15.00
`DOI: http://dx.doi.org/10.1145/2522968.2522977
`
`9
`
`ACM Computing Surveys, Vol. 46, No. 1, Article 9, Publication date: October 2013.
`
`

`

`Case 1:16-cv-00455-RGA Document 32-4 Filed 10/21/16 Page 3 of 52 PageID #: 1893
`
`CSUR4601-09
`
`ACM-TRANSACTION
`
`October 10, 2013
`
`21:43
`
`9:2
`
`A. Yahyavi and B. Kemme
`
`teams. They can play against each other or can play against the game, that is, opponents
`that are controlled using Artificial Intelligence (AI). An MMOG is a game capable of
`supporting hundreds or thousands of players and is mostly played using the Internet.
`Many games such as World of Warcraft [Blizzard 2011], EVE Online [EVE 2011],
`and Final Fantasy XI [FFXI 2011] have shown that MMOGs are a thriving business
`industry. For example, Star Wars: The Old Republic was able to achieve one million
`subscribers in three days after launch.1 Second Life [SecondLife 2011], launched in
`2003 by Linden Lab, is the most famous social virtual world with more than 16 million
`registered users. The emergence of social games (such as Farmville and Mafia Wars2)
`with millions of subscribers [Zynga 2011] as well as mobile games that are played on
`smartphones, and the popularity of handheld devices such as Sony PSP [2011] and
`Nintendo DS [Nintendo 2011], lay the foundation for potential integration of social
`and mobile environments into massively multiplayer games [Iosup et al. 2010; Varvello
`and Voelker 2010].
`MMOGs can produce huge network traffic and processing loads [Suznjevic and
`Matijasevic 2012; Chen et al. 2005b]. Thus, the main challenges in MMOGs are scala-
`bility, that is, providing support for thousands of players simultaneously, consistency,
`security, and fast response time, and usually all at the same time, otherwise customer
`satisfaction would be reduced. In the next sections we discuss these challenges and
`different solutions that have been proposed.
`Client-server systems, where game execution and game state dissemination are com-
`pletely controlled by the server, are currently the prevalent game architecture. How-
`ever, peer-to-peer architectures can be beneficial for gaming infrastructures in several
`ways. If client nodes communicate directly with each other or perform part of the
`game state computation, server requirements in terms of computational power and
`network bandwidth can be significantly reduced. Even if the game execution remains
`completely controlled by servers, peer-to-peer technology can be used to coordinate mul-
`tiple servers, such as maintaining distributed game state execution and management
`of server farms [Chen et al. 2005a] or federated servers [Iimura et al. 2004; Ahmed
`et al. 2009]. Cloud-based game streaming services based on content distribution net-
`works [OnLive 2011] can also benefit from these architectures [Chien et al. 2010]. They
`can provide 3D streaming services where, similar to audio or video media streaming,
`3D content is fragmented into pieces at a server, before it is transmitted, reconstructed,
`and displayed at the clients [Wu et al. 2009].
`Peer-to-peer architectures have received a great deal of research attention in the
`recent past as they distribute computational and network load among peers, can po-
`tentially achieve high scalability, low cost, and good performance as will be discussed
`further. While most of our discussions are focused on multiplayer games, in particular
`MMOGs, many of these architectures can also be applied to other distributed systems
`such as distributed simulation environments [Fujimoto 2000], virtual worlds such as
`Second Life [SecondLife 2011], and other networked virtual environments [Blau et al.
`1992; Kawahara et al. 2004; Keller and Simon 2003].
`The remainder of this article is structured as follows. In Section 2 we study common
`game design principles used in most multiplayer games, and in particular MMOGs. In
`Section 3 we study and compare different architectures proposed for MMOGs. Next,
`we present in detail issues related to structure (Section 4), update dissemination
`(Section 5), interest management (Section 6), replication and consistency (Section 7),
`fault tolerance, availability, and persistence (Section 8) in peer-to-peer-based MMOG
`solutions. Section 9 discusses cheating. We explain how games, in particular P2P
`
`1http://www.swtor.com/news/press-release/20111223.
`2Zynga: 232 Million Monthly Players http://secfilings.com/searchresultswide.aspx?link=1&filingid=8022980.
`
`ACM Computing Surveys, Vol. 46, No. 1, Article 9, Publication date: October 2013.
`
`

`

`Case 1:16-cv-00455-RGA Document 32-4 Filed 10/21/16 Page 4 of 52 PageID #: 1894
`
`CSUR4601-09
`
`ACM-TRANSACTION
`
`October 10, 2013
`
`21:43
`
`Peer-to-Peer Architectures for Massively Multiplayer Online Games: A Survey
`
`9:3
`
`(a) Different components of a multiplayer game, adapted from Mammoth [Kienzle et al. 2009]
`Fig. 1.
`(adapted, c(cid:2)ACM 2009), a massively multiplayer game research framework, are presented. The components
`discussed in this article are highlighted; (b) different game objects and their interactions. Players can interact
`with each other, objects, and NPCs.
`
`architectures, are affected by cheating and discuss some of the security measures
`proposed for P2P-based games. In Section 10 we study different incentives for using
`P2P architectures by consumers and the industry. Furthermore, we discuss various
`applications and adoption models of P2P-based gaming architectures. Section 11
`concludes the article.
`
`2. DESIGN PRINCIPLES
`Before getting into peer-to-peer architectures we first explain general concepts involved
`in designing a multiplayer game whether using client-server architectures or P2P. An
`overview of different components of a sample multiplayer game framework is shown
`in Figure 1(a). Here, we discuss the general concepts and execution patterns used in
`most multiplayer online games.
`
`2.1. Object Types
`In modern video games, the game world is usually made up of four types of com-
`ponents [Knutsson et al. 2004]: (1) immutable objects, such as landscape or terrain
`information, are usually designed and created offline and never change during the
`game. These objects are typically installed at the client and are initialized at the start
`of the game. (2) characters or avatars in the game world are controlled by the player
`using an input device. The avatar has a position in the game world and is usually
`allowed three types of actions: player updates, player-object interaction, and player-
`player interaction. (3) mutable objects such as food, weapons, and tools can be modified.
`For instance, players can interact with and/or use them in their interaction with other
`players. (4) NonPlayer Characters (NPCs), also called bots, are characters or avatars
`that are not controlled by a player but are usually controlled using AI. In the rest of
`this article, unless otherwise stated, game objects refer to avatars, mutable objects, and
`NPCs in the game. Object types are shown in Figure 1(b).
`
`2.2. Player Interactions
`Player interactions are typically divided into three categories: player updates, player-
`object interactions, and player-player interactions [Knutsson et al. 2004; Bharambe
`et al. 2006]. Player updates are interactions with the game world that only affect
`the player himself. Position updates and graphical updates to the player’s avatar are
`examples of player updates. In a simple and unoptimized implementation, a large
`proportion of all player interactions can be position updates [Knutsson et al. 2004].
`Player-object interactions are the interactions between a player and mutable objects
`in the game world. For example, picking up a health pack (adding it to the inventory)
`or consuming it are examples of player-object interaction. Player-player interactions
`
`ACM Computing Surveys, Vol. 46, No. 1, Article 9, Publication date: October 2013.
`
`

`

`Case 1:16-cv-00455-RGA Document 32-4 Filed 10/21/16 Page 5 of 52 PageID #: 1895
`
`CSUR4601-09
`
`ACM-TRANSACTION
`
`October 10, 2013
`
`21:43
`
`9:4
`
`A. Yahyavi and B. Kemme
`
`are interactions between a player and other players in the game world. For example,
`attacking another player could decrease the other player’s health and increase the
`experience points for the attacker. Player interactions with NPCs, based on the game
`design, can be considered either player-object or player-player interactions.
`The type of interaction is important when dealing with consistency issues that arise
`from concurrent and conflicting updates to the same object. Also, most security and
`cheat prevention techniques only apply to certain types of interactions.
`
`2.3. Object Replication
`When a player joins a game, she receives an instance of the game world (it can be a
`limited view of the game world) that is made up of various types of game objects. Most
`game engines follow a primary copy replication approach. For each object and character
`there exists an authoritative copy, called primary or master copy. All other copies are
`secondary copies (also called replicas). Each player has, stored on his computer, copies
`of game objects which are of interest to the player. Any update to the object has to be
`first performed on the primary copy. How primary and secondary copies are distributed
`(e.g., primary copies might always reside on the server or might also be held by clients)
`depends on the game architecture. If a player wants to perform an update on an object
`for which she does not have the primary copy, she has to send the update to the primary
`copy. The holder of the primary copy decides whether to accept the update or not, and
`then sends the updated object to everyone that has a secondary copy, where the changes
`are applied.
`The update dissemination mechanism is quite similar to publish-subscribe systems
`that have been widely studied [Castro et al. 2002b]. Every replica becomes a subscriber
`to the primary copy of the object and receives publications (updates) from the primary
`copy (the publisher).
`
`2.4. Game Types and Latency Tolerance
`We refer to the latency as the delay between execution of an update at the primary
`copy of an object and the replica receiving the object update. This latency is dependent
`on the architectural design and networking delays as will be discussed.
`Various types of multiplayer and massively multiplayer games exist. In Real-Time
`Strategy (RTS) and Role Playing Games (RPGs) [Sheldon et al. 2003] the focus is
`more on game strategy rather than responsiveness. The player tells the avatar to do
`a possibly complex and long-lasting action, for example, go to a destination, and the
`avatar performs the requested action. In First Person Shooter (FPS) games, however,
`the player does short-lived and less complex actions, that is, the player actually does
`what he wants the character to do (for example, guides the avatar towards the des-
`tination) and as a result, higher responsiveness is required (see Armitage [2003] for
`Quake III latency requirements). Higher latencies than the tolerance threshold of the
`game have an adverse effect on playability of the game and user satisfaction. Based
`on the game type and design, games typically can tolerate latencies between 100 to
`300 milliseconds (ranging from FPS games to RPGs) [Armitage 2003; Bharambe et al.
`2006; Pantel and Wolf 2002b], however, games with higher latency tolerance exist (see
`Suznjevic and Matijasevic [2012]). Latency tolerance requirements have a dramatic
`effect on the architecture design for games. An architecture would only be feasible if it
`meets game latency requirements.
`
`2.5. Bucket Synchronization and Frame Rate
`Bucket synchronization [Lety et al. 1998] (also called local lag [Mauve et al. 2004]) is a
`method used to deal with latency and is used in most multiplayer games. Since network
`latency for each client is different and it is common for a primary copy to receive various
`
`ACM Computing Surveys, Vol. 46, No. 1, Article 9, Publication date: October 2013.
`
`

`

`Case 1:16-cv-00455-RGA Document 32-4 Filed 10/21/16 Page 6 of 52 PageID #: 1896
`
`CSUR4601-09
`
`ACM-TRANSACTION
`
`October 10, 2013
`
`21:43
`
`Peer-to-Peer Architectures for Massively Multiplayer Online Games: A Survey
`
`9:5
`
`update requests concurrently from different clients, most games deliberately lag behind
`in executing the events. This allows fairness despite latency variations and more control
`over update dissemination costs. This is in essence similar to Nagle’s algorithm in IP
`networking. Games implement a discrete event loop (may also be referred to as frame)
`in which all actions (events) that have been submitted since the last execution of the
`loop are received, buffered, and then executed. The updates are then sent at the end of
`the loop. In addition, most game objects, including NPCs, have a think function which
`is executed in every game loop and determines the actions of the object in this loop. The
`game loop is usually executed 10 to 20 times every second; this frequency is sometimes
`referred to as frame rate [Bharambe et al. 2008] (not to be confused with graphical
`frame rate). Low frame rates can degrade the game play experience or even render the
`game unplayable. Note that based on the game design the number of frames shown
`to the player, that is, the graphical frame rate, may be equal to or different from this
`frame rate.
`The lag should be chosen so that it allows enough time for the updates of different
`clients to be received. This helps ensure fairness for clients that might have worse
`connectivity, and controls the number of updates that have to be sent per second. At
`the same time, the lag has to be small enough not to be perceived by the players. In
`essence, a trade-off has to be found.
`In this article we focus on the impact of architectures on networking, processing
`delays, and the resulting frame rate. We do not consider other delays such as those
`caused by graphical processing.
`
`2.6. Bandwidth Requirements
`The bandwidth requirement of MMOGs can be calculated based on average message
`size, update rate, and number of recipients (active players). Games with millions of
`(active) subscribers (e.g., WoW) have high bandwidth requirements due to their dy-
`namic environment (e.g., Second Life), or high update rates (e.g., Quake) [Chen et al.
`2005b; Suznjevic and Matijasevic 2012]. In addition, in order to have an acceptable
`game play, games should also accommodate occasional bursts in the game traffic that
`can be many times the average requirements. Such bursts happen due to sudden en-
`vironment changes or battles. Moreover, even inside the same game different gaming
`activities, such as raiding versus trading in WoW, generate different traffic [Suznjevic
`et al. 2011] that can lead to different network requirements. Game servers typically
`deal with this by overprovisioning.
`
`2.7. Interest Management
`Interest Management (IM) [Benford and Fahl´en 1993; Morse 1996] is an important
`mechanism used in many games, typically for scalability reasons. The idea is that
`players of a multiplayer game have only limited movement and vision capabilities.
`That is, players can only move a small distance in the game world in a given time
`interval. The players also have limited sensing capabilities, meaning that players can
`only interact with objects and other players in their vicinity [Makbily et al. 1999]. As
`a result, data access in games shows spatial and temporal locality. Utilizing this fact,
`interest management limits the amount of game state any player can access. That is,
`the player only receives the game state relevant to it, based on his position and vision
`in the game world. Interest management is important for scalability, as clients only
`need replicas of objects that are interesting for them, therefore keeping update and
`network overhead low. However, it can also be important as part of game semantics
`or to address other challenges such as cheating. IM plays an important role in how
`replication and communication between players are managed as will be discussed in
`the next sections, but first, we explain how it is implemented.
`
`ACM Computing Surveys, Vol. 46, No. 1, Article 9, Publication date: October 2013.
`
`

`

`Case 1:16-cv-00455-RGA Document 32-4 Filed 10/21/16 Page 7 of 52 PageID #: 1897
`
`CSUR4601-09
`
`ACM-TRANSACTION
`
`October 10, 2013
`
`21:43
`
`9:6
`
`A. Yahyavi and B. Kemme
`
`Fig. 2. Different game zoning mechanisms [Chen et al. 2005a] (adapted, c(cid:2)ACM 2005); [Boulanger et al.
`2006] (adapted, c(cid:2)ACM 2006).
`
`Space-based interest management is based on proximity and follows an aura-nimbus
`model [Benford and Fahl´en 1993]. Aura is the bounding area around the player’s avatar,
`while nimbus defines the area around the player that is visible to the player, that is,
`the player can perceive game objects located in this area. Nimbus is also often referred
`to as Area-of-Interest (AOI) [Knutsson et al. 2004; Schmieg et al. 2008], Domain of
`Interest [Morse 1996], Aura [Greenhalgh and Benford 2002], or awareness area [Keller
`and Simon 2003]. We mainly use the term AOI in this article. A player can typically only
`interact with objects and players in her AOI, and therefore, only needs to have copies
`of these objects. As a result, the necessary computational and network requirements
`are substantially reduced compared to maintaining copies of all objects.
`Zoning. The most common mechanism for interest management is zoning where the
`game world is partitioned into smaller sections, called zones or regions, as depicted
`in Figure 2. Zoning approaches differ in the shape of their zones and how the AOI is
`mapped onto zones. In the simplest approach, the entire AOI resides in the same zone
`in which the player is located. In some systems, the player can simply interact with all
`objects in his zone, that is, his AOI is the entire zone [Berglund and Cheriton 1985; Lety
`et al. 1998]. A player’s AOI changes only if he moves from one zone to another. In other
`approaches, the AOI is a subarea of the entire zone. Often, it is a fixed-radius circle
`(or sphere) around the player. When the player moves, his AOI moves accordingly.
`Therefore interest management has to determine for each game object in the zone
`whether it falls in the current AOI of the player. Figure 2(a) shows an example of this
`subarea approach.
`More advanced interest management schemes allow the AOI to cover more than one
`zone. This is important for continuous worlds. Players at the borders of a zone should
`be able to see and interact with objects that are just across the zone boundary in a
`neighboring zone. Figures 2(b), (c), and (d) show examples where the AOI can cover
`several zones.
`In regard to zone shapes, the game world can simply be split statically into grid
`cells as shown in Figure 2(b). Since this is a straightforward approach, many solutions
`use it [Chen et al. 2005a; Iimura et al. 2004; Cecin et al. 2004]. Hexagonal zoning
`(Figure 2(c)) has also been widely used for game architectures [Yu and Vuong 2005;
`Macedonia et al. 1995; Jaramillo et al. 2003] as well as other systems such as cellular
`networks. Hexagons have uniform orientation and uniform adjacency, meaning that
`players will always move to an adjacent zone. In addition, since most AOI mechanisms
`consider a circle, hexagons provide a good approximation.
`Using triangulation, as shown in Figure 2(d), allows for taking obstacles in the game
`world into account. This can help in reducing the AOI, and thus the number of objects
`that have to be considered for interest management, leading to less object replicas to be
`
`ACM Computing Surveys, Vol. 46, No. 1, Article 9, Publication date: October 2013.
`
`

`

`Case 1:16-cv-00455-RGA Document 32-4 Filed 10/21/16 Page 8 of 52 PageID #: 1898
`
`CSUR4601-09
`
`ACM-TRANSACTION
`
`October 10, 2013
`
`21:43
`
`Peer-to-Peer Architectures for Massively Multiplayer Online Games: A Survey
`
`9:7
`
`maintained by the players, and less update messages that need to be sent [Boulanger
`et al. 2006]. Techniques such as Delaunay triangulation have been widely studied.
`They can be used to triangulate the area inside or around the polygon-shaped obstacle,
`so that triangles follow the boundaries of obstacles [Boulanger et al. 2006; Buyukkaya
`and Abdallah 2008] as shown in the figure.
`Games can also be divided into mini worlds that have a free format and are con-
`nected to each other such as countries in the game world, with portals for moving
`between them [Chen et al. 2005a; Knutsson et al. 2004] as in Figure 2(a). This is par-
`ticularly useful when AOI always resides within a single zone. While mini worlds do
`not offer the concept of a continuous world, other approaches do. The zoning is only
`virtual, done merely for the purpose of interest management, and is not visible to the
`players.
`Determining the right size for zones is challenging. Different games have very dif-
`ferent characteristics, and even inside a game, different parts may require different
`zoning mechanisms. Therefore, an optimal zoning mechanism for all cases does not
`exist. A very large zone can result in too many objects in a single zone, making interest
`management less efficient as any player might only be interested in a small set of
`these objects. On the other hand, too small a zone may be much smaller than the AOI
`of players, resulting again in complex interest management between multiple zones.
`This trade-off is addressed by dynamic interest management schemes.
`
`Limits of AOI and Dynamic Zoning. AOI filtering suffers specific user behaviors,
`such as flocking, which refers to the movement of many players to one area in the
`game world [Pittman and GauthierDickey 2007; Chen et al. 2005a]. This can adversely
`affect replication management (see Section 7). Game hotspots form since some areas
`become more interesting or more profitable to the players in terms of experience points,
`treasures, new quests, or invitations by other players. This results in a large number
`of players coming to the same area while other areas become less populated. Hotspots
`can change quickly as players move to new interesting areas as they emerge, making
`it often difficult to prepare for such changes in advance. Populations in real games
`often follow a power law distribution [Pittman and GauthierDickey 2007], and the
`increase in the number of players in the area can result in a quadratic increase in the
`network traffic generated due to the increase in the number of interactions between
`players [Bharambe et al. 2008]. Varvello et al. [2011] find that in Second Life the
`number of objects per region is roughly constant over a one month period and that the
`active population at any point of time is between 30,000 and 50,000 avatars, that is,
`about 0.3% of the registered avatars. About 30% of the regions are never visited in a
`six day period and less than 1% of the regions have large peak populations. Avatars
`tend to organize in small groups of 2 to 10 avatars. Large groups of avatars are very
`rare and are driven by the presence of events such as concerts and shows. As a result,
`game designers may have to use artificial means to discourage players from gathering
`in the same region. This can prevent certain types of interesting game play such as epic
`battles [Blizzard 2011]. A more comprehensive study of player movements in Massively
`Multiplayer Online Role Playing Games (MMORPG) and session patterns is provided
`in Varvello et al. [2011], Suznjevic et al. [2009], and Miller and Crowcroft [2010].
`Flocking can be partially addressed with dynamic zones. As more players move into a
`popular zone, the zone can be split. However, if zones become significantly smaller than
`the typical AOI, splitting does not really help anymore as inter-zone communications
`become the bottleneck. One possibility then is to shrink the AOI of the players. However,
`this might lower the game experience for the players. In addition, depending on the
`game design, AOI can be further broken down into different types [Morse 1996] but for
`the purpose of this article we use the general term AOI.
`
`ACM Computing Surveys, Vol. 46, No. 1, Article 9, Publication date: October 2013.
`
`

`

`Case 1:16-cv-00455-RGA Document 32-4 Filed 10/21/16 Page 9 of 52 PageID #: 1899
`
`CSUR4601-09
`
`ACM-TRANSACTION
`
`October 10, 2013
`
`21:43
`
`9:8
`
`A. Yahyavi and B. Kemme
`
`2.8. Consistency Control
`In a distributed architecture like a multiplayer game, concurrent and possibly con-
`flicting updates may be executed at different sites resulting in inconsistent states.
`Inconsistencies occur due to the execution of parallel and conflicting updates, and con-
`sistency mechanisms have to avoid or correct them. For example, if two players shoot
`a third player, nearly at the same time, all players should see the updates in the same
`order and only the first shot should be successful at all replicas.
`Generally, systems are built such that if all replicas execute all updates in the same
`order, then all sites will have the same state. However, if messages are received out of
`order, their execution can result in inconsistent state if the out-of-order messages are
`causally dependent. For example, if a player drinks a healing potion to increase his
`health points and then, and only based on the increased amount of health, is able to
`pick up a sword, these actions have to be performed in the same order at all replicas,
`otherwise inconsistencies might become visible. Other types of inconsistency are caused
`by loss of updates. Most games, in order to deal with latency issues, use the fast but
`unreliable UDP messaging protocol where message loss is possible. Solutions are to
`send some updates with reliable TCP, or to use commit protocols for critical actions, in
`particular if they change the state of several objects and atomicity is required [Mauve
`et al. 2004; Bharambe et al. 2008, 2006; Chandler and Finney 2005].
`
`Consistency Definitions. Many definitions for consistency exist and consistency con-
`trol has been studied in other distributed contexts (e.g., shared memory [Adve and
`Gharachorloo 1996] or distributed systems [ ¨Ozsu and Valduriez 2011]). A very strong
`form of consistency is achieved if every interaction is treated as a transaction that pro-
`vides the transactional properties such as isolation and atomicity. However, providing
`transactional properties is often costly and might not be feasible for all game actions.
`For instance, running a two-phase commit protocol to guarantee atomicity leads to large
`latencies which could reduce the interactivity of the game significantly. Eventual con-
`sistency [Terry et al. 1995] is a weaker form of consistency. It allows individual copies
`of an object to be temporarily inconsistent but eventually consistent, meaning that if
`update activity did cease for sufficiently long time all object copies would eventually
`have the same state. Generally, there exist well-known trade-offs between performance
`and consistency restrictions, which can also be applied to MMOGs. This fact has been
`well presented in Brewer’s “CAP conjecture” [Gilbert and Lynch 2002], indicating that
`a system can only achieve two out of three properties of consistency, availability, and
`handling network partitions. As interactivity is of essence to the success of most games,
`they often sacrifice consistency for other goals, and as a result, games usually provide
`inconsistency resolution instead of inconsistency prevention, enforcing not more than
`eventual consistency [Chandler and Finney 2005; Mauve et al. 2004].
`Different levels of consistency, implemented by various mechanisms, might be con-
`sidered for different object and interaction types as not all interactions are of the same
`importance [Zhang and Kemme 2011]. For example, many virtual game objects are con-
`sidered valuable and can be sold or traded for real money, making consistency control a
`critical requirement. In 2009, micro-transactions generated 250 million dollars in U.S.
`alone, with the most expensive item being 635 thousand dollars3, and are projected to
`hit 13.6 billion dollars by 2014 worldwide4. In contrast, player position updates have
`much lower consistency requirements, and eventual consistency will be sufficient.
`
`3Planet Calypso Player Sells Virtual Resort for $635,000 USD http://www.prnewswire.com/news-releases/
`planet-calypso-player-sells-virtual-resort-for-63500000-usd-107426428.html.
`4Magid Associates and PlaySpan Release 2nd Annual Survey on Virtual Goods Market Penetration and
`Growth in North America. https://developer.playspan.com/developer/pdf/PlaySpan Magid 5 27 10 Final.pdf.
`
`ACM Computing Surveys, Vol. 46, No. 1, Article 9, Publication date: October 2013.
`
`

`

`Case 1:16-cv-00455-RGA Document 32-

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket