U.S. Pat. No. 9,569,466
SYSTEM AND METHOD FOR OFFLINE ASYNCHRONOUS USER ACTIVITY IN A PLAYER VERSUS PLAYER ONLINE GAME
AssigneeKabam, Inc.
Issue DateJanuary 30, 2013
Illustrative Figure
Abstract
A system and method for providing offline asynchronous user activity in a player versus player online game is disclosed. A client computing platform associated with a first user may maintain a connection to the game server that hosts a game space at which an online game takes place. The client computing platform may include a game state repository that stores a game space for the game state and a game logic repository that stores game logic for the online game. When the client computing platform disconnects from the game server, an expression of the game space is maintained at the client computing platform. While disconnected, the client computing platform may receive instructions for one or more actions to be taken in the game space and may execute the actions in the online game. When a connection is established with the game server, the executed actions may be verified.
Description
DETAILED DESCRIPTION FIG. 1illustrates a system10configured to provide offline asynchronous user activity beyond the playing of a discrete game in a player versus player online game. A game server12may host a game space in which an online game takes place. A client computing platform14associated with a first user may maintain a connection to the game server12. A game state repository32on the client computing platform14may store a game state of the game space, where the game state may include information related to a first set of one or more virtual entities in the game space associated with the first user and information related to a second set of one or more virtual entities in the game space associated with a second user. A game logic repository34on the client computing platforms14may store game logic for the online game, the game logic being based on the game state. When the client computing platform14disconnects from the game server12, an expression of the game space may be maintained in an offline mode at the client computing platform14to facilitate continued participation by the first user in the online game. While disconnected from the game server12, the client computing platform14may receive instructions from the first user for one or more actions to be taken by the first set of virtual entities in the game space and may execute the one or more actions in the online game, such that the first set of virtual entities interact with the game space and such that an outcome of the one or more actions is dictated based on the game logic. When a connection is established with the game server12, the one or more executed actions may be verified. The game server12may be configured to execute one or more computer program modules. The computer program modules may include one or ...
DETAILED DESCRIPTION
FIG. 1illustrates a system10configured to provide offline asynchronous user activity beyond the playing of a discrete game in a player versus player online game. A game server12may host a game space in which an online game takes place. A client computing platform14associated with a first user may maintain a connection to the game server12. A game state repository32on the client computing platform14may store a game state of the game space, where the game state may include information related to a first set of one or more virtual entities in the game space associated with the first user and information related to a second set of one or more virtual entities in the game space associated with a second user. A game logic repository34on the client computing platforms14may store game logic for the online game, the game logic being based on the game state.
When the client computing platform14disconnects from the game server12, an expression of the game space may be maintained in an offline mode at the client computing platform14to facilitate continued participation by the first user in the online game. While disconnected from the game server12, the client computing platform14may receive instructions from the first user for one or more actions to be taken by the first set of virtual entities in the game space and may execute the one or more actions in the online game, such that the first set of virtual entities interact with the game space and such that an outcome of the one or more actions is dictated based on the game logic. When a connection is established with the game server12, the one or more executed actions may be verified.
The game server12may be configured to execute one or more computer program modules. The computer program modules may include one or more of a user module18, a space module20, an interaction module22, a relationship module24, a network module26, a verification module28, and/or other modules.
The user module18may be configured to access and/or manage one or more user profiles and/or user information associated with users of the system10. The one or more user profiles and/or user information may include information stored by game server12, one or more of the client computing platforms14, and/or other storage locations. The user profiles may include, for example, information identifying users (e.g., a username or handle, a number, an identifier, and/or other identifying information) within the virtual space, security login information (e.g., a login code or password), virtual space account information, subscription information, virtual currency account information (e.g., related to currency held in credit for a user), relationship information (e.g., information related to relationships between users in the virtual space), virtual space usage information, demographic information associated with users, interaction history among users in the virtual space, information stated by users, purchase information of users, browsing history of users, a client computing platform identification associated with a user, a phone number associated with a user, and/or other information related to users.
Space module20may be configured to implement the instance of the virtual space executed by the computer modules. The instance of the virtual space may reflect the state of the virtual space. The instance of the virtual space may be used to push state information to clients for implementation on the clients, may be used to verify state information generated on clients executing expressions of the instance locally, and/or for other purposes. State information may include information about the state of the virtual space such as, without limitation, position information of one or more objects, topography information, object status/shape information, battle information, score information, user or character progress information, user inventory information, progress information for one or more activities or actions, view information describing a view of the virtual space, and/or other information that describes the state of the virtual space.
Expressions of the instance executed on the clients facilitate presentation of views on the clients of the virtual space. Expressions of the instance executed on the clients may be configured to simply present views of the virtual space based on the state information (e.g., via streaming view information, object/position information, and/or other state information) received from space module20. Expressions of the instance executed on the clients may include space logic that effectively provides for execution of a limited version of the instance on a client that is synchronized and/or verified with state information received from space module20. The view presented on a given client may correspond to a location in the virtual space (e.g., the location from which the view is taken, the location the view depicts, and/or other locations), a zoom ratio, a dimensionality of objects, a point-of-view, and/or view parameters. One or more of the view parameters may be selectable by the user.
The instance of the virtual space may comprise a simulated space that is accessible by users via clients (e.g., client computing platforms14) that present the views of the virtual space to a user. The simulated space may have a topography, express ongoing real-time interaction by one or more users, and/or include one or more objects positioned within the topography that are capable of locomotion within the topography. In some instances, the topography may be a 2-dimensional topography. In other instances, the topography may be a 3-dimensional topography. The topography may include dimensions of the space, and/or surface features of a surface or objects that are “native” to the space. In some instances, the topography may describe a surface (e.g., a ground surface) that runs through at least a substantial portion of the space. In some instances, the topography may describe a volume with one or more bodies positioned therein (e.g., a simulation of gravity-deprived space with one or more celestial bodies positioned therein). The instance executed by the computer modules may be synchronous, asynchronous, and/or semi-synchronous.
The above description of the views of the virtual space determined from the instance executed by space module20is not intended to be limiting. The virtual space may be presented in a more limited, or more rich, manner. For example, views of the virtual space may be selected from a limited set of graphics depicting an event in a given place within the virtual space. The views may include additional content (e.g., text, audio, pre-stored video content, and/or other content) that describes particulars of the current state of the place, beyond the relatively generic graphics. For example, a view may include a generic battle graphic with a textual description of the opponents to be confronted. Other representations of individual places within the virtual space are contemplated.
Within the instance of the virtual space executed by space module20, users may control characters, objects, simulated physical phenomena (e.g., wind, rain, earthquakes, and/or other phenomena), and/or other elements within the virtual space to interact with the virtual space and/or each other. The user characters may include avatars. As used herein, the term “user character” may refer to an object (or group of objects) present in the virtual space that represents an individual user. The user character may be controlled by the user with which it is associated. The user controlled element(s) may move through and interact with the virtual space (e.g., non-user characters in the virtual space, other objects in the virtual space). The user controlled elements controlled by and/or associated with a given user may be created and/or customized by the given user. The user may have an “inventory” of virtual goods and/or currency that the user can use (e.g., by manipulation of a user character or other user controlled element, and/or other items) within the virtual space.
The users may participate in the instance of the virtual space by controlling one or more of the available user controlled elements in the virtual space. Control may be exercised through control inputs and/or commands input by the users through client computing platforms14. The users may interact with each other through communications exchanged within the virtual space. Such communications may include one or more of textual chat, instant messages, private messages, voice communications, and/or other communications. Communications may be received and entered by the users via respective client computing platforms14. Communications may be routed to and from the appropriate users through game server12(e.g., through space module20).
The interaction module22may be configured to monitor interactions of the users with the virtual space and/or each other within the virtual space. This may include monitoring, for a given user, one or more of times at which the given user is logged in to the virtual space, areas of the virtual space the given user views or interacts with or in, other users the given user interacts with, the nature and/or content of interactions of the given user with other users, activities participated in within the virtual space, level, powers, or skill attained in the virtual space, inventory items obtained in the virtual space, and/or other interactions of the given user with the virtual space and/or other users. Some or all of the information generated by interaction module22in monitoring the interactions of the users may be stored to the user profiles managed by user module18.
At a given time, interaction module22may determine a set of users that are currently engaged with the virtual space and/or a set of users that are currently not engaged with the virtual space. Being engaged with the virtual space may refer to being logged in to the virtual space, performing some action or interaction within the virtual space within some period of time (e.g., the last 2 minutes), and/or other taking some other action indicating ongoing and contemporaneous engagement with the virtual space.
The interaction module22may be configured to determine, for individual users, an activity metric that indicates an activity level within the virtual space. The activity metric may be determined based on one or more of log in frequency, amount of time logged in to the virtual space within a rolling time period (e.g., over the last day, week, month, or other rolling time period), average amount of time logged in to the virtual space over some length of time (e.g., per day, per week, and/or other length of time), average log in session time over a rolling time period, number of inter-user communications over a length of time, number of inter-user communications per log in, number of relationships with other users in the virtual space, number of new relationships with other users in the virtual space within a rolling time period, amount of real world money spent in the virtual space, and/or other activity parameters.
The relationship module24may be configured to establish relationships between users within the virtual space. Such relationships may include one or more of friendships, guilds (with guild-mates), alliances, connections, followers, and/or other relationships. The relationship module24may establish relationships based on relationship requests and acceptances received from users. Establishment of a relationship may be initiated by a single communication (e.g., a request) initiated by a given user requesting a relationship between the given user and one or more other users. Establishment of a relationship may require a first communication from the given user to be approved by the one or more other users. Relationships may include one or more types of relationships that have a functional purpose or impact within the virtual space, and/or one or more types of relationships of a social construct within the virtual space that does not have a functional result.
Network module26of the game server12may be configured to maintain a connection to the one or more client computing platforms14. For example, the network module26may maintain one or more communication lines or ports to enable connection and/or exchange of information with a network44and/or other computing platforms14. Information such as state information, game state and game logic may be communicated via network module26. The network module may be configured to receive information from the client computing platform14as well.
Verification module26of the game server12may be configured to receive one or more executed actions from the one or more client computing platforms14when the client computing platforms14establish a connection with the game server12. For example, the verification module28may receive information related to a first executed action from a client computing platform14.
In some implementations, the verification module28may determine whether the first executed action may be verified. For example, the verification module28may determine whether the action could have occurred based on the game state and/or game logic of the online game.
In some implementations, the verification module28may determine whether the one or more executed actions affect one or more virtual entities associated with users other than the user that executed the first action. When the first executed action affects only the one or more virtual entities associated with the user that executed the first action, the verification module28may determine whether the first executed action could have occurred based on the game state. For example, the first executed action may be purchase of a virtual item, sending a request for a relationship to one or more entities associated with another user, changing locations in the virtual space, changing an avatar of the user, and/or other actions that affect only the user that executed the first action. In some implementations, the verification module28may determine whether the first executed action could have occurred based on the game state and game logic.
When the one or more executed actions affect one or more virtual entities associated with users other than the user that executed the first action, the verification module may determine whether the one or more executed actions could have occurred based on the information in the game state associated with the affected sets of one or more virtual entities. The verification module28may check the game state and game logic to determine if the first executed action may be verified. For example, the verification module28may perform a trial execution of the first executed action to determine whether a result of the first executed action would be identical if it were executed using the game state and game logic stored at the server. During the trial execution, the game state may not be changed.
When the results of the first executed action and the trial execution are identical, the verification module28may verify the first executed action as valid. When the results are not identical, the verification module28may find the first executed action to be invalid. For example, the first executed action of the user may comprise an attack and/or defeat of the city of a second user based on game state and game logic stored at the client computing platform14when the client computing platform14was offline and not connected to the game server12. If the second user increased security when the client computing platform14was offline, the first executed action would be determined to be not valid because a result of the first executed action may be different.
In some implementations, the game logic used to determine whether the first executed action and the trial execution are identical may be different from the game logic stored at the client computing platform14when the client computing platform14was offline. In some implementations, when the results of the first executed action and the trial execution are identical, but the game logic on the game server12and the game logic that had been stored at the client computing platform14are different, the first executed action may be determined to be invalid.
Responsive to the determination of whether the action could occur, the verification module28may generate verification information. The verification information may comprise an indication that the first executed action is not valid, and/or other information related to the verification of the first executed action. In some implementations, when the first executed action has been determined to be valid, the verification information may also comprise a request for confirmation of the first executed action. For example, the verification information may comprise a request for confirmation when the first executed action comprises a purchase of virtual items, a change of avatar, and/or other action that involves only one or more virtual entities of the user that executed the first action.
In some implementations, the verification module28may send an updated game state and/or updated game logic of the online game responsive to receiving the executed action. In these implementations, the verification module44of the client computing platform14may perform verification the same or similar to that performed by the verification module28of the game server12. The types of executed actions, and the verification of the executed actions, will be discussed in further detail with regard to the client computing platforms14.
In some implementations, when the first executed action has been determined to valid (or the game server12requested and received confirmation of the first executed action), the game server12will execute the first executed action and update the game state and/or game logic of the online game based on the execution of the first executed action.
The client computing platform14may be configured to provide offline asynchronous user activity in the player versus player online game and may be associated with a first user. The client computing platform may comprise a game state repository32, a game logic repository34, a processor38configured to execute compute program modules, and/or other components. The program modules may comprise a network module40, an offline play module42, a verification module44, and/or other modules.
The game state repository32of the client computing platform may be configured to store a game state of the game space. The game state may include information related to a first set of one or more virtual entities in the game space associated with the first user, information related to a second set of one or more virtual entities in the game space associated with a second user, and/or information related to another set of one or more virtual entities in the game space associated with another user.
The game logic repository34may be configured to store game logic for the online game. In some implementations, the game logic may comprise a decision tree comprising one or more of: information relating to a plurality of actions available to the first user based on the game state, information relating to a plurality of consequences associated with the plurality of respective actions available and based on the game state, or a plurality of requirements associated with the plurality of respective actions and based on the game state.
The network module40of the client computing platform14may be configured to maintain a connection to the game server12. The game server12may host a game space in which the online game takes place. The network module40may be configured to receive a game state from the game server12. The network module40may be configured to receive game logic from the game server12. The game state and/or the game logic may be received from the game server at predetermined time intervals, where the predetermined time intervals may be set by the game, set by the user, set by administrators of the game, and/or set in other ways. The network module40may be configured to communicate information from the client computing platform14to the game server12as well.
The offline play module42may be configured to store, at the game state repository32, a game state received from the game server12and store, at the game logic repository34, game logic received from the game server12. Responsive to the client computing platform14disconnecting from the game server12, the offline play module42may be configured to maintain an expression of the game space in an offline mode at the client computing platform14to facilitate continued participation by the first user in the online game while the client computing platform14is disconnected from the game server12.
In some implementations, the offline play module42may be configured to receive instructions from the first user via the client computing platform14for one or more actions to be taken by the first set of virtual entities in the game space. The one or more actions may cause the first set of virtual entities to interact with the game space. The offline play module42may be configured to execute the one or more actions in the online game based on the received instructions such that the first set of virtual entities interact with the game space stored in the games space repository32, and such that an outcome of the one or more actions is dictated based on the game logic stored in the game logic repository34. When a connection is re-established with the game server12, the offline play module42may be configured to send the one or more actions to the game server12.
In some implementations, an action may comprise a purchase of one or more virtual items, an interaction between the first set of virtual entities and the second set of virtual entities, and/or other action in the online game. An interaction between the first set of virtual entities and the second set of virtual entities may comprise one or more of: engaging in a battle with one or more of the second set of virtual entities, crossing into territory associated with one or more of the second set of virtual entities, joining an alliance with one or more of the second set of virtual entities, meeting with one or more of the second set of virtual entities, and/or other interaction between the first set of virtual entities and the second set of virtual entities.
The verification module44may be configured to verify the one or more executed actions. In some implementations, the verification module44may verify the one or more executed actions by sending the one or more executed actions to the game server12, and receiving, from the game server12, verification information related to a first executed action of the one or more actions. The verification information may comprise a request for confirmation of the first executed action, an indication that the first executed action is not valid, and/or other information related to the verification of the first executed action. The verification module44may communicate the verification information to the user via, for example, an interface of the client computing platform14. When the verification information comprises a request for confirmation, the verification module44may be configured to receive a response from the user via, for example, an interface of the client computing platform14. When the verification module44receives a response regarding confirmation, the verification module44may communicate that response to the game server12.
In some implementations, the verification module44may verify the one or more executed actions by receiving, from the game server12, an updated game state and/or updated game logic. In these implementations, the verification module28may determine whether the first executed action may be verified. For example, the verification module28may determine whether the action could have occurred based on the updated game state and/or updated game logic received from the game server12.
In some implementations, the verification module44may determine whether the one or more executed actions affect one or more virtual entities associated with users other than the user that executed the first action. When the first executed action affects only the one or more virtual entities associated with the user that executed the first action, the verification module44may determine whether the first executed action could have occurred based on the updated game state. For example, the first executed action may be purchase of a virtual item, sending a request for a relationship to one or more entities associated with another user, changing locations in the virtual space, changing an avatar of the user, and/or other actions that affect only the user that executed the first action. In some implementations, the verification module44may determine whether the first executed action could have occurred based on the updated game state and updated game logic.
When the one or more executed actions affect one or more virtual entities associated with users other than the user that executed the first action, the verification module44may determine whether the one or more executed actions could have occurred based on the information in the updated game state associated with the affected sets of one or more virtual entities. The verification module44may check the updated game state and/or updated game logic to determine if the first executed action may be verified. For example, the verification module44may perform a trial execution of the first executed action to determine whether a result of the first executed action would be identical if it were executed using the updated game state and updated game logic. During the trial execution, the game state stored at the client computing platform14may not be changed.
When the results of the first executed action and the trial execution are identical, the verification module44may verify the first executed action as valid. When the results are not identical, the verification module44may find the first executed action to be invalid. For example, the first executed action of the user may comprise an attack and/or defeat of the city of a second user based on game state and game logic stored at the client computing platform14when the client computing platform14was offline and not connected to the game server12. If the second user increased security when the client computing platform14was offline, the first executed action would be determined to be not valid because a result of the first executed action may be different.
In some implementations, the updated game logic used to determine whether the first executed action and the trial execution are identical may be different from the game logic stored at the client computing platform14when the client computing platform14was offline. In some implementations, when the results of the first executed action and the trial execution are identical, but the updated game logic and the game logic that had been stored at the client computing platform14are different, the first executed action may be determined to be invalid.
Responsive to the determination of whether the action could occur, the verification module44may determine whether the first executed action was valid or invalid. In some implementations, the verification module44may communicate to the user whether the first executed action was valid or invalid via an interface of the client computing platform14. In some implementations, when the verification module44determines that the first executed action is valid, the verification action44may communicate, via an interface of the client computing platform14, a request for confirmation of the first executed action. For example, the verification module44may request confirmation when the first executed action comprises a purchase of virtual items, a change of avatar, and/or other action that involves only one or more virtual entities of the user that executed the first action.
The verification module44may communicate whether the first executed action was valid or invalid to the game server12. When confirmation of the first executed action is requested, the verification module44may communicate to the game server12that confirmation was received and the response to the confirmation.
The game server12, client computing platforms14, and/or external resources may be operatively linked via one or more electronic communication links. For example, such electronic communication links may be established, at least in part, via a network such as the Internet and/or other networks. It will be appreciated that this is not intended to be limiting, and that the scope of this disclosure includes implementations in which game servers12, client computing platforms14, and/or external resources may be operatively linked via some other communication media.
Game server12may include electronic storage30, one or more processors16, and/or other components. Game server12may include communication lines, or ports to enable the exchange of information with a network46and/or other computing platforms14. Illustration of game server12inFIG. 1is not intended to be limiting. Game server12may include a plurality of hardware, software, and/or firmware components operating together to provide the functionality attributed herein to game server12. For example, game server12may be implemented by a cloud of computing platforms operating together as game server12.
Electronic storage30may comprise non-transitory storage media that electronically stores information. The electronic storage media of electronic storage30may include one or both of system storage that is provided integrally (i.e., substantially non-removable) with game server12and/or removable storage that is removably connectable to game server12via, for example, a port (e.g., a USB port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). Electronic storage30may include one or more of optically readable storage media (e.g., optical disks, etc.), magnetically readable storage media (e.g., magnetic tape, magnetic hard drive, floppy drive, etc.), electrical charge-based storage media (e.g., EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.), and/or other electronically readable storage media. Electronic storage30may include one or more virtual storage resources (e.g., cloud storage, a virtual private network, and/or other virtual storage resources). Electronic storage30may store software algorithms, information determined by processor16, information received from game server12, information received from client computing platforms14, and/or other information that enables game server12to function as described herein.
Processor(s)16is configured to provide information processing capabilities in game server12. As such, processor16may include one or more of a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information. Although processor16is shown inFIG. 1as a single entity, this is for illustrative purposes only. In some implementations, processor16may include a plurality of processing units. These processing units may be physically located within the same device, or processor16may represent processing functionality of a plurality of devices operating in coordination. The processor16may be configured to execute modules18,20,22,24,26and28. Processor16may be configured to execute modules18,20,22,24,26and28by software; hardware; firmware; some combination of software, hardware, and/or firmware; and/or other mechanisms for configuring processing capabilities on processor16. As used herein, the term “module” may refer to any component or set of components that perform the functionality attributed to the module. This may include one or more physical processors during execution of processor readable instructions, the processor readable instructions, circuitry, hardware, storage media, or any other components.
It should be appreciated that although modules18,20,22,24,26and28are illustrated inFIG. 1as being implemented within a single processing unit, in implementations in which processor includes multiple processing units, one or more of modules18,20,22,24,26and28may be implemented remotely from the other modules. The description of the functionality provided by the different modules18,20,22,24,26and28described below is for illustrative purposes, and is not intended to be limiting, as any of modules18,20,22,24,26and28may provide more or less functionality than is described. For example, one or more of modules18,20,22,24,26and28may be eliminated, and some or all of its functionality may be provided by other ones of modules18,20,22,24,26and28. As another example, processor16may be configured to execute one or more additional modules that may perform some or all of the functionality attributed below to one of modules18,20,22,24,26and28.
A given client computing platform14may include one or more processors configured to execute computer program modules. The computer program modules may be configured to enable an expert or user associated with the given client computing platform14to interface with system10, game server12, and/or external resources, and/or provide other functionality attributed herein to client computing platforms14. By way of non-limiting example, the given client computing platform14may include one or more of a desktop computer, a laptop computer, a handheld computer, a tablet computing platform, a NetBook, a Smartphone, a gaming console, and/or other computing platforms.
Game state repository32may comprise non-transitory storage media that electronically stores information. The electronic storage media of game state repository32may include one or both of system storage that is provided integrally (i.e., substantially non-removable) with client computing platform14and/or removable storage that is removably connectable to client computing platform14via, for example, a port (e.g., a USB port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). Game state repository32may include one or more of optically readable storage media (e.g., optical disks, etc.), magnetically readable storage media (e.g., magnetic tape, magnetic hard drive, floppy drive, etc.), electrical charge-based storage media (e.g., EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.), and/or other electronically readable storage media. Game state repository32may include one or more virtual storage resources (e.g., cloud storage, a virtual private network, and/or other virtual storage resources). Game state repository32may store software algorithms, information determined by processor38, information received from game server12, information received from other client computing platforms14, and/or other information that enables client computing platform14to function as described herein.
Game logic repository34may comprise non-transitory storage media that electronically stores information. The electronic storage media of game logic repository34may include one or both of system storage that is provided integrally (i.e., substantially non-removable) with client computing platform14and/or removable storage that is removably connectable to client computing platform14via, for example, a port (e.g., a USB port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). Game logic repository34may include one or more of optically readable storage media (e.g., optical disks, etc.), magnetically readable storage media (e.g., magnetic tape, magnetic hard drive, floppy drive, etc.), electrical charge-based storage media (e.g., EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.), and/or other electronically readable storage media. Game logic repository34may include one or more virtual storage resources (e.g., cloud storage, a virtual private network, and/or other virtual storage resources). Game logic repository34may store software algorithms, information determined by processor38, information received from game server12, information received from other client computing platforms14, and/or other information that enables client computing platform14to function as described herein.
Electronic storage36may comprise non-transitory storage media that electronically stores information. The electronic storage media of electronic storage36may include one or both of system storage that is provided integrally (i.e., substantially non-removable) with client computing platform14and/or removable storage that is removably connectable to client computing platform14via, for example, a port (e.g., a USB port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). Electronic storage36may include one or more of optically readable storage media (e.g., optical disks, etc.), magnetically readable storage media (e.g., magnetic tape, magnetic hard drive, floppy drive, etc.), electrical charge-based storage media (e.g., EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.), and/or other electronically readable storage media. Electronic storage36may include one or more virtual storage resources (e.g., cloud storage, a virtual private network, and/or other virtual storage resources). Electronic storage36may store software algorithms, information determined by processor38, information received from game server12, information received from other client computing platforms14, and/or other information that enables client computing platform14to function as described herein.
In some implementations, electronic storage36may comprise one or more of game state repository32, game logic repository34, and/or other repositories. In some implementations, game state repository32and game logic repository34may reside in a single storage media. Other implementations of game state repository32, game logic repository34, and electronic storage36may be used as well.
Processor(s)38is configured to provide information processing capabilities in client computing platform14. As such, processor38may include one or more of a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information. Although processor38is shown inFIG. 1as a single entity, this is for illustrative purposes only. In some implementations, processor38may include a plurality of processing units. These processing units may be physically located within the same device, or processor38may represent processing functionality of a plurality of devices operating in coordination. The processor38may be configured to execute modules40,42, and44. Processor38may be configured to execute modules40,42, and44by software; hardware; firmware; some combination of software, hardware, and/or firmware; and/or other mechanisms for configuring processing capabilities on processor38. As used herein, the term “module” may refer to any component or set of components that perform the functionality attributed to the module. This may include one or more physical processors during execution of processor readable instructions, the processor readable instructions, circuitry, hardware, storage media, or any other components.
It should be appreciated that although modules40,42, and44are illustrated inFIG. 1as being implemented within a single processing unit, in implementations in which processor includes multiple processing units, one or more of modules40,42, and44may be implemented remotely from the other modules. The description of the functionality provided by the different modules40,42, and44described below is for illustrative purposes, and is not intended to be limiting, as any of modules40,42, and44may provide more or less functionality than is described. For example, one or more of modules40,42, and44may be eliminated, and some or all of its functionality may be provided by other ones of modules40,42, and44. As another example, processor38may be configured to execute one or more additional modules that may perform some or all of the functionality attributed below to one of modules40,42, and44
FIG. 2illustrates a method48of providing offline asynchronous user activity beyond the playing of a discrete game in a player versus player online game. The operations of method48presented below are intended to be illustrative. In some embodiments, method48may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of method48are illustrated inFIG. 2and described below is not intended to be limiting.
In some embodiments, method48may be implemented in one or more processing devices (e.g., a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information). The one or more processing devices may include one or more devices executing some or all of the operations of method48in response to instructions stored electronically on an electronic storage medium. The one or more processing devices may include one or more devices configured through hardware, firmware, and/or software to be specifically designed for execution of one or more of the operations of method48.
At an operation50, the client computing platform14may maintain a connection to the game server12. The game server12may host a game space in which the online game takes place. In some implementations, operation50may be performed by a network module the same as or similar to network module44(shown inFIG. 1and described above).
In an operation52, the client computing platform14may store, at the game state repository32on the client computing platform14, a game state of the game space from the game server12. In some implementations, operation52may be performed by a network module the same as or similar to network module44(shown inFIG. 1and described above).
In an operation54, the client computing platform14may store, at the game logic repository34on the client computing platform14, a game logic for the online game from the game server12. In some implementations, operation54may be performed by a network module the same as or similar to network module44(shown inFIG. 1and described above).
In an operation56, the client computing platform14may disconnect from the game server12. In some implementations, operation56may be performed by a network module the same as or similar to network module44(shown inFIG. 1and described above).
In an operation58, responsive to disconnecting from the game server12, the client computing platform14may maintain an expression of the game space in an offline mode at the client computing platform14to facilitate continued participation by the first user in the online game while the client computing platform14is disconnected from the game server12. In some implementations, operation58may be performed by a network module the same as or similar to offline play module42(shown inFIG. 1and described above).
In an operation60, the client computing platform14may receive instructions from the first user via the client computing platform14for one or more actions to be taken by the first set of virtual entities in the game space, wherein the one or more actions cause the first set of virtual entities to interact with the second set of virtual entities. In some implementations, operation50may be performed by a network module the same as or similar to offline play module42(shown inFIG. 1and described above).
In an operation62, the client computing platform14may execute the one or more actions in the online game based on the received instructions such that the first set of virtual entities interact with the second set of virtual entities, and such that an outcome of the one or more actions is dictated based on the game logic. In some implementations, operation50may be performed by a network module the same as or similar to offline play module42(shown inFIG. 1and described above).
In an operation64, the client computing platform14may establish a connection with the game server12. In some implementations, operation64may be performed by a network module the same as or similar to network module44(shown inFIG. 1and described above).
In an operation66, the client computing platform14may verify the one or more executed actions. In some implementations, operation66may be performed by a network module the same as or similar to verification module48(shown inFIG. 1and described above).
Although the present technology has been described in detail for the purpose of illustration based on what is currently considered to be the most practical and preferred implementations, it is to be understood that such detail is solely for that purpose and that the technology is not limited to the disclosed implementations, but, on the contrary, is intended to cover modifications and equivalent arrangements that are within the spirit and scope of the appended claims. For example, it is to be understood that the present technology contemplates that, to the extent possible, one or more features of any implementation can be combined with one or more features of any other implementation.
Claims
- A computer implemented method of providing offline asynchronous user activity in a player versus player online game, the method being implemented by a client computing platform that includes one or more physical computer processors configured to execute computer program instructions, the method comprising: maintaining, by the client computing platform, a connection to a game server, the game server hosting a game space in which the online game takes place, the client computing platform being associated with a first user;storing, at a game state repository on the client computing platform, a game state of the game space, the game state including information related to a first set of one or more virtual entities in the game space associated with the first user and information related to a second set of one or more virtual entities in the game space associated with a second user;storing, at a game logic repository on the client computing platform, game logic for the online game, the game logic being based on the game state;disconnecting, by the client computing platform, from the game server;responsive to disconnecting from the game server: maintaining an expression of the game space in an offline mode at the client computing platform to facilitate continued participation by the first user in the online game while the client computing platform is disconnected from the game server;receiving instructions from the first user via the client computing platform for one or more actions to be taken by the first set of virtual entities in the game space, wherein the one or more actions cause the first set of virtual entities to interact with the game space;and executing the one or more actions in the online game based on the received instructions such that the first set of virtual entities interact with the game space, and such that an outcome of the one or more actions is dictated based on the game logic;establishing a connection, by the client computing platform, with the game server;and verifying the one or more executed actions, wherein verifying the one or more executed actions comprises: determining whether the one or more executed actions affects the second set of one or more virtual entities;and when the one or more executed actions affects the second set of one or more virtual entities, determining whether the one or more executed actions could have occurred based on the information in the game state associated with the second set of one or more virtual entities.
- The method of claim 1 , wherein verifying the one or more executed actions comprises: sending the one or more executed actions to the game server;and receiving, from the game server, information related to a first executed action of the one or more actions.
- The method of claim 2 , wherein the information comprises a request for confirmation of the first executed action.
- The method of claim 2 , wherein the information comprises an indication that the first executed action is not valid.
- The method of claim 1 , wherein an action comprises one or more of: a purchase one or more virtual items or an interaction between the first set of virtual entities and the second set of virtual entities.
- The method of claim 5 , wherein an interaction between the first set of virtual entities and the second set of virtual entities comprises one or more of: engaging in a battle with one or more of the second set of virtual entities, crossing into territory associated with one or more of the second set of virtual entities, joining an alliance with one or more of the second set of virtual entities, or meeting with one or more of the second set of virtual entities.
- The method of claim 1 , wherein the game logic comprises a decision tree comprising one or more of: information relating to a plurality of actions available to the first user based on the game state, information relating to a plurality of consequences associated with the plurality of respective actions available and based on the game state, or a plurality of requirements associated with the plurality of respective actions and based on the game state.
- A client computing device configured to provide offline asynchronous user activity in a player versus player online game, the device comprising: a game state repository configured to store a game state of the game space, the game state including information related to a first set of one or more virtual entities in the game space associated with the first user and information related to a second set of one or more virtual entities in the game space associated with a second user;a game logic repository configured to store game logic for the online game, the game logic being based on the game state;and one or more physical processors configured by machine readable instructions to: maintain a connection to a game server, the game server hosting a game space in which the online game takes place, the client computing platform being associated with the first user;store, at the game state repository, a game state received from the game server;store, at the game logic repository, game logic received from the game server;disconnect from the game server;responsive to disconnecting from the game server: maintain an expression of the game space in an offline mode at the client computing platform to facilitate continued participation by the first user in the online game while the client computing platform is disconnected from the game server;receive instructions from the first user via the client computing platform for one or more actions to be taken by the first set of virtual entities in the game space, wherein the one or more actions cause the first set of virtual entities to interact with the game space;and execute the one or more actions in the online game based on the received instructions such that the first set of virtual entities interact with the game space, and such that an outcome of the one or more actions is dictated based on the game logic;and establish a connection with the game server;and verify the one or more executed actions, wherein verifying the one or more executed actions comprises: receiving, from the game server, an updated game state;determining whether the one or more executed actions affects the second set of one or more virtual entities;and when the one or more executed actions affects the second set of one or more virtual entities, determining whether the one or more executed actions could have occurred based on the information in the updated game state associated with the second set of one or more virtual entities.
- The device of claim 8 , wherein verifying the one or more executed actions includes: sending the one or more executed actions to the game server;and receiving, from the game server, information related to a first executed action of the one or more actions.
- The device of claim 9 , wherein the information comprises a request for confirmation of the first executed action.
- The device of claim 9 , wherein the information comprises an indication that the first executed action is not valid.
- The device of claim 8 , wherein an action comprises one or more of: a purchase one or more virtual items or an interaction between the first set of virtual entities and the second set of virtual entities.
- The device of claim 12 , wherein an interaction between the first set of virtual entities and the second set of virtual entities comprises one or more of: engaging in a battle with one or more of the second set of virtual entities, crossing into territory associated with one or more of the second set of virtual entities, joining an alliance with one or more of the second set of virtual entities, or meeting with one or more of the second set of virtual entities.
- The device of claim 8 , wherein the game logic comprises a decision tree comprising one or more of: information relating to a plurality of actions available to the first user based on the game state, information relating to a plurality of consequences associated with the plurality of respective actions available and based on the game state, or a plurality of requirements associated with the plurality of respective actions and based on the game state.
- A non-transitory electronic storage media storing information related to providing offline asynchronous user activity in a player versus player online game, the stored information comprising: a memory configured to store information related to the one or more players of an online game;a game state repository configured to store a game state of the game space, the game state including information related to a first set of one or more virtual entities in the game space associated with a first user and information related to a second set of one or more virtual entities in the game space associated with a second user;a game logic repository configured to store game logic for the online game, the game logic being based on the game state;and instructions configured to cause a client computing platform to: maintain a connection to a game server, the game server hosting a game space in which the online game takes place, the client computing platform being associated with a first user;store at the game state repository on the client computing platform, a game state of the game space;store, at a game logic repository on the client computing platform, game logic for the online game;disconnect, by the client computing platform, from the game server;responsive to disconnecting from the game server: maintain an expression of the game space in an offline mode at the client computing platform to facilitate continued participation by the first user in the online game while the client computing platform is disconnected from the game server;receive instructions from the first user via the client computing platform for one or more actions to be taken by the first set of virtual entities in the game space, wherein the one or more actions cause the first set of virtual entities to interact with the game space;and execute the one or more actions in the online game based on the received instructions such that the first set of virtual entities interact with the game space, and such that an outcome of the one or more actions is dictated based on the game logic;establish a connection, by the client computing platform, with the game server;and verify the one or more executed actions, wherein verifying the one or more executed actions comprises: determining whether the one or more executed actions affects the second set of one or more virtual entities;and when the one or more executed actions affects the second set of one or more virtual entities, determining whether the one or more executed actions could have occurred based on the information in the game state associated with the second set of one or more virtual entities.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.