`(12) Patent Application Publication (10) Pub. No.: US 2014/0024.462 A1
`Qiang et al.
`(43) Pub. Date:
`Jan. 23, 2014
`
`US 2014.0024.462A1
`
`(54)
`
`(71)
`(72)
`
`(73)
`(21)
`(22)
`
`(60)
`
`REWARDING PARTICIPATING PLAYERS ON
`A COLLABORATIVE GAME TASKN AN
`ONLINE GAME
`
`Applicant: Zynga Inc., San Francisco, CA (US)
`Inventors: Yi Qiang, San Francisco, CA (US);
`Tatung Mei, San Francisco, CA (US);
`John Osvald, San Francisco, CA (US);
`David Richey, San Francisco, CA (US);
`Cesario Julation, San Francisco, CA
`(US); Kyle Sampson, San Francisco, CA
`(US)
`Assignee: Zynga Inc., San Francisco, CA (US)
`Appl. No.: 13/948,116
`Filed:
`Jul. 22, 2013
`Related U.S. Application Data
`Provisional application No. 61/674,756, filed on Jul.
`23, 2012, provisional application No. 61/674,808,
`filed on Jul 23, 2012.
`
`Publication Classification
`
`(51) Int. Cl.
`A63F 3/2
`(52) U.S. Cl.
`CPC ...................................... A63F 13/12 (2013.01)
`USPC ............................................................ 463/42
`
`(2006.01)
`
`(57)
`
`ABSTRACT
`
`Software at a MMO game website creates a team to perform
`a collaborative game task in the MMO game. Each player on
`the team is assigned from a queue of players who share one or
`more attributes. The collaborative game task is composed of
`a plurality of individual game tasks. Each player on a team is
`assigned an individual game task by the Software. The Soft
`ware provides a game reward to a player after the player has
`satisfactorily completed less than all of the individual game
`task assigned to the player. The Software determines that a
`team has satisfactorily completed the collaborative game
`task, according to game mechanics associated with the col
`laborative game task. Then the Software provides a game
`reward to each player on the team.
`
`E
`
`E
`
`
`
`
`
`
`
`
`
`SERVERS ON
`MMO GAVE
`WEBSE
`
`MEMORY
`CACE
`
`
`
`GAyEDAA
`AN OCC
`
`05
`
`SERVERSON
`SOCA
`NETWORKING
`WEBSITE
`
`PROFLE AND/OR
`CONTEN
`SREAMDAA
`
`
`
`Supercell
`Exhibit 1011
`Page 1
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 1 of 14
`
`US 2014/0024.462 A1
`
`
`
`
`
`90]
`
`
`
`
`
`
`
`Supercell
`Exhibit 1011
`Page 2
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 2 of 14
`
`US 2014/0024462 Al
`
`
`
`
`
`YO)ONDIYOMLANTVIDOS
`
`Oe
`
`(42TD0GDYOWOOIIIVA
`
`
`
`NOONINNG|AYdd¥VYOYasMON
`
`
`
`
`
`
`
`ANOHELYVAS“8'2)AOIARCATISOW
`
`
`
`QUELNdINODLATAVLUO
`
`V7MNSIY
`
`
`
`
`
`
`
`“3°3)ZLISAIM(VIGAINTVIDOS
`
`
`
`
`
`
`
`
`
`
`
`
`
`SUAONVIVEGVOT
`
`I
`
`“d'a)UAUASHAMOILS14
`
`
`
`
`
`
`
`AVUUVCUFAUASdLLHJHOVIV
`
`Ay
`™
`
`\o
`NN
`
`AHOVDAYO
`
`(qadHOVOWAW)
`
`ONAS
`
`gagnd
`
`
`
`<ONIDdWAVI
`
`
`
`“QHOVOWI“AHOVdY
`
`
`
`(dHd“TOS4W
`
`
`
`(TOSAPDASVEV.LVG
`
`ced
`>Ol
`
`ny
`On
`
`Supercell
`Exhibit 1011
`Page 3
`
`Supercell
`Exhibit 1011
`Page 3
`
`
`
`
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 3 of 14
`
`US 2014/0024.462 A1
`
`
`“ãº) HILISHRAA (VIGHW TVIOOS
`
`
`
`
`
`
`RIO) DNI?TIOAALTIN TVIOOS
`
`(+?TOOO!) HO XOORGOVH
`
`ra
`
`e
`
`
`
`
`
`S}{{ONVTH V8 OBVOT!
`
`(@SVRHOQOO/RSVÆÐINGHIN)
`
`Supercell
`Exhibit 1011
`Page 4
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 4 of 14
`
`US 2014/0024.462 A1
`
`
`
`CREATE TEAM (e.g., VIRTUAL COOKING TEAM) TO PERFORM
`COLLABORATIVE GAME TASK (e.g., VIRTUAL MEAL) IN
`MMO GAME (e.g., VIRTUAL COOKENG GAME), WHERE EACH
`COLLABORATIVE GAME TASK IS COMPOSED OF SET OF
`INDIVIDUAL GAME TASKS (e.g., DISHES)
`
`ASSIGN INDIVIDUAL GAME TASK (e.g.,
`DISH) TO EACH PLAYER ON TEAM
`
`REMOVE EXISTING PLAYER FROM TEAM, IF
`EXISTING PLAYER IS NOT PARTICIPATING
`
`ASSIGN NEW PLAYER TO TEAM
`
`DETERMENE THAT THEAM HAS SATSFACTORY
`COMPLETED COLLABORATIVE GAME TASK (e.g.,
`VIRTUAL MEAL), ACCORDING TO GAME MECHANICS
`ASSOCATED WITH COLLABORATIVE GAME TASK
`
`PROVIDE GAME REWARD (e.g., VIRTUAL CURRENCY,
`OTHER VIRTUAL RESOURCES, EXPERIENCE POINTS,
`OTHER MEASURE OF PELAYER LEVE OR GAME
`STATUS, etc.) TO EACH PLAYER ON TEAM
`
`Figure 3
`
`30
`
`302
`
`303
`
`305
`
`306
`
`Supercell
`Exhibit 1011
`Page 5
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 5 of 14
`
`US 2014/0024.462 A1
`
`40
`
`402
`
`403
`
`404
`
`
`
`DETERMINE THAT PLAYER HAS BEEN
`NACTIVE FOR SPECIFIED PERIOD OF
`TIME (e.g., 11 DAYS)
`
`REMOVE PLAYER FROM TEAM (PLAYER
`CAN REQUEST TO BE ADDED TO
`PLAYER QUEUE FOR NEW TEAM UPON
`NEXT LOGIN)
`
`ASSIGN TEAM TO QUEUE FOR TEAMS
`WITH REMOVED PLAYER AND SIMLAR
`ATTRIBUTES AS DETERMINED BY
`ATTRIBUTES (e.g., AVERAGE PLAYER
`LEVEL) OF PLAYERS WHO REMAIN ON
`TEAM
`
`DISBAND TEAM AND REMOVE TEAM FROM
`TEAM QUEUE, IF NEW PLAYER CANNOT BE
`ADDED TO TEAM FROM PLAYER QUEUE
`WITHIN SPECIFIED PERIOD OF TIME (e.g., 2
`DAYS)
`
`Figure 4
`
`Supercell
`Exhibit 1011
`Page 6
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 6 of 14
`
`US 2014/0024.462 A1
`
`CREATE TEAM (e.g., VIRTUAL COOKING TEAM) TO PERFORM
`COLLABORATIVE GAME TASK (e.g., VIRTUAL MEAL) IN MMO
`GAME (e.g., VIRTUAL COOKING GAME), WHERE EACH
`COLLABORATIVE GAME TASK IS COMPOSED OF SET OF
`INEDIVIDUAL GAME TASKS (e.g., DISHES)
`
`50
`
`
`
`
`
`
`
`
`
`
`
`
`
`ASSIGN INDIVIDUAL GAME TASK (e.g.,
`DISH) TO EACH PLAYER ON TEAM
`
`PROVIDE GAME REWARD (e.g., VIRTUAL CURRENCY,
`OTHER VIRTUAL RESOURCES, EXPERIENCE POINTS,
`OTHER MEASURE OF PLAYER LEVEL OR GAME STATUS,
`etc.)TO PLAYER AFTER PLAYER HAS SATISFACTORILY
`COMPLETED ESS THAN AL OF ENDIVIDUAE GAME
`TASK (e.g., DISH) ASSIGNED TO PLAYER
`
`DETERMINE THAT TEAM HAS SATSFACTORILY
`COMPLETED COLLABORATIVE GAME TASK (e.g., VIRTUAL
`MEAL), ACCORDING TO GAME MECHANICS ASSOCIATED
`WITH COLLABORATIVE GAME TASK
`
`PROVIDE GAME REWARD (e.g., VIRTUAL CURRENCY,
`OTHER VIRTUAL RESOURCES, EXPERIENCE POINTS,
`OTHER MEASURE OF PAYER LEVEL OR GAME
`STATUS, etc.) TO EACH PLAYER ON TEAM
`
`Figure 5
`
`S03
`
`504
`
`505
`r
`
`Supercell
`Exhibit 1011
`Page 7
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 7 of 14
`
`US 2014/0024.462 A1
`
`
`
`| 09
`
`Supercell
`Exhibit 1011
`Page 8
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 8 of 14
`
`US 2014/0024.462 A1
`
`N
`s
`s
`ep
`t
`
`
`
`OO
`c)
`CO
`i.
`
`s
`
`s
`
`Supercell
`Exhibit 1011
`Page 9
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 9 of 14
`
`US 2014/0024.462 A1
`
`
`
`S
`
`er
`o
`CN
`
`i.
`
`s
`
`Supercell
`Exhibit 1011
`Page 10
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 10 of 14
`
`US 2014/0024.462 A1
`
`
`
`on
`god
`gold
`m
`
`Supercell
`Exhibit 1011
`Page 11
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 11 of 14
`
`US 2014/0024.462 A1
`
`
`
`| || 9.Inã14
`
`Supercell
`Exhibit 1011
`Page 12
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 12 of 14
`
`US 2014/0024.462 A1
`
`
`
`CN
`go
`en
`weased
`
`s
`
`Supercell
`Exhibit 1011
`Page 13
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 13 of 14
`
`US 2014/0024.462 A1
`
`
`
`a
`
`Supercell
`Exhibit 1011
`Page 14
`
`
`
`Patent Application Publication
`
`Jan. 23, 2014 Sheet 14 of 14
`
`US 2014/0024.462 A1
`
`
`
`Supercell
`Exhibit 1011
`Page 15
`
`
`
`US 2014/0024.462 A1
`
`Jan. 23, 2014
`
`REWARDING PARTICIPATING PLAYERS ON
`A COLLABORATIVE GAME TASKN AN
`ONLINE GAME
`
`RELATED APPLICATIONS
`0001. This application claims priority to Provisional
`Application Ser. No. 61/674,756, entitled “Rewarding Par
`ticipating Players on a Collaborative GameTask in an Online
`Game”, filed on Jul. 23, 2012, and Provisional Application
`Ser. No. 61/674,808, entitled “Replacing Players in a Col
`laborative Game Task in an Online Game”, also filed on Jul.
`23, 2012. This application is related to application Ser. No.
`Attorney Docket No. ZYNP026, entitled “Replacing
`Players in a Collaborative Game Task in an Online Game”,
`which was contemporaneously filed. The disclosures of all of
`the above applications are incorporated herein by reference.
`
`BACKGROUND
`0002 Collaborative game tasks are sometimes used in
`boardgames to increase player engagement, as such tasks are
`inherently social. Of course, such tasks bear more than some
`resemblance to real-world collaborative tasks, which tend to
`be managed through project-management processes includ
`ing monitoring and controlling task activities.
`0003 Online games, including massively multiplayer
`online (MMO) games, tend to have a large number of players
`who can be described as “casual' (as opposed to “hardcore').
`Such players are willing to devote only a small amount of
`their time and resources to game play and would be put off by
`any collaborative game task that resembled a real-world
`project.
`0004 Consequently, creating collaborative game tasks for
`casual online gamers continues to be an ongoing area of
`research and experimentation for the designers of online
`gameS.
`
`SUMMARY
`0005. In an example embodiment, a processor-executed
`method is described for engaging players in a massively mul
`tiplayer online (MMO) game. According to the method, soft
`ware at a website hosting an MMO game creates a team (or
`group) to perform a collaborative game task in the MMO
`game. Each player on the team is assigned from a queue of
`players who share one or more attributes. The collaborative
`game task is composed of a plurality of individual game tasks.
`Each player on a team is assigned an individual game task by
`the software. The software provides a game reward to a player
`after the player has satisfactorily completed less than all of the
`individual game task assigned to the player. The Software
`determines that the team has satisfactorily completed the
`collaborative game task, according to the game mechanics
`associated with the collaborative game task. Then the soft
`ware provides a game reward to each player on the team.
`0006. In another example embodiment, an apparatus is
`described, namely, computer-readable storage media that
`persistently store a program for engaging players in an MMO
`game. The program might be part of the Software at a website
`hosting the MMO game. The program creates a team (or
`group) to perform a collaborative game task in the MMO
`game. Each player on the team is assigned from a queue of
`players who share one or more attributes. The collaborative
`game task is composed of a plurality of individual game tasks.
`Each player on the team is assigned an individual game task
`
`by the program. The program provides a game reward to a
`player after the player has satisfactorily completed less than
`all of the individual game task assigned to the player. The
`program determines that a team has satisfactorily completed
`the collaborative game task, according to the game mechanics
`associated with the collaborative game task. Then the pro
`gram provides a game reward to each player on the team.
`0007 Another example embodiment also involves an
`apparatus for engaging players in an MMO game, e.g., a
`server at a website hosting an MMO game. The apparatus
`includes one or more processors and memory storing proces
`sor-executable instructions. The instructions might be part of
`the software at a website hosting the MMO game. The
`instructions create a team (or group) to perform a collabora
`tive game task in the MMO game. Each player on the team is
`assigned from a queue of players who share one or more
`attributes. The collaborative game task is composed of a
`plurality of individual game tasks. Each player on the team is
`assigned an individual game task by the program. The instruc
`tions provide a game reward to a player after the player has
`satisfactorily completed less than all of the individual game
`task assigned to the player. The instructions determine that a
`team has satisfactorily completed the collaborative game
`task, according to the game mechanics associated with the
`collaborative game task. Then the instructions provide a game
`reward to each player on the team.
`0008. Other aspects and advantages of the inventions will
`become apparent from the following detailed description,
`taken in conjunction with the accompanying drawings, which
`illustrate by way of example the principles of the inventions.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0009 FIG. 1 is a simplified diagram that illustrates a net
`work for an MMO game, in accordance with an example
`embodiment.
`0010 FIG. 2A is a functional software modularization, in
`accordance with an example embodiment.
`0011
`FIG. 2B is an alternative functional software modu
`larization, in accordance with an example embodiment.
`0012 FIG. 3 is a flowchart diagram that illustrates a pro
`cess for replacing a player on team performing a collaborative
`game task in an MMO game, in accordance with an example
`embodiment.
`0013 FIG. 4 is a flowchart diagram that illustrates a pro
`cess for obtaining a new player on a team performing a
`collaborative game taskin an MMO game, in accordance with
`an example embodiment.
`0014 FIG. 5 is a flowchart diagram that illustrates a pro
`cess for providing game rewards to encourage participation
`on a team performing a collaborative game task in an MMO
`game, in accordance with an example embodiment.
`0015 FIG. 6 is a dialog view in a graphical user interface
`(GUI) that allows a player to join a team performing a col
`laborative game taskin an MMO game, in accordance with an
`example embodiment.
`(0016 FIGS. 7 and 8 are dialog views in a GUI that notify
`a player about the status of the formation of the player's team
`in an MMO game, in accordance with an example embodi
`ment.
`0017 FIGS. 9-11 are dashboard views in a GUI for a team
`performing a collaborative game task in an MMO game, in
`accordance with an example embodiment.
`
`Supercell
`Exhibit 1011
`Page 16
`
`
`
`US 2014/0024.462 A1
`
`Jan. 23, 2014
`
`0018 FIG. 12 is a dialog view in a GUI that allows a player
`to quit a team performing a collaborative game task in an
`MMO game, in accordance with an example embodiment.
`0019 FIG. 13A is a simplified diagram that illustrates a
`sequence of transmissions associated with an individual
`game task (e.g., preparing a virtual dish in a virtual meal) in an
`MMO game accessed from a social networking website, in
`accordance with an example embodiment.
`0020 FIG. 13B is a simplified diagram that illustrates a
`sequence of transmissions associated with an individual
`game task (e.g., preparing a virtual dish in a virtual meal) in an
`MMO game accessed from an MMO game website, in accor
`dance with an example embodiment.
`
`DETAILED DESCRIPTION
`0021. In the following description, numerous specific
`details are set forth in order to provide a thorough understand
`ing of the exemplary embodiments. However, it will be appar
`ent to one skilled in the art that the example embodiments
`may be practiced without some of these specific details. In
`other instances, process operations and implementation
`details have not been described in detail, if already well
`known.
`0022 FIG. 1 is a simplified diagram that illustrates a net
`work for an MMO game, in accordance with an example
`embodiment. As depicted in this figure, a personal computing
`device 102 is connected by a network 101 (e.g., a wide area
`network (WAN) including the Internet, which might be wire
`less in part or in whole) with a website 103 hosting a mas
`sively multiplayer online (MMO) game (e.g., a website such
`as Zynga hosting FarmVille or Blizzard Entertainment host
`ing World of Warcraft) and a website 106 hosting a social
`network (e.g., a Social networking website such as Facebook).
`As used here and elsewhere in this disclosure, the term "social
`networking website' is to be broadly interpreted to include,
`for example, any website that allows its users to selectively
`access (e.g., according to a contact list, buddy list, social
`graph, or other access control list (ACL)) content in each
`other's profiles and/or streams or selectively communicate
`(e.g., according to a contact list, buddy list, social graph, or
`other ACL) with each other (e.g., using a messaging protocol
`Such as email, instant messaging, short message service
`(SMS), etc.).
`0023 The personal computing device 102 might be (a) a
`laptop or other personal computer or (b) a mobile device Such
`as a Smartphone, (e.g., an iPhone, Blackberry, Android, etc.),
`a tablet computer (e.g., an iPad), etc. In an example embodi
`ment, each of the websites 103 and 106 might be composed of
`a number of servers connected by a network (e.g., a local area
`network (LAN) or a WAN) to each other in a cluster or other
`distributed system which might execute cloud platform soft
`ware. The servers in website 103 and 106 might also be
`connected (e.g., by a storage area network (SAN)) to persis
`tent storages 105 and 107, respectively. In an example
`embodiment, persistent storages 105 and 107 might include a
`redundant array of independent disks (RAID).
`0024 Persistent storage 105 might be used to store algo
`rithms and data related to an MMO game and its players,
`including data about the players received by website 103 from
`website 106 (e.g., through an application programming inter
`face (API) exposed by website 106). In an example embodi
`ment, some of the data from persistent storage 105 might be
`cached in memory cache 104 in volatile memory on servers
`on website 103 (e.g., using (a) an in-memory database or
`
`main memory database system (MMDB) or (b) a hybrid
`in-memory database that also uses persistent storage) in order
`to improve performance. Persistent storage 107 might be used
`to store data (including content) associated with a profile
`and/or stream for members of a social network (or Social
`graph), e.g., users who are associated with each other through
`access-control lists (ACLS).
`0025. As indicated above, personal computing device 102
`might be a laptop or other personal computer. In that event,
`personal computing device 102 and the servers in website 103
`and 106 might include (1) hardware consisting of one or more
`microprocessors (e.g., from the x86 family or the PowerPC
`family), Volatile storage (e.g., RAM), and persistent storage
`(e.g., a hard disk or Solid-state drive), and (2) an operating
`system (e.g., Windows, Mac OS, Linux, Windows Server,
`Mac OS Server, etc.) that runs directly or indirectly (e.g.,
`through virtualization software) on the hardware. Or the oper
`ating system for the servers might be replaced by a hypervisor
`or other virtualization software. Alternatively, personal com
`puting device 102 might be a Smartphone, tablet computer, or
`other mobile device that includes (1) hardware consisting of
`one or more low-power microprocessors (e.g., from the ARM
`family), Volatile storage (e.g., RAM), and persistent storage
`(e.g., flash memory such as microSD) and (2) an operating
`system (e.g., Symbian OS, RIM BlackBerry OS, iPhone OS,
`Palm webOS, Windows Mobile, Android, Linux, etc.) that
`runs on the hardware.
`0026. Also in an example embodiment, personal comput
`ing device 102 might include a web browser as an application
`program or part of an operating system. Examples of web
`browsers that might execute on personal computing device
`102 if it is a laptop or other personal computer include Inter
`net Explorer, Mozilla Firefox, Safari, and Google Chrome.
`Examples of browsers that might execute on personal com
`puting device 102 if it is a Smartphone, tablet computer, or
`other mobile device include Safari, Mozilla Firefox, Android
`Browser, and Palm webOS Browser. It will be appreciated
`that users of personal computing device 102 might use brows
`ers to communicate with Software running on the servers at
`website 103 and at website 106. Alternatively, users of per
`Sonal computing device 102 might use other application pro
`grams to communicate with Software running on the servers
`at website 103 and at website 106. For example, if the per
`Sonal computing device 102 is a Smartphone, tablet computer,
`or other mobile device, users might use an app or a hybrid app
`(e.g., an app written in Objective C or Java that includes
`embedded HTML5) to communicate with software running
`on the servers at website 103 and at website 106. It will be
`appreciated that an application program for a mobile device is
`often referred to as an “app'.
`0027 FIG. 2A is a functional software modularization, in
`accordance with an example embodiment. As depicted in this
`figure, a player is using a web browser or app 201 on a mobile
`device (e.g., a Smartphone or a tablet computer) to interact
`with server software 203 (e.g., transmit or receive game data)
`running on a website hosting an MMO game (e.g., running on
`the servers at website 103 in FIG. 1). In an example embodi
`ment, server software 203 might be implemented using a
`public, private, or hybrid cloud platform, e.g., a hybrid cloud
`platform whose public cloud is Amazon Electric Compute
`Cloud (EC2) and whose private cloud is built using Cloud.
`com’s CloudStack software. In an alternative example
`embodiment, server software 203 might be implemented
`using other public clouds and/or other private clouds that
`
`Supercell
`Exhibit 1011
`Page 17
`
`
`
`US 2014/0024.462 A1
`
`Jan. 23, 2014
`
`provide similar functionality. Or, server software 203 might
`be implemented without resort to third-party cloud platforms,
`e.g., using load balancing and virtualization Software (e.g.,
`Citrix XenServer, VMware, Microsoft, or Xen), distributed
`computing software (such as Hadoop, which implements
`Map-Reduce and/or the Google Filesystem), distributed
`memory-caching software (such as memcached), distributed
`key-value database software (such as Couchbase Server nee
`Membase Server), NoSQL database-management software,
`structured database-management Software (such as MySQL).
`etc. Parenthetically, it will be appreciated that SQL is an
`acronym which stands for Structured Query Language.
`0028. Returning to FIG. 2A, server software 203 includes
`load balancers 204 (e.g., the load balancing and virtualization
`software provided by Citrix, VMware, Microsoft, or Xen)
`that balance the load between the servers (e.g., Apache HTTP
`servers) in an elastic (or dynamic) array 205. It will be appre
`ciated that the array is elastic because its size can be increased
`to accommodate additional servers and decreased to accom
`modate fewer servers. As further depicted in FIG. 2A, the
`servers in the elastic array 205 transmit (e.g., using HTTP)
`data to and receive data from (a) the web browser or app 201
`and (b) the servers on a social networking website 202 such as
`Facebook. In an example embodiment, the servers might read
`data from and write data to memory cache 206 (e.g., a
`memory cache created with memcached and managed with
`Couchbase Server), which, in turn, is backed by database 208,
`which might be MySQL. In an alternative example embodi
`ment, the database 208 might be NoSQL. It will be appreci
`ated that performance latencies can be significantly reduced
`by Such a caching arrangement, which exploits locality of
`reference. It will also be appreciated that memory cache 104
`in FIG. 1 corresponds to the memory cache 206 in FIG. 2 and
`the persistent storage 105 in FIG. 1 corresponds to the data
`base 208 in FIG. 2A. In an example embodiment, synch
`queue 207 might receive the data from memory cache 206 to
`be written asynchronously to the database 208. As indicated
`on FIG. 2A, the functional software modularization depicted
`in the figure might be implemented as a LAMMP (Linux,
`Apache, Memcache, MySQL, PHP) architecture, in an
`example embodiment.
`0029 FIG.2B is an alternative functional software modu
`larization, in accordance with an example embodiment. As
`depicted in this figure, a player is using a web browser or app
`201 on a mobile device (e.g., a Smartphone or a tablet com
`puter) to interact with server software 203 running on a web
`site hosting an MMO game. In an example embodiment,
`server software 203 might be implemented using a public,
`private, or hybrid cloud platform. In an alternative example
`embodiment, server software 203 might be implemented
`using other public clouds and/or other private clouds that
`provide similar functionality. Or, server software 203 might
`be implemented without resort to third-party cloud platforms,
`e.g., using load balancing and virtualization Software, distrib
`uted computing software, distributed memory-caching soft
`ware, distributed key-value database software, NoSQL data
`base-management
`software,
`structured
`database
`management (e.g., SQL) software, etc.
`0030. In FIG. 2B, server software 203 includes load bal
`ancers 204 that balance the load between the servers in an
`elastic array 205. As further depicted in this figure, the servers
`in the elastic array 205 transmit data to and receive data from
`(a) the web browser or app 201 and (b) the servers on a social
`networking website 202 such as Facebook. In an example
`
`embodiment, the servers might read data from and write data
`to a hybridin-memory database 206a and 206b which persists
`data (e.g., a hybrid in-memory database Such as Membase/
`Couchbase Server).
`0031
`FIG. 3 is a flowchart diagram that illustrates a pro
`cess for replacing a player on team performing a collaborative
`game task in an MMO game, in accordance with an example
`embodiment. In an example embodiment, one or more of the
`operations in this process might be performed by Software
`(including software 203) running on servers at a website 103.
`e.g., a website such as Zynga hosting an MMO game. In an
`alternative example embodiment, one or more of the opera
`tions in these processes might be performed by Software
`running on personal computing device 102, e.g., instructions
`in a webpage read by a browser supporting HTML5, CSS3,
`and JavaScript or instructions in a hybrid app with embedded
`HTML5 executing on a smartphone. In another alternative
`example embodiment, one or more of the operations in these
`processes might be performed by an Adobe Flash application
`(e.g., a Small Web Format or SWF file) running on personal
`computing device 102.
`0032. As depicted in FIG. 3, software running on one or
`more servers at website 103 (e.g., Zynga) creates a team or
`group (e.g., virtual cooking team) to perform a collaborative
`game task (e.g., virtual meal) in an MMO game (e.g., virtual
`cooking game), in operation 301. In an example embodiment,
`the collaborative game task is composed of set of individual
`game tasks (e.g., dishes). In operation 302, the Software
`assigns an individual game task (e.g., dish) to each player on
`the team. It will be appreciated that operations 301 and 302
`might be performed at the same time, in an example embodi
`ment. If an existing player on a team is not participating, the
`software removes the player from the team, in operation 303.
`In operation 304, the software assigns a new player to the
`team. Then in operation 305, the software determines that the
`team has satisfactorily completed the collaborative game task
`(e.g., virtual meal), according to the game mechanics associ
`ated with the collaborative game task. And in operation 306,
`the Software provides a game reward (e.g., virtual currency,
`other virtual game resource, experience points, other measure
`of player level or game status, etc.) to each player on the team.
`As described below, the experience points awarded to a player
`might be used to determine player level, in an example
`embodiment. It will be appreciated that the process described
`in FIG.3 replaces a non-participating player without resort to
`any communications that might be considered unpleasant by
`either the non-participating player or by the other members of
`that player's team.
`0033. In operation 301, the software creates a team. In an
`example embodiment, teams of a specified size might be
`created from queues of players (1) who have opted to play the
`MMO game (e.g., by clicking on a controlina game graphical
`user interface (GUI)), and (2) who share similar attributes,
`Such as age, gender, language, geo-location (e.g., as deter
`mined by IP address, device GPS coordinates, etc.), player
`level (e.g., greater than 72, as measured interms of experience
`points or in terms of points in a reputation system based on
`both experience and Social activity with other players), and
`gaming activity (e.g., recently inactive, recently casual,
`recently active, recently hardcore, etc.). In an example
`embodiment, the queues might be load balanced, e.g., by the
`addition of a new queue with attributes similar to an existing
`queue that has grown too long. Also, when assigning players
`to queues, the Software might make a determination as to
`
`Supercell
`Exhibit 1011
`Page 18
`
`
`
`US 2014/0024.462 A1
`
`Jan. 23, 2014
`
`whether players share similar attributes using clustering
`analysis, e.g., clustering analysis that depends on a distance
`between objects (where the objects are players). Such as con
`nectivity-based clustering or hierarchy clustering. Some orall
`of the data as to the player attributes might have been received
`from a website hosting a social network, e.g., through an
`application programming interface (API) exposed by that
`website, in an example embodiment. Or some or all of the
`data as to player attributes might have come from player
`profiles maintained by the software at the website hosting the
`MMO game, including data received from a website hosting
`a social network. In an alternative example embodiment,
`teams might be composed of players with dissimilar
`attributes, e.g., as determined by clustering analysis. For
`example, a team might include a player with a low player level
`and a player with a high player level, if data in the player
`profiles indicates that both players would enjoy being on Such
`a team.
`0034. Also, in an example embodiment, the players on the
`same queue might not be otherwise connected by a social
`graph; that is, to say, they might be not be “friends” or “neigh
`bors” (e.g., as determined by an access control list (ACL)) on
`a social network maintained by a website hosting a social
`network or the website hosting the MMO game. However, in
`an alternative example embodiment, all the players on the
`same queue might also be “friends' or “neighbors” (e.g., as
`determined by an access control list (ACL)) on a Social net
`work. Or the software at the website hosting the MMO game
`might apply a filter to the player queue to only select players
`for a team who are “friends” or “neighbors’ on a social
`network. (Similar filters might be used for other attributes
`Such as recency of gaming activity or to avoid players who
`have already been removed from the team.) In another
`example embodiment, the team might be composed of
`“friends” or “neighbors’ on a social network without resort to
`player queues. For example, Software at the website hosting
`the MMO game might facilitate the creation of a team through
`GUIs that enable a founder of a team to send invitations (e.g.,
`electronic messages) to his/her “friends' or “neighbors” on a
`Social network, e.g., through an API exposed by website
`hosting the Social network or via a messaging protocol.
`0035. In an example embodiment, the software perform
`ing the operations shown in FIG.3 might store the data for the
`team in a group blob (binary large object) that is separate from
`other blobs, e.g., the blob that stores the data for players or
`users. In an example embodiment, the group blob for the team
`might be identified by a globally unique identifier (GUID)
`that is a string. It will be appreciated that storing data in blobs
`facilitates the non-relational (e.g., NoSQL) processing of data
`using (1) distributed computing Software such as Hadoop
`(which implements Map-Reduce), (2) distributed memory
`caching software (such as memcached), and/or (3) distributed
`key-value database software (such as Membase/Couchbase
`Server). In an alternative example embodiment, the data for
`the team or each player might be stored in relational database
`tables (e.g., SQL tables) that can be distributed across server
`clusters.
`0036. In operation 302, the software assigns an individual
`game task (e.g., dish) to each player on the team. In an
`example embodiment, the game mechanics of the MMO
`game might allow a player to purchase completion of an
`individual game task can with virtual currency or other virtual
`game resources. For example, a player might use virtual cur
`rency to hire a non-player character (NPC) to help with an
`
`individual game task. It will be appreciated that such a game
`mechanic might be attractive to a player who is a casual gamer
`who has fallen behind in the performance of his/her indi
`vidual game task but does not want to prevent his/her team
`from timely completing their collaborative game task.
`0037 FIG. 4 is a flowchart diagram that illustrates a pro
`cess for obtaining a new player on a team performing a
`collaborative game taskin an MMO game, in accordance with
`an example embodiment