U.S. Pat. No. 9,522,335
Low-Friction Synchronous Interaction in Multiplayer Online Game
AssigneeZynga Inc.
Issue DateMay 29, 2015
Illustrative Figure
Abstract
Methods, systems, and computer programs are presented for executing an online game. One method includes an operation for executing a first game board for a first user and a second game board for a second user. The first game board is created when the first user plays the game for the first time and the second game board is created when the second user plays the game for the first time. The method further includes operations for detecting a visit by the second user to the first game board, and for detecting a request by the second user to place a game asset in the first game board. The game asset is installed in the first game board when the first user approves the request, and the second user obtains one or more game rewards when the first user interacts with the game asset while playing the online game.
Description
DETAILED DESCRIPTION Methods, systems, and computer programs for low-friction synchronous interaction in multiplayer online games are presented. It will be apparent, that the present embodiments may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present embodiments. FIG. 1illustrates an embodiment of a web page100for playing an online game. A web page is a structured document or resource of information that is suitable for a computer network, such as the World Wide Web, the Internet, or an Intranet. A web page is identified by a unique Uniform Resource Locator (URL) and may be accessed through a web browser and displayed on the screen of a network device. Some web pages are dynamic and are constructed at the time the web page is requested by a network user. As a result, the actual content included in dynamic web pages may vary over time. In addition, web pages may include multimedia content (e.g., image, video, or audio), or embedded references thereto, as well as text content. Web page100is one embodiment of a page designed for playing games online via web browsers. In this embodiment, a list of games120is presented for selection by the player, and a list of featured games130identifies popular games. In one embodiment, the game is played in game area110as an embedded component that may use any technology for presenting multimedia dynamic content, such as Hyper Text Markup Language 5 (HTML5), Adobe Flash®, etc. Adobe Flash (formerly known as Macromedia Flash) is a multimedia platform for adding animation and interactivity to web pages. A Flash component (e.g., game area110) may be embedded in a web page (e.g., web page100) to create animation, advertisements, or games and to integrate video ...
DETAILED DESCRIPTION
Methods, systems, and computer programs for low-friction synchronous interaction in multiplayer online games are presented. It will be apparent, that the present embodiments may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present embodiments.
FIG. 1illustrates an embodiment of a web page100for playing an online game. A web page is a structured document or resource of information that is suitable for a computer network, such as the World Wide Web, the Internet, or an Intranet. A web page is identified by a unique Uniform Resource Locator (URL) and may be accessed through a web browser and displayed on the screen of a network device. Some web pages are dynamic and are constructed at the time the web page is requested by a network user. As a result, the actual content included in dynamic web pages may vary over time. In addition, web pages may include multimedia content (e.g., image, video, or audio), or embedded references thereto, as well as text content.
Web page100is one embodiment of a page designed for playing games online via web browsers. In this embodiment, a list of games120is presented for selection by the player, and a list of featured games130identifies popular games. In one embodiment, the game is played in game area110as an embedded component that may use any technology for presenting multimedia dynamic content, such as Hyper Text Markup Language 5 (HTML5), Adobe Flash®, etc.
Adobe Flash (formerly known as Macromedia Flash) is a multimedia platform for adding animation and interactivity to web pages. A Flash component (e.g., game area110) may be embedded in a web page (e.g., web page100) to create animation, advertisements, or games and to integrate video into the web page. Adobe Flash can manipulate vector and raster graphics and support bidirectional streaming of audio and video. In one embodiment, Adobe Flash libraries are used with the Extensible Markup Language (XML) capabilities of the web browsers to render rich content in the browsers. This technology is known as Asynchronous Flash and XML.
Another technology for displaying dynamic content in a web page is HTML5. HTML5's features include media playback and offline storage. With a predecessor version to HTML5, named HTML4, sites have to reach for Adobe Flash (or Silverlight) to show a video or play music. However, HTML5 lets sites directly embed media using HTML tags (e.g., “
In one embodiment, games include objects, such as characters, currencies, tools, assets, social relations, etc. For example, in a war game, the characters may be the soldiers fighting on respective sides of the war. In addition, there may be weapons used by the soldiers and objects around the battlefield (e.g., buildings, trees, animals, mountains, rivers, and so on). Each game object may be defined according to a predetermined syntax. For example, the definition of a game object may include shape, texture, physical capabilities, connection or relationship with other game objects, etc.
In another embodiment, a game application is embedded in a web page (e.g., web page100) and the players play the game via web browsers. The display of a game is sometimes referred to as the “stage” of the game. Thus, the stage of the game may be implemented as Adobe Flash or HTML5 component embedded in the web page. For example, the stage is essentially a data structure that defines some of the basic elements of the game, such as aspect ratio and display size. At any given time, a game scene may be rendered and displayed on the stage by attaching one or more game objects to the stage.
FIG. 2shows the stage of an online game, according to one embodiment. The online game ofFIG. 2can be played in game area110ofFIG. 1, but the online game can also be played in other environments. In one embodiment, the game includes a three-dimensional view220of a city that evolves as the player makes progress in the game. As the player advances in the game, the player acquires assets, which can take multiple forms. In one embodiment, assets include first virtual currency asset202, second virtual currency228, goods206, energy asset208, sheep building222, crop asset224, community building asset226, badges, badge collections, temporally tiered levels, bonuses, promotions, penalties, digital content (e.g., image files, icons, audio files, video files), gifts, tokens, honor title, rewards, invitation permissions, avatars, rally points, diaries, footprints, trophies, competitions, engagement modes, user difficulty modes (e.g., novice, intermediate, expert), stars, medals, gems, pets, exploration quests, etc. Each asset can be used for one or more purposes. For example, first virtual currency202can be used during the game to make progress, also referred to herein as advancement. The first virtual currency202can be used to acquire assets (e.g., buildings or decorations), to remove an obstacle in the game (e.g., enabling progress that would otherwise be blocked), or to complete a task (e.g., finish decorating a house).
In particular embodiments, the first and the second virtual currencies are used for different purposes, although some assets may be bought with either of the currencies. The first virtual currency has higher purchasing value than the second virtual currency. For example the first virtual currency can unblock some obstacles in the game that the second virtual currency cannot. Although a small amount of first virtual currency might be given to the player as the game starts, a player needs to purchase more first virtual currency with real currency, also referred to herein as legal currency, real-world currency, or real cash. This provides a revenue stream for the online game provider.
In one embodiment, the online game includes missions212, which identify one or more tasks that the player must complete before the mission is considered satisfied or finished. For example, a mission may require three tasks: chopping down a tree, feeding an animal, and planting an apple tree. Upon completion of the mission, the player is rewarded in some fashion, such as providing a new asset, increasing the amount of energy, getting more virtual currency, etc. As the player completes tasks and missions, the game score210is increased, and as the game score increases the experience level may also increase.
Clicking on inventory icon216causes the online game to display a list of all the items or assets owned by the player. In addition, clicking on build icon218takes the player to a virtual marketplace where assets (e.g., buildings) can be acquired. As described above, assets can be from within different categories such as buildings, decorations, housing, businesses, crops, trees, animals, energy, special items, weapons, etc. Each category includes a plurality of assets within the category. For example, the housing category includes a cottage, a town house, a family house, a suburban house, a country house, an apartment building, a ranch, etc. Some of the items within a category can be freely acquired by the player, while purchasing of some items can be blocked until certain game condition is met, such as reaching some score, finishing a mission, purchasing the ability to unblock the blocked item, etc.
In one embodiment, the online game is an online social game, which leverages social relationships between the player and other online game players socially linked to the player. For example, the player might add a neighbor214to the game by inviting a friend from a social networking site. A neighbor of a first player, as referred to herein, is a second player that has established a social relationship in the online game with the first player. The social relationship is typically established by having one player inviting the other player to become a neighbor, and then the other player accepting the invitation. Once the invitation is accepted, both players are “neighbors.” A neighbor may also be referred to as a friend, a crew member, a “buddy,” a partner, an ally, etc.
There are many types of online social networks run and maintained by various companies, and any one of these companies can provide access to social graph data. One such company, without limitation to others, may include Facebook. Once a friend accepts being a neighbor, a social relationship is established in the game where the game played by the player and the game played by the neighbor can interact with each other. For example, the player might visit the game board (e.g., city) of the neighbor and perform some game activities therein, and will be rewarded for doing so. Some of the missions in the game might include social activities that promote the interaction between players. For example, one mission might include planting tomatoes in the neighbor's farm. Therefore, the social interaction can provide advancement for the player and for the neighbor.
In one embodiment, a game board is created the first time the player plays the online game. The game board can be a city, a farm, a forest, an island, etc., and the game board may also be referred to as the player's world, environment, playground, etc. As the player makes progress in the game, the game board changes by adding assets (e.g., adding buildings, shops, clearing trees, land, etc.), or by removing obstacles (e.g., cutting down a tree). Each player manages her own game board, although other players linked to the player (e.g., neighbors) in the online game may help by visiting and performing activities in the neighbor's game board. In one embodiment, only the players socially linked to the owner of the game board can visit to perform game activities therein.
It is noted that the embodiments illustrated inFIG. 2are exemplary. Other embodiments may utilize different assets, missions, social interactions, etc. The embodiments illustrated inFIG. 2should therefore not be interpreted to be exclusive or limiting, but rather exemplary or illustrative.
FIG. 3shows a player visiting the game board of another player, according to one embodiment. When a player wishes to visit the game board of a neighbor, the player selects an option in the game to visit the neighbor. For example, clicking on the “visit” button next to the icon of player214inFIG. 2. The game loads the game board304of the neighbor, and the player is given certain options to interact with the game within the game board of the player. Typically, the interaction will create a benefit for the player and a benefit for the neighbor. In the embodiment ofFIG. 3, the player is given the option of harvesting a crop, sending a bus tour306, feeding an animal, etc. For example, if the player clicks310on crop308, the crop is harvested and the player gets a reward302.
It should be noted that the activities that player can perform while visiting a neighbor's game board may be similar to the activities that the friend may perform in her own game board. However, there may be some activities that the friend may perform while visiting and that the player cannot perform in her own game board, and vice versa.
As described above, this type of social interaction (e.g., a visit) may be burdensome for the player because it requires loading the neighbor's game board, and then re-loading the player's own game board upon the end of the visit. This is referred to as a “high-friction” interaction, because of the complexity and effort involved in the interaction. On the other hand, a “low-friction” interaction is an operation involving the game board of another player that requires only a small effort by the player. In one embodiment, a low-friction interaction may be performed while the player is in the player's game board, and without having to load the game board of the neighbor. This way, the player does not have to leave her own game. Some embodiments of low-friction interactions are described below in detail with reference toFIGS. 7-12.
FIG. 4Ashows a block diagram illustrating a social gaming network architecture, according to one embodiment. In some implementations, a plurality of players (e.g.,401a-401f) may be utilizing a social gaming network400. Each player interacts with the social gaming network via one or more client devices (e.g., client devices402a-402f). The clients may communicate with each other and with other entities affiliated with the gaming platform via communications network405. Further, the players may be utilizing a social networking service provided by a social networking server (e.g., social networking servers403) to interact with each other.
When a player provides an input into the player's client device, the client device may in response send a message via the communications network to the social networking server. The social networking server may update the player profile, save the message to a database, send messages to other players, etc. The social gaming network may include a social graph database404, which stores player relationships, social player profiles, player messages, and player social data.
The gaming servers411host one or more gaming applications, and perform the computations necessary to provide the gaming features to the players and clients. One or more gaming realm databases412store data related to the gaming services, such as the gaming applications and modules, virtual gaming environment (“realm”) data, player gaming session data, player scores, player virtual gaming profiles, game stage levels, etc. The gaming servers may utilize the data from the gaming realm databases to perform the computations related to providing gaming services for the players. In some implementations, a server load database414stores gaming server load statistics, such as computational load, server responses times, etc.
The social gaming network may include one or more load balancing servers413, and one or more live interaction servers416. The live interaction servers416monitor which players are online, and determine if a player's neighbors are currently online. This allows live interactions between players, as described below in more detail with reference toFIG. 4B. In one embodiment, a social data cache418stores some of the graph data related to player game links (e.g., neighbors) for fast access to the social data.
FIG. 4Billustrates the interactions between the servers ofFIG. 4A, in accordance with one embodiment of the invention. As described above, social networking servers403collect social data regarding the players. This social data is made available to gaming servers411and live interaction servers416. The social data might be sent periodically, without a request for data, or may be sent as the result of a request sent from the gaming servers411or the live interaction servers416.
The gaming servers411are used to execute the online games and hold the gaming data, which can be shared with social networking servers403and live interaction servers416. The game data (e.g., game updates) may be sent periodically, without responding to a request, or might be sent in response to a request, or might be sent in combination (“piggy-backed”) with other information exchanged between the servers (e.g., game progress or activities data). In one embodiment, live interaction servers416periodically poll gaming servers411requesting the list of users that are online playing the game, or the list of neighbors of a particular user that are currently online. In one embodiment, polling is performed every 15 seconds, and in another embodiment, the polling interval is in the range between 5 seconds and 5 minutes, although other values are also possible.
In one embodiment, communications between users are managed by the live interaction servers416. A first user knows that a second user is online because the live interaction servers416have notified the first user that the second user is online playing the game (of course the first user and the second users are friends in the online game). When the first user sends a message to the second user, the game of the first user sends the message to the live interaction servers416, which forward the message to the game of the second user. Similarly, when the second user wants to send a message to the first user, the message is sent through live interaction servers416.
In another embodiment, the game update information sent by the gaming servers411includes information regarding the users playing a particular game, as well as information regarding users that are playing other online games. This way, a player may receive information about the neighbors that are playing the same online game, or about the neighbors that are playing other online games. The game updates sent from the gaming servers411include information regarding the status of the neighbor's game. The status may include score, current activities, requests for help, recent progress made in the game, sign-on and sign-off information, etc.
Live interaction servers416keep track of which neighbors are online at a given time. Live interaction servers416analyze the game updates received from gaming servers411and create social game data to inform users of neighbor's activities. These activities may include information on which neighbors are online, neighbor's recent activities (e.g., game progress), news, etc.
It is noted that the embodiments illustrated inFIG. 4Bare exemplary. Other embodiments may utilize different server configurations, divide the tasks differently among the servers, or exchange information between servers in different forms. The embodiments illustrated inFIG. 4Bshould therefore not be interpreted to be exclusive or limiting, but rather exemplary or illustrative.
FIG. 5illustrates an implementation of an online game infrastructure, according to one embodiment. The online game infrastructure526includes one or more game servers508, web servers (not shown), one or more social network management servers512, and databases to store game related information. In one embodiment, game server508provides a user interface510for players502to play the online game. In one embodiment, game server508includes a Web server for players502to access the game via web browser504, but the Web server may also be hosted in a server different from game server508. Network506interconnects players502with the one or more game servers508.
Each game server508has access to one or more game databases516for keeping game data. In addition, a single database can store game data for one or more online games. Each game server508may also includes one or more levels of caching. Game data cache514is a game data cache for the game data stored in game databases516. For increased performance, caching may be performed in several levels of caching. For instance, data more frequently used is stored in a high priority cache, while data requiring less access during a session will be cached and updated less frequently.
The number of game servers508changes over time, as the gaming platform is an extensible platform that changes the number of game servers according to the load on the gaming infrastructure. As a result, the number of game servers will be higher during peak playing times, and the number of game servers will be lower during off-peak hours. In one embodiment, the increase or decrease of bandwidth is executed automatically, based on current line usage or based on historical data.
One or more social network management servers512provide support for the social features incorporated into the online games. The social network management servers512access social data528from one or more social networks524via Application Programming Interfaces (API)522made available by the social network providers. Each social network524includes social data528, and this social data528, or a fraction of the social data, is made available via API522. As in the case of the game servers, the number of social network management servers512that are active at a point in time changes according to the load on the infrastructure. As the demand for social data increases, the number of social network management servers512increases. Social network management servers512cache user data in database518, and social data in database520. The social data might include the social networks where a player is present, the social relationships for the player, the frequency of interaction of the player with the social network and with other players, etc. Additionally, the user data kept in database518may include the player's name, demographics, e-mail, games played, frequency of access to the game infrastructure, etc.
It is noted that the embodiment illustrated inFIG. 5is an exemplary online gaming infrastructure. Other embodiments may utilize different types of servers, databases, APIs, etc., and the functionality of several servers can be provided by a single server, or the functionality can be spread across a plurality of distributed servers. The embodiment illustrated inFIG. 5should therefore not be interpreted to be exclusive or limiting, but rather exemplary or illustrative.
FIG. 6shows the game stage when a friend is detected online, according to one embodiment. In one embodiment, the online game has two different modes of play: an asynchronous mode and a synchronous mode. In the asynchronous mode, a player may interact with the game board of the neighbor while the neighbor is offline, or while the neighbor is online but the player is not aware that the neighbor is online. For example, a player may visit the neighbor's game board and perform operations therein, without the neighbor being aware real-time of the visit. The neighbor, whose game board is visited, will be notified at a later time of the visit, including the progress made in the neighbor's game during the visit. In one embodiment, the neighbor may also be notified via a different method not involving the online game, such as sending an e-mail, posting a message on a social network site, sending a phone text message, etc.
During synchronous play, a player of the game is aware that that neighbor is currently online playing the game. As a result, the interactions between the player and the neighbor can be made in real-time, or almost real-time. In one embodiment, a status indicator602that the player is “online” is shown next to the icon associated with the player. In another embodiment, a news field604(also referred to as the news stream or news updates) is added to the game stage of the player, where live news, regarding the game progress of one or more neighbors, are displayed. For example, the news stream may show that the friend has finished building a Post Office in her city (i.e., game board). In one embodiment, some of the features of the game available in synchronous mode are not available while on asynchronous mode, and vice versa.
While the player is online, the game provider automatically changes the mode of play between synchronous and asynchronous mode, depending on whether the neighbor is online or offline simultaneously with the player. The player doesn't have to choose between playing synchronously or asynchronously. When friends are online simultaneously with the player, some activities are performed synchronously, and if friends are offline, then the game is played using asynchronous activities.
Players are incentivized to play together when the players are simultaneously online. Furthermore, players can take part in group activities when they are online, and the players get the feeling that they are doing something together. For example, a first layer may have the role of a cop and a second player of a robber. A car chase can take place between the first and second players using real-time interactions. In one embodiment, players receive rewards for engaging in synchronous social activities.
FIG. 7illustrates a real-time visit to a friend's game board, according to one embodiment.FIG. 7shows the game board of a player that has a friend316playing simultaneously, i.e., both player and friend are online playing the game. The status indicator316for the player that is currently online shows that “Friend” is “visiting” the game board of the player. In addition, in one embodiment, news field408also indicates that the friend is visiting (e.g., displaying the message “Friend is visiting your city, and you got a bonus!”).
In one embodiment, the player gets real-time indications on what the friend is doing while visiting the game board (e.g., the player's city). In another embodiment, an icon316associated with the visiting friend is moved around the city as the friend enters commands to move his avatar or mouse around the city. This way, the player knows what the friend is doing. In addition, if the friend performs an action in the game board (e.g., harvests a crop by clicking on the crop), the player sees immediately the consequences of the friend's action (e.g., the crop is harvested and the field where the crop was harvested now shows dirt, which indicates that a new crop can be planted on this field).
FIG. 8illustrates a low-friction interaction between a player and her friend, according to one embodiment. In one embodiment, a friend is performing an activity in her own game board, and the friend needs help from neighbors to complete this activity. For example, the friend needs the neighbor to complete staffing the Post Office. The friend clicks812in an option of the game to request help from the player to complete this operation. Since the friend knows that the player is currently online, the friend hopes that the viral request for help is completed quickly.
The request is presented to the player, which is a neighbor of friend, to notify the player that the friend wants help. In one embodiment, a message indicator notifies the user of the incoming message with the request. It is noted that the player does not need to reload the game to see the message indicator. When the player reads the message with the request, text802in the message describes the nature of the request. The player is presented with buttons to accept804or ignore the request.
If the player clicks806accept button804, the game provides the help to the friend. However, the helping player does not need to leave her own game board to help, which means that the helping player does not have to leave her board, load the friend's board, perform an action to help, and then re-load her own board to get back to her game. Once the player clicks the accept button, the player does not need to perform other actions to complete the help operation. This constitutes a low-friction interaction for the player, because the help is given with little effort without having to leave the game board. The low-friction interaction encourages social help because of the small effort required to provide help. Besides, the helper also is offered a reward, such as a gift, or additional currency. In addition, the player gets instant gratification for knowing that the player has helped the friend.
Once the game recognizes the help given by the player, the game proceeds to complete the help operation in the friend's game board. In one embodiment, an action, such as an animation, is performed in the friend's game board to show the completion of the help operation. For example, a helicopter814flies by the city of the friend, and an avatar818parachutes816from the helicopter to the Post Office818. The avatar performs and animation in the Post Office to complete the help operation. In addition, the consequences of the help will also be shown in the game board. For example, if the help provided completes the Post Office, the building for the Post Office will change from a building under construction to a finished building. In another example, if the help unwithers a crop (i.e., it makes a withered crop come back to be a healthy crop), then the crop will be shown as healthy in the game board. In one embodiment, the helper gets notification in the news field810that the help was completed, and the helper gets a reward for helping.
In one embodiment, the request for help may be sent to a group of neighbors, each neighbor being either online or offline. This way, the help requester has more chances to get the needed help faster. The help may come from a player which is online, and that performs a low-friction operation for help, or the help may be given by a player that is currently offline, but that subsequently signs in and completes the viral request for help. In another embodiment, the player is given an option to send the request only to neighbors that are currently online. In yet another embodiment, the player is given an option to send the request only to the neighbors that are currently offline.
In one embodiment, the action further occurs without input by the first user to control the action in the second game board. Still further, the action can be in the form of an animation of an avatar of the first user, which appears to the second user as if the first user was actually providing active participation and was actually controlling his or her avatar on the game board of the second user, but without requiring active participation by the first user. Instead, the action is automatically executed by the online game, without direction from the first user, to simulate that the first user is performing the action. In one embodiment, the action takes one form from a plurality of forms, based on game context or the action to be performed, or both. Each form from the plurality of forms defines a sequence of moves or interactivity by an avatar or by objects in the game board, or by a combination thereof. For example, if the action is building a post office, the avatar may wear construction-worker type clothes and carry one or more tools, such as a shovel. The animation for building the post office may include a sequence of images with different progress on the construction of the post office, from building the foundation to installing the roof.
In one embodiment, the animation is related to one or more of buildings, automobiles, helicopters, planes, trains, motorcycles, bicycles, groups of avatars, etc., or combinations thereof. In one embodiment, each of the forms from the plurality of forms is selected dynamically by the online game. The form may be selected from a lookup table, but other types of animation-selection logic are also possible. The lookup table is accessed to select the corresponding animation, based on the current context of the game and the activity being performed.
FIG. 9illustrates a low-friction interaction between two players regarding the acceptance of a franchise request, according to one embodiment. A franchise is a building installed by a franchise owner (i.e., a player) in the game board (e.g., city) of a neighbor, where the franchise generates rewards (e.g., income) for the franchise owner. The franchise may also generate rewards for the owner of the game board where the franchise is installed.
In one embodiment, a player (referred to herein as the franchise owner) wishing to install a franchise in the city of a neighbor (referred to as the franchise recipient) visits the city where the franchise is to be installed. The franchise owner looks for an empty lot in the franchise recipient's city, and then clicks on the selected lot to choose the type of franchise to install. After the lot is selected, the game displays message902(e.g., “tell friend to approve your franchise!”) To prompt the franchise owner to inform the franchise recipient. In another embodiment, the franchise owner may post a message for the franchise recipient.
After the franchise owner clicks on button904to send the request to the franchise recipient, the notification for the request is sent to the game of the franchise recipient. While in synchronous mode, the franchise requester knows that the franchise recipient is online, therefore, sending the franchise request will likely result in a faster completion of the franchise installation. In one embodiment, the franchise recipient sees an icon906of the franchise owner on the empty lot where the franchise is to be installed. Next to the icon906, a message908with the franchise request is displayed. In addition, button910for accepting the franchise and bottom912for rejecting the request are presented to the user with message908.
If the franchise recipient clicks on button910to accept the franchise request, then message912is presented on the display indicating that the franchise has been installed. In addition, the empty lot will now show the installed franchise914. If the franchise owner is online, message916will show in the news field indicating that the friend accepted the franchise.
In one embodiment, if the franchise requester is visiting the game board of the franchise recipient while the request for franchise is being presented, the franchise requester will see a live animation showing how the franchise is being installed. The franchise requester will see the change from an empty lot to an installed franchise building. Once the franchise is installed, the franchise owner can supply goods for the franchise (e.g., ice cream for an ice cream parlor) from her own game board, without having to visit the franchise recipient's game board.
FIG. 10illustrates the interaction between the games of two players when a friend is detected online, in accordance with one embodiment of the invention. With regard toFIGS. 10-12, the activities of two players are described, as well as the interaction between the games of the two players. For description purposes, one of the players is called the “player” and the other player is called the “friend.” Of course, the “friend” and the “player” are neighbors in the online game, and any of the activities performed by one of them can be performed by the other one when the game interaction develops in the opposite direction (e.g., player can visit friend, and friend can visit player).
In the embodiment ofFIG. 10, the friend is initially offline. When the player signs in1002, the status of the player changes to online. The friend also signs in1012and the status of the friend changes to online1020. Since both players are now online, the synchronous mode of play begins as soon as the game correlates that both players are simultaneously online. When the player's game detects that the friend is online1004, the player's game starts synchronous mode. The game notifies the player that the friend is now online. In one embodiment, an icon associated with the friend changes the contents of a status field to be “online.”
As the friend's game progresses1014(e.g., the friend finishes a Post Office1022), the progress is detected1006in the player's game, and this progress is shown to the player, such as in the news banner ofFIG. 6. When the friend visits the player1016, the friend's game displays the player's game board (e.g., the city) of player. The friend is able to interact with the player's game board (see for example the interactions presented inFIG. 3). As the friend helps the player, the friend receives rewards for her help.
As the friend is visiting the player's board, the player's game detects1008the presence of friend in the player's board. An icon or animation associated with the friend is presented in the player's game. In one embodiment, the icon is a picture from the profile's friend in the online game, and in another embodiment, the icon is and avatar generated by the online game, but other types of icons are also possible. In addition, the status indicator associated with the status of friend in the player's game changes from “online” to “visiting.” The player is able to see in real time the actions performed by the friend in the player's board (e.g., collecting rent by clicking on a building). In addition, the progress made by a friend may also be shown in the news banner.
When the friend performs an action in the player's board to help player1018, the friend sees the consequences of providing help on the game stage1026(e.g., if the friend clicks on a crop that is ready to be harvested, the crop is harvested and the field changes the dirt showing that the field is ready for planting a new crop). In addition, the friend receives rewards (e.g., currency) for giving a helping hand. On the player's side, as the friend gives a helping hand, the actions of friend are shown on the player's board1010. In one embodiment, the news field is updated with information regarding the help provided by friend.
FIG. 11illustrates the interactions between two games during a low-friction interaction operation, according to one embodiment. When the friend returns home1112from visiting the player's game board, the friend's own game board is loaded by the game1116. On the player's side, once the friend terminates the visit, the friend's avatar is withdrawn1106from the game board of the player. In addition, the news banner may also be updated indicating that the friend has left the player's board, and the status indicator associated with the friend in the player's game changes back from “visiting” to “online” (or to “offline” if the friend signs off without returning to her board).
In operation1114, the friend sends a request to the player for help. For example, the friend wishes to staff her Post Office with player1118. On the player's game, the request for help is shown to player, and since player is online the player has immediate access to the request. A message from friend is displayed1108, and an option (e.g., a button) to accept the request for help is presented to the player. In one embodiment, the player is given an option to accept, and an option to ignore or reject the request.
After the player reads the message with the request1102, the player accepts or rejects the request. If the player decides to help1104, by for example clicking on the “accept” button1110, the action to provide help to the friend is started. It is noted that the player is able to provide help while playing in the player's board, without having to visit the friend's game board.
When in synchronous mode, the help provided by player is visualized in the friend's game1120. For example, a character associated with the player parachutes from a helicopter into the Post Office, as previously described with reference toFIG. 8. In one embodiment, a player gets a bonus or reward for helping1122. Therefore, the player has an incentive to help, especially given the small effort required to provide the help, i.e., the low-friction interaction. In one embodiment, the news stream is updated in the player's game board and/or the friend's game board.
FIG. 12illustrates the interactions between two games during a real-time acceptance of a friend's request, according to one embodiment. One of the options1204in the online game is the installation of a franchise in another player's board (e.g., city). In operation1202, the player requests a franchise1202to be installed in the friend's city. In one embodiment, the request includes visiting the friend's city and selecting a lot for the franchise, as previously described with reference toFIG. 9. After selecting the lot and sending the franchise request, the player returns to the online game1206and the player's board.
When the friend's game detects1212the franchise request, the request is presented on the display. In one embodiment, the request is presented on top of the empty lot where the franchise would be installed. If the friend accepts1210the franchise installation, the franchise is placed in the friend's board where the empty lot previously existed1214. After the friend's acceptance, the player's game board displays the news that the friend has installed the franchise1208. In one embodiment, the player also collects a bonus or reward for having installed the franchise.
In operation1216, the friend signs out and the status changes to offline1220. When that player's game detects that the friend is now offline1218, the online game returns to an asynchronous mode of play.
FIG. 13shows a flowchart illustrating an algorithm for processing game operations during execution of an online game, in accordance with one embodiment of the invention. In operation1302, a social grid is accessed, the social grid having relationship information. From operation1302, the method continues to operation1304, where a first game board for a first user and a second game board for a second user are executed. The first game board is managed by the first user and the second game board is managed by the second user, and the social grid includes a social link between the first user and the second user in the online game, i.e., the first user and the second user are neighbors in the online game.
The method continues the operation1306, where a request is presented, the request being for assistance to the first user in the first game board, and being generated in the second game board. Further, in operation1308, upon detection of acceptance of the request by the first user, an animation is generated in the second game board. The animation presents a sequence of images that appear as an action performed by the first user in the second game board. Additionally, the action occurs without the first user accessing the second game board, and the action performed in the second game board completes at least one task associated with the request for assistance.
In one embodiment, the action occurs without input by the first user to control the action in the second game board. The action may be in the form of an animation of an avatar of the first user, which appears to the second user as if the first user was actually providing active participation and was actually controlling his or her avatar on the game board of the second user, but without requiring the active participation of the first user. In one embodiment, the animation may include a plurality of avatars. For example, the avatar associated with the first player visits the game board of the second player accompanied by a crew of workers, which then help to complete the activity, such as for example, building a road. Further, the action is automatically executed by the online game, without direction from the first user, to simulate that the first user is performing the action. Of course, the user may start the action by providing an input that authorizes the help to the second user, but after the authorization is given, the involvement of the first user ends, and the game takes over from there to complete the animation.
In one embodiment, the action takes a form from a plurality of forms, based on game context or the action to be performed. Each form from the plurality of forms defines a sequence of moves or interactivity by an avatar or by objects in the game board, or by a combination thereof. For example, if the action is building a post office, the avatar may wear construction-worker type clothes and carry one or more tools, such as a shovel. The animation for building the post office may include a sequence of images with different progress on the construction of the post office, from building the foundation to putting the roof. In one embodiment, each of the forms from the plurality of forms is selected dynamically by the online game. The form may be selected from a lookup table, but other types of animation-selection logic are also possible. The lookup table is accessed to select the corresponding animation, based on the current context of the game and the activity being performed.
FIG. 14illustrates an example network environment550suitable for implementing embodiments of the invention. Network environment550includes a network560coupling one or more servers570and one or more clients580to each other. In particular embodiments, network560is an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a metropolitan area network (MAN), a portion of the Internet, another network, or a combination of two or more such networks560.
One or more links552couple a server570or a client580to network560. In particular embodiments, one or more links552each includes one or more wireline, wireless, or optical links552. In particular embodiments, one or more links552each includes an intranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a MAN, a portion of the Internet, or another link552or a combination of two or more such links552.
Each server570may be a stand-alone server or may be a distributed server spanning multiple computers or multiple datacenters. Servers570may be of various types, such as, for example and without limitation, web server, news server, mail server, message server, advertising server, file server, application server, exchange server, database server, or proxy server. Each server570may include hardware, software, embedded logic components, or a combination of two or more such components for carrying out the appropriate functionalities implemented or supported by server570. For example, a web server is generally capable of hosting websites containing web pages or particular elements of web pages. More specifically, a web server may host HTML files or other file types, or may dynamically create or constitute files upon a request, and communicate them to clients580in response to HTTP or other requests from clients580. A mail server is generally capable of providing electronic mail services to various clients580. A database server is generally capable of providing an interface for managing data stored in one or more data stores.
In particular embodiments, one or more data storages590may be communicatively linked to one or more severs570via one or more links552. Data storages590may be used to store various types of information. The information stored in data storages590may be organized according to specific data structures. In particular embodiments, each data storage590may be a relational database. Particular embodiments may provide interfaces that enable servers570or clients580to manage, e.g., retrieve, modify, add, or delete, the information stored in data storage590.
In particular embodiments, each client580may be an electronic device including hardware, software, or embedded logic components or a combination of two or more such components and capable of carrying out the appropriate functionalities implemented or supported by client580. For example and without limitation, a client580may be a desktop computer system, a notebook computer system, a netbook computer system, a handheld electronic device, or a mobile telephone. A client580may enable a network player at client580to access network580. A client580may enable its player to communicate with other players at other clients580. Further, each client580may be a computing device, such as a desktop computer or a work station, or a mobile device, such as a notebook computer, a network computer, or a smart telephone.
In particular embodiments, a client580may have a web browser582, such as MICROSOFT INTERNET EXPLORER, GOOGLE CHROME, or MOZILLA FIREFOX, and may have one or more add-ons, plug-ins, or other extensions. A player at client580may enter a Uniform Resource Locator (URL) or other address directing the web browser582to a server570, and the web browser582may generate a Hyper Text Transfer Protocol (HTTP) request and communicate the HTTP request to server570. Server570may accept the HTTP request and communicate to client580one or more Hyper Text Markup Language (HTML) files responsive to the HTTP request. Client580may render a web page based on the HTML files from server570for presentation to the user. The present disclosure contemplates any suitable web page files. As an example and not by way of limitation, web pages may render from HTML files, Extensible Hyper Text Markup Language (XHTML) files, or Extensible Markup Language (XML) files, according to particular needs. Such pages may also execute scripts such as, for example and without limitation, those written in JAVASCRIPT, JAVA, MICROSOFT SILVERLIGHT, combinations of markup language and scripts such as AJAX (Asynchronous JAVASCRIPT and XML), and the like. Herein, reference to a web page encompasses one or more corresponding web page files (which a browser may use to render the web page) and vice versa, where appropriate.
Web browser582may be adapted for the type of client580where the web browser executes. For example, a web browser residing on a desktop computer may differ (e.g., in functionalities) from a web browser residing on a mobile device. A user of a social networking system may access the website via web browser582.
FIG. 15illustrates an example computer system650for implementing embodiments of the invention. In particular embodiments, software running on one or more computer systems650performs one or more operations of one or more methods described or illustrated herein or provides functionality described or illustrated herein. Although methods for implementing embodiments were described with a particular sequence of operations, it is noted that the method operations may be performed in different order, or the timing for the execution of operations may be adjusted, or the operations may be performed in a distributed system by several entities, as long as the processing of the operations are performed in the desired way.
As example and not by way of limitation, computer system650may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, or a combination of two or more of these. Where appropriate, computer system650may include one or more computer systems650; be stand-alone or distributed; span multiple locations; span multiple machines; or reside in a cloud, which may include one or more cloud components in one or more networks. The one or more computer systems650may perform in real time or in batch mode one or more operations of one or more methods described or illustrated herein.
In particular embodiments, computer system650includes a processor652, memory654, storage656, an input/output (I/O) interface658, a communication interface660, and a bus662. Although this disclosure describes and illustrates a particular computer system having a particular number of particular components in a particular arrangement, embodiments of the invention may be implemented with any suitable computer system having any suitable number of any suitable components in any suitable arrangement.
In particular embodiments, processor652includes hardware for executing instructions, such as those making up a computer program. As an example and not by way of limitation, to execute instructions, processor652may retrieve (or fetch) the instructions from an internal register, an internal cache, memory654, or storage656; decode and execute them; and then write one or more results to an internal register, an internal cache, memory654, or storage656. The present disclosure contemplates processor652including any suitable number of any suitable internal registers, where appropriate. Where appropriate, processor652may include one or more arithmetic logic units (ALUs); be a multi-core processor; or include one or more processors652. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.
In particular embodiments, memory654includes main memory for storing instructions for processor652to execute, or data that can be manipulated by processor652. As an example and not by way of limitation, computer system650may load instructions from storage656or another source (such as, for example, another computer system650) to memory654. Processor652may then load the instructions from memory654to an internal register or internal cache. During or after execution of the instructions, processor652may write one or more results (which may be intermediate or final results) to the internal register or internal cache. Processor652may then write one or more of those results to memory654. One or more memory buses (which may each include an address bus and a data bus) may couple processor652to memory654. Bus662may include one or more memory buses, as described below. One or more memory management units (MMUs) reside between processor652and memory654and facilitate accesses to memory654requested by processor652. Memory654includes random access memory (RAM).
As an example and not by way of limitation, storage656may include an HDD, a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB) drive or a combination of two or more of these. Storage656may include removable or non-removable (or fixed) media, where appropriate. In particular embodiments, storage656includes read-only memory (ROM). Where appropriate, this ROM may be mask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM), or flash memory or a combination of two or more of these.
In particular embodiments, I/O interface658includes hardware, software, or both providing one or more interfaces for communication between computer system650and one or more I/O devices. One or more of these I/O devices may enable communication between a person and computer system650. As an example and not by way of limitation, an I/O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet, touch screen, trackball, video camera, another suitable I/O device or a combination of two or more of these.
Communication interface660includes hardware, software, or both providing one or more interfaces for communication between computer system650and one or more other computer systems650on one or more networks. As an example and not by way of limitation, communication interface660may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network. As an example, computer system650may communicate with a wireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (such as, for example, a Global System for Mobile Communications (GSM) network), or other suitable wireless network or a combination of two or more of these.
In particular embodiments, bus662includes hardware, software, or both coupling components of computer system650to each other. As an example and not by way of limitation, bus662may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBAND interconnect, a low-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a serial advanced technology attachment (SATA) bus, a Video Electronics Standards Association local (VLB) bus, or another suitable bus or a combination of two or more of these. Bus662may include one or more buses662, where appropriate. Although this disclosure describes and illustrates a particular bus, this disclosure contemplates any suitable bus or interconnect.
Herein, reference to a computer-readable storage medium encompasses one or more non-transitory, tangible computer-readable storage media possessing structure that may store a computer program or data. As an example and not by way of limitation, a computer-readable storage medium may include a semiconductor-based or other integrated circuit (IC) (such, as for example, a field-programmable gate array (FPGA) or an application-specific IC (ASIC)), a hard disk, an HDD, a hybrid hard drive (HHD), an optical disc, an optical disc drive (ODD), a magneto-optical disc, a magneto-optical drive, a floppy disk, a floppy disk drive (FDD), magnetic tape, a holographic storage medium, a solid-state drive (SSD), a RAM-drive, a Secure Digital card, a Secure Digital drive, or another suitable computer-readable storage medium or a combination of two or more of these, where appropriate. Herein, reference to a computer-readable storage medium excludes any medium that is not eligible for patent protection under 35 U.S.C. §101.
One or more embodiments of the present invention can also be fabricated as computer readable code on a non-transitory computer readable medium. Herein, reference to software may encompass one or more applications, bytecode, one or more computer programs, one or more executables, one or more instructions, logic, machine code, one or more scripts, or source code, and vice versa, where appropriate.
The present disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend.
Claims
- A method comprising: creating a first game board for a first player when the first player plays an online game for a first time from a first client device;creating a second game board for a second player when the second player plays the online game for a first time from a second client device;detecting, in the online game of the second player, a friend visit from the first player to the second game board, wherein the friend visit includes loading the second game board on the first client device of the first player to allow the first player to control movement of a first avatar of the first player in the second game board rendered on the first client device during the friend visit;and executing, in the online game of the second player, a simulated visit of the first player to the second game board, the simulated visit occurring when the second player is playing the online game, wherein the simulated visit includes simulating movement of the first avatar in the second game board rendered on the second client device so as to match the movement of the first avatar in the second game board rendered on the first client device, without the second player having to re-load the second game board on the second client device of the second player, wherein operations of the method are executed by a processor.
- The method as recited in claim 1 , wherein the first game board is managed by the first player and the second game board is managed by the second player, wherein the first game board is not part of a virtual world shared by players of the game.
- The method as recited in claim 1 , wherein the friend visit from the first player to the second game board includes loading the second game board on the online game of the first player and enabling game operations for the first player in the second game board, and when the friend visit from the first player to the second game board ends, the first game board is re-loaded on the online game of the first player.
- The method as recited in claim 1 , wherein a live interaction server is configured to determine if players of the online game are playing at a same time.
- The method as recited in claim 4 , wherein the live interaction server is configured to poll gaming servers to request information about players that are online and playing the game.
- The method as recited in claim 4 , wherein the live interaction server is configured to analyze game updates received from the gaming servers and create social game data for informing players of neighbor's activities.
- The method as recited in claim 1 , wherein social networking servers are configured to collect social data regarding player's friends.
- The method as recited in claim 1 , further including: establishing, by a live interaction server, a synchronous mode of play when the first player and the second player play the online game at a same time, and an asynchronous mode of play when the first player and the second player are not playing the online game at the same time.
- The method as recited in claim 8 , wherein in the asynchronous mode the first player is configured to interact with the second game board loaded on the first client device while the second player is offline and updating the interaction onto the second game board at the second client device when the second player comes online and plays the online game from the second client device, wherein during synchronous play the first player is given information that the second player is currently online playing the game.
- The method as recited in claim 8 , wherein while the first player is online, the online game automatically changes a mode of play between synchronous and asynchronous mode depending on whether the second player is online or offline simultaneously with the first player.
- A system for processing game operations during execution of an online game, the system comprising: a live interaction server that establishes a synchronous mode of play when a first player and a second player play the online game at a same time, and an asynchronous mode of play when the first player and the second player are not playing the online game at the same time;and a game server configured to create a first game board for a first player when the first player plays an online game for a first time from a first client device, and create a second game board for a second player when the second player plays the online game for a first time from the second client device;wherein the game server is configured to detect, in the online game of the second player, a friend visit from the first player to the second game board, wherein the friend visit includes loading the second game board on the first client device of the first player to allow the first player to control movement of a first avatar of the first player in the second game board rendered on the first client device during the friend visit;wherein the game server executes, in the online game of the second player, a simulated visit of the first player to the second game board, the simulated visit occurring when the second player is playing the online game, wherein the simulated visit includes simulating movement of the first avatar in the second game board rendered on the second client device so as to match the movement of the first avatar in the second game board rendered on the first client device, the simulated visit occurring without the second player having to re-load the second game board in the online game of the second player.
- The system as recited in claim 11 , further including: social networking servers configured to collect social data regarding players friends.
- The system as recited in claim 11 , wherein the first player obtains one or more game rewards during the friend visit to the second game board.
- The system as recited in claim 11 , wherein in the asynchronous mode the first player is configured to interact with the second game board loaded on the first client device while the second player is offline and updating the interaction onto the second game board at the second client device when the second player comes online and plays the online game from the second client device, wherein during synchronous play the first player is given information that the second player is currently online playing the game.
- A non-transitory computer-readable storage medium storing a computer program, the computer-readable storage medium comprising: program instructions for creating a first game board for a first player when the first player plays an online game for a first time from a first client device;program instructions for creating a second game board for a second player when the second player plays the online game for a first time from a second client device;program instructions for detecting, in the online game of the second player, a friend visit from the first player to the second game board, wherein the friend visit includes loading the second game board on the first client device of the first player to allow the first player control movement of a first avatar of the first player in the second game board rendered on the first client device during the friend visit;and program instructions for executing, in the online game of the second player, a simulated visit of the first player to the second game board, the simulated visit occurring when the second player is playing the online game, wherein the simulated visit includes simulating movement of the first avatar in the second game board rendered on the second client device so as to match the movement of the first avatar in the second game board rendered on the first client device, without the second player having to re-load the second game board on the second client device of the second player.
- The storage medium as recited in claim 15 , wherein the first game board is managed by the first player and the second game board is managed by the second player, wherein the first game board is not part of a virtual world shared by players of the game.
- The storage medium as recited in claim 15 , wherein the friend visit from the first player to the second game board includes loading the second game board on the online game of the first player and enabling game operations for the first player in the second game board, and when the friend visit from the first player to the second game board ends, the first game board is re-loaded on the online game of the first player.
- The storage medium as recited in claim 15 , further includes program instructions for determining if players of the online game are playing at a same time.
- The storage medium as recited in claim 18 , wherein the program instructions for determining further includes program instructions for polling one or more gaming servers to request information about players that are online playing the game.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.