U.S. Pat. No. 8,753,183
TECHNIQUES TO AUTOMATICALLY PROVIDE ASSISTANCE FOR ELECTRONIC GAMES
AssigneeCNET Media Inc
Issue DateNovember 3, 2011
Illustrative Figure
Abstract
Techniques to automatically provide assistance for electronic games are described. An apparatus may comprise a game strategy application arranged to receive as input game telemetry information representing gameplay of an electronic video game on a client device. The game strategy application may process the game telemetry information to determine whether a player of the electronic video game potentially needs assistance, and if so, automatically retrieve appropriate game strategy information from a local or remote datastore. The game strategy application may then send the retrieved game strategy information to the same or different client device. Other embodiments are described and claimed.
Description
DETAILED DESCRIPTION Various embodiments are generally directed to electronic games. As used herein, the term “electronic game” refers to any game that employs electronics to create an interactive system with which a player can play at least a portion of the game. There are two general categories for electronic games. The first category includes electronic games that are completely played on some form of an electronic device or platform. Examples may include without limitation electronic video games, electronic audio games, electronic tactile games, electronic board games, handheld electronic games, specialized electronic games (e.g., pinball machines, slot machines, electro-mechanical arcade games, etc.), online games, and so forth. The second category includes electronic games that are partially played on some form of an electronic device or platform. In other words, an entire game does not necessarily need to be played on an electronic device, but rather utilizes an electronic device to play a portion of the game. For example, the second category may include live entertainment shows (e.g., television shows, reality television shows, game shows, award shows, etc.) with one or more contestants playing a game with an electronic component to play a portion of the game. Assume a television reality show offers a game with two sets of players. A first set of players may comprise reality television show contestants physically playing a game at a main geographic location. A second set of players may comprise viewers watching the reality television show and playing the game remotely via an electronic device and a communications network from different geographic locations from the main geographic location. A viewer may offer instructions to a contestant, vote on player activities or a contest outcome, play a companion game, and so forth. These are merely a few examples of first and second categories for electronic games, ...
DETAILED DESCRIPTION
Various embodiments are generally directed to electronic games. As used herein, the term “electronic game” refers to any game that employs electronics to create an interactive system with which a player can play at least a portion of the game. There are two general categories for electronic games. The first category includes electronic games that are completely played on some form of an electronic device or platform. Examples may include without limitation electronic video games, electronic audio games, electronic tactile games, electronic board games, handheld electronic games, specialized electronic games (e.g., pinball machines, slot machines, electro-mechanical arcade games, etc.), online games, and so forth. The second category includes electronic games that are partially played on some form of an electronic device or platform. In other words, an entire game does not necessarily need to be played on an electronic device, but rather utilizes an electronic device to play a portion of the game. For example, the second category may include live entertainment shows (e.g., television shows, reality television shows, game shows, award shows, etc.) with one or more contestants playing a game with an electronic component to play a portion of the game. Assume a television reality show offers a game with two sets of players. A first set of players may comprise reality television show contestants physically playing a game at a main geographic location. A second set of players may comprise viewers watching the reality television show and playing the game remotely via an electronic device and a communications network from different geographic locations from the main geographic location. A viewer may offer instructions to a contestant, vote on player activities or a contest outcome, play a companion game, and so forth. These are merely a few examples of first and second categories for electronic games, and other implementations exist as well. The embodiments are not limited in this context.
Some embodiments are particularly directed to techniques for automatically providing assistance for electronic video games. In one embodiment, game strategy information may be provided to a player of an electronic game on a different device from the one used to actually play the electronic game. In one embodiment, game strategy information may be provided on a same device as the one used to play the electronic game. Embodiments are not limited in this context.
In one embodiment, for example, a game strategy system may comprise a game strategy application arranged to receive as input game telemetry information representing gameplay of an electronic video game on a first client device. An example of the first client device may comprise a game system. The game strategy application may process the game telemetry information to determine whether a player of the electronic video game potentially needs assistance, and if so, automatically retrieve appropriate game strategy information from a local or remote datastore. The game strategy application may then send the retrieved game strategy information to a second client device. An example of the second client device may comprise a mobile device, such as a smart phone or tablet computer. The player may read the game strategy information from the second client device, and use the game strategy information to assist in gameplay of the electronic video game on the first client device. This embodiment significantly reduces an amount of time a player needs to leave a gaming context to acquire help information.
In one embodiment, for example, a game strategy system may comprise a game strategy application arranged to receive as input game telemetry information representing gameplay of an electronic video game on a game system. The game system may comprise, for example, a dedicated game system or a computer capable of playing different electronic video games. The game strategy application may process the game telemetry information to determine whether a player of the electronic video game potentially needs assistance, and if so, automatically retrieve appropriate game strategy information from a server. The game strategy information may include game strategy information from various intrinsic sources, such as native game strategy information provided by a manufacturer of the game system, a game system service provider, or a developer of the electronic video game. The game strategy information may also include game strategy information from various extrinsic sources, such as external game strategy information generated by third-parties or hosted by a third-party provider. The game strategy application may then send the retrieved game strategy information to the game system. The player may read the game strategy information from a graphical user interface (GUI) view or GUI element overlaid on a game screen for the game system, and use the game strategy information to assist in gameplay of the electronic video game on the first client device. The player may toggle assistance features on or off during gameplay as desired. This embodiment effectively eliminates the need for a player to leave a gaming context to acquire third-party help information.
Automatically presenting game strategy information to assist a player of an electronic video game in gameplay has several advantages over conventional solutions. For instance, conventional solutions typically require a disruption in gameplay. As previously described, a player may need to pause a game, switch to a computer to perform an Internet search for help files, and resume gameplay once a solution is found. Such disruptions force a player to leave a gaming context for potentially extended periods of time, and shift focus from an entertainment experience to one of a work experience as the player enters information acquisition mode outside of the gaming context. This degrades a gaming experience for the player. Automatically providing game strategy information on an as needed basis while a player is engaging in gameplay reduces or eliminates such disruptions. In one embodiment, a player may remain in a gaming context when receiving game strategy information. In another embodiment, a player may remain in a gaming context on a game system, briefly shift focus to check a nearby mobile device for game strategy information, and quickly shift back to the gaming context to implement the game strategy information. As a result, a player may have an improved gaming experience.
Reference is now made to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding thereof. It may be evident, however, that the novel embodiments can be practiced without these specific details. In other instances, well known structures and devices are shown in block diagram form in order to facilitate a description thereof. The intention is to cover all modifications, equivalents, and alternatives consistent with the claimed subject matter.
FIG. 1illustrates a block diagram for a game strategy system100. In one embodiment, the game strategy system100may comprise a computer-implemented system having a game strategy application120comprising one or more components122-a. Although the system100shown inFIG. 1has a limited number of elements in a certain topology, it may be appreciated that the system100may include more or less elements in alternate topologies as desired for a given implementation.
It is worthy to note that “a” and “b” and “c” and similar designators as used herein are intended to be variables representing any positive integer. Thus, for example, if an implementation sets a value for a=5, then a complete set of components122-amay include components122-1,122-2,122-3,122-4and122-5. The embodiments are not limited in this context.
The system100may comprise the game strategy application120. The game strategy application120may be generally arranged to automatically manage game strategy information for one or more electronic games. The game strategy application120may receive as input game telemetry information110representing gameplay of an electronic video game. The game strategy application120may process the game telemetry information110to determine whether a player of the electronic video game potentially needs assistance, and if so, retrieve appropriate game strategy information130representing assistance information for the electronic video game from a local datastore124or a remote datastore (e.g., a network server). The game strategy application120may then send as output the game strategy information130to a client device for use by the player in playing the electronic video game.
Game telemetry information110may generally comprise any information or metadata available from one or more network devices accessible from the game strategy system100and useful in determining whether a player needs assistance in playing an electronic game or a type of assistance needed in playing an electronic game. Examples of game telemetry information110may include without limitation player information, client device information owned or operated by a player, input/output (I/O) device information used with a client device of a player, electronic game information, electronic game version information, electronic game developer information, game event information for an electronic game, game system information, game system manufacturer information, game service information, game service provider information, communications information, network information, and other similar types of information. The embodiments are not limited in this context.
Game strategy information130may generally comprise any information or metadata available from one or more network devices accessible from the game strategy system100and useful in providing assistance in playing an electronic game. Examples of game strategy information130may include without limitation multimedia help files, frequently asked question (FAQ) files, question and answer (Q&A) files, developer game secret files, cheats, cheat files, cheat codes, hints, strategies, advice, walkthroughs, and other similar types of information. The embodiments are not limited in this context.
Game strategy information130may be sourced or received from various different types of sources, including intrinsic sources and extrinsic sources. Intrinsic sources may refer to sources owned or provided by a manufacturer of a game system, a game system services provider or an electronic game developer. For instance, when an entity such as an enterprise business sells a game system and also provides sources of help information, such sources would be considered intrinsic sources since the sources are tightly integrated with the game system. Extrinsic sources may refer to sources not owned or provided by a manufacturer of a game system, a game system services provider or an electronic game developer, such as sources independently owned or provided by third-party providers. For instance, when a first entity such as an enterprise business sells a game system and a second entity such as a third-party enterprise business provides sources of help information, such sources would be considered extrinsic sources since the sources are not integrated with the game system. The embodiments are not limited in this context.
In the illustrated embodiment shown inFIG. 1, the game strategy application120may include a game monitor component122-1, a game strategy component122-2, and a game management component122-3. It may be appreciated that more or less components122-amay be used for a given implementation. The embodiments are not limited in this context.
The application120may comprise a component122-1. The game monitor component122-1may be generally arranged to monitor game telemetry information110arriving from one or more external information sources. The game telemetry information110may be real-time information, delayed information, or historical information. Real-time information is desired as it allows for more timely assistance decisions, although delayed and historical information may be used as well. The game monitor component122-1may monitor game telemetry information on a periodic, continuous or on-demand basis. The game monitor component122-1may analyze received game telemetry information110to determine whether a player needs assistance in playing an electronic game. When assistance is needed, the game monitor component122-1may store an indicator in an event queue, send a request for game strategy information130directly to the game strategy component122-2, or some combination of both.
The application120may comprise a game strategy component122-2. The game strategy component122-2may be generally arranged to locate, retrieve, generate, or otherwise collect game strategy information130. The game strategy component122-2may search the datastore124for game strategy information130. Additionally or alternatively, the game strategy component122-2may query and retrieve game strategy information130from a remote datastore implemented by a network server. For instance, the game strategy component122-2(or entire application120) and the game strategy information130may be implemented as part of a cloud-based solution where computing is offered as a service rather than a product, such as part of an application platform infrastructure for a cloud computing model. The game strategy component122-2may then perform any processing needed for the game strategy information130(e.g., formatting, data schema translations, etc.), and output the game strategy information130for delivery to a client device of the player via a network connection.
The application120may comprise a game management component122-3. The game management component122-3may be generally arranged to manage various operations of the game strategy application120. For instance, the game management component122-3may manage subscribe operations to subscribe a player and/or client device to services provided by the game strategy application120. Conversely, the game management component122-3may manage unsubscribe operations to unsubscribe a player and/or client device from services provided by the game strategy application120. The game management component122-3may further perform player registration operations, player configuration operations, client device registration operations, game registration operations, game service registration operations, notification operations, authentication operations, permission operations, security operations, and various other operations needed for managing various products, features and services offered by the game strategy application120.
In one use scenario, the game monitor component122-1of the game strategy application120may receive as input game telemetry information110representing gameplay of one or more electronic games, such as electronic video games, while played on a first client device. An example of the first client device may comprise a game system owned by the player. The game monitor component122-1may process the game telemetry information110to determine whether a player of the electronic video game needs assistance. When a player needs assistance, the game strategy component122-2may automatically retrieve appropriate game strategy information130for the electronic video game from a local datastore (e.g., datastore124) or a remote datastore (e.g., a network datastore). The game strategy component122-2may then send the retrieved game strategy information130to a second client device. An example of the second client device may comprise a mobile device, such as a smart phone or tablet computer, also owned by the player. The player may read the game strategy information130from the mobile device, and use the game strategy information130to assist in gameplay of the electronic video game on the game system, with minimal disruptions to the gaming experience.
In another use scenario, the game monitor component122-1may receive as input game telemetry information110representing gameplay of an electronic video game on a client device, such as a game system, for example. The game monitor component122-1may process the game telemetry information110to determine whether a player of the electronic video game needs assistance. If so, the game strategy component122-2may programmatically retrieve appropriate game strategy information130from a local datastore (e.g., datastore124) or a remote datastore (e.g., a network datastore). The game strategy component122-2may then send the game strategy information130to the same client device used to play the electronic video game, such as the game system. The player may read the game strategy information130from a GUI view or GUI element overlaid on a game screen for the game system, and the player may use the game strategy information to assist in gameplay of the electronic video game on the client device. The player may toggle assistance features on or off during gameplay on an as needed basis.
FIG. 2illustrates an embodiment of an operating environment200. The operating environment200illustrates a more detailed implementation for a game monitor component122-1of the game strategy application120using a time-based trigger for providing player assistance.
As shown in the operating environment200, the game monitor component122-1may be arranged to monitor one or more game telemetry parameters210-bof the game telemetry information110received by the game strategy application120. The game monitor component122-1may determine whether a player of an electronic video game needs assistance for a game event during gameplay of the electronic video game based on the one or more game telemetry parameters210-b. The game monitor component122-1may generate a game assist indicator220when a player needs assistance.
In one embodiment, for example, the game telemetry parameters210-bmay include a player identifier parameter210-1, a game identifier parameter210-2, a game event parameter210-3, and a game event time parameter210-4. It may be appreciated that more or less parameters210-bmay be used for a given implementation. The embodiments are not limited in this context.
A player identifier parameter210-1may comprise some form of unique identifier for a player. Examples of a player identifier parameter210-1may include without limitation a player name, a player identifier, a screen name, a login identifier, a gamer tag, a gamer account, a player globally unique identifier (GUID), player metadata, and so forth.
A game identifier parameter210-2may comprise a unique identifier for an electronic game, such as an electronic video game, for example. Examples of a game identifier parameter210-2may include without limitation a game name, a game identifier, a game serial number, a game version number, a game service identifier, game badges, game achievements, game awards, a game character, a game genre, a game theme, a game account, game metadata, a game GUID, and so forth.
A game event parameter210-3may comprise a unique identifier for a game event of an electronic video game. A game event may comprise a discrete portion of an electronic game. For an electronic video game, a game event may comprise a game challenge, a game puzzle, a game level, a mini-game, a game mission, a game objective, a game obstacle, and so forth. For example, an adventure game may have a main quest and multiple side quests, with the main quest and each side quest comprising a separate game event. Examples of a game event parameter210-3may include without limitation a game event name, a game event identifier, a game event badge, a game event achievement, a game event award, a game event character, a game event genre, a game event theme, game event metadata, a game event GUID, and so forth.
A game event time parameter210-4may comprise an amount of time associated with a game event of an electronic game. A game timer may be used to generate a game event time parameter210-4to indicate an amount of time a player has played a certain game event. For instance, in a first-person shooter game having a game event of a rescue mission to release hostages from a guarded location, a game event time parameter210-4may measure an amount of time a player has spent trying to accomplish the rescue mission.
The game monitor component122-1may receive a set of one or more game telemetry parameters210-b, and decide whether to provide assistance to a player of an electronic game based on the received set of game telemetry parameters210-b. As a threshold decision, the game monitor component122-1may determine whether a given player desires assistance for a given game. In one embodiment, for example, the game monitor component122-1may receive a player identifier parameter210-1representing some form of a unique identifier for the player, such as a player GUID. The game monitor component122-1may retrieve a player assist parameter215from a player profile214-cassociated with the player identifier parameter210-1. The game monitor component122-1may determine whether to generate a game assist indicator220for the player based on a setting of the player assist parameter215.
By way of example, assume a player desires to have assistance during gameplay of an electronic video game. The player may configure a player assist parameter215to a logical one (or TRUE), using the game management component122-3as described further below, to indicate gameplay assistance. When the game monitor component122-1receives a player identifier parameter210-1identifying the player, the game monitor component122-1may retrieve the player assist parameter215associated with the player identifier parameter210-1from a player profile214-cassociated with the player identifier parameter210-1. The game monitor component122-1may detect that the player assist parameter215has been set to TRUE, and determine to generate a game assist indicator220for the player based on this setting.
Conversely, assume a player does not want any assistance during gameplay of an electronic video game. The player may configure a player assist parameter215to a logical zero (or FALSE), using the game management component122-3as described further below, to indicate gameplay assistance. When the game monitor component122-1receives a player identifier parameter210-1identifying the player, the game monitor component122-1may retrieve the player assist parameter215associated with the player identifier parameter210-1from a player profile214-cassociated with the player identifier parameter210-1. The game monitor component122-1may detect that the player assist parameter215has been set to FALSE, and determine not to generate a game assist indicator220for the player based on this setting.
The player assist parameter215may be implemented to provide further granularity to indicate global assist preferences, game specific assist preferences, game system specific assist preferences, game event specific preferences, game account specific preferences, and so forth. The embodiments are not limited in this context.
In one embodiment, the game monitor component122-1may receive a set of four game telemetry parameters210-bthat include a game identifier parameter210-1, a game identifier parameter210-2, a game event parameter210-3, and a game event time parameter210-4. The game monitor component122-1may retrieve a game event threshold parameter217for a game event identified by the game event parameter210-3of an electronic video game identified by the game identifier parameter210-2from a game profile216-dassociated with the electronic video game. The game monitor component122-1may compare the game event time parameter210-4, representing an amount of time a player has played the game event, with the game event threshold parameter217, representing a threshold amount of time a player is allowed to play the game event before providing assistance, to form comparison results. The game monitor component122-1may generate a game assist indicator220based on the comparison results. For instance, if the game event time parameter210-4is greater than or equal to the game event threshold parameter217, the game monitor component122-1may generate a game assist indicator220. However, if the game event time parameter210-4is less than the game event threshold parameter217, the game monitor component122-1may not generate a game assist indicator220.
In those cases where the game monitor component122-1decides to generate a game assist indicator220, the game monitor component122-1may store the game assist indicator220and associated game telemetry parameters210-bas a game assist event218-ein an event queue219of the datastore124for processing by other components of the game strategy application120, such as the game strategy component122-2, for example. It may be appreciated that although the game monitor component122-1and the game strategy component122-2are described using a datastore processing implementation by way of example and not limitation, other notification and processing solutions could be used as well. For instance, the game monitor component122-1may send a notification message or signal to the game strategy component122-2, or output the game assist indicator220and associated game telemetry parameters210-bdirectly to the game strategy component122-2for processing. In another example, the game monitor component122-1and the game strategy component122-2may be implemented using a distributed architecture, such as a Gearman application framework, where the game monitor component122-1operates as a client to originate game assist indicators220, which are then sent to a jobs server for assignment to one or more worker machines each implementing an instance of the game strategy component122-2. This may be desirable for large-scale commercial solutions where load balancing is a design factor. Other solutions may be implemented as well, and the embodiments are not limited in this context.
In addition to a game assist indicator220and associated game telemetry parameters210-b, the game monitor component122-1may store other information as well for a game assist event218-e. For instance, the game monitor component122-1may assign a priority level to a game assist indicator220for priority processing from the event queue219, a latency value to a game assist indicator220for time-based processing from the event queue219, or other special processing instructions for a game assist indicator. The embodiments are not limited in this context.
FIG. 3illustrates an embodiment of an operating environment300. The operating environment300illustrates a more detailed implementation for a game monitor component122-1of the game strategy application120using a request-based trigger for providing player assistance.
The operating environment300is similar to the operating environment200as described with reference toFIG. 2. In the illustrated embodiment shown inFIG. 3, however, the operating environment300receives a game assist parameter210-5in addition to, or alternatively of, the game time parameter210-4. The game assist parameter210-5may represent an explicit game assist request from a player associated with a game event of an electronic game. For instance, a player may be playing an electronic game and desire assistance. The player may press a button on a client device, such as a controller of a game system or mobile device, to activate a control directive to generate a game assist request for communication to the game strategy application120via a network. The game assist request may include a game assist parameter210-5. Additionally or alternatively, the game assist request may further include information suitable for one or more game telemetry parameters210-1to210-4.
In this case, the game monitor component122-1may receive a player identifier parameter210-1, a game identifier parameter210-2, a game event parameter210-3, and a game assist parameter210-5. The game monitor component122-1may generate a game assist indicator220for the game event of the electronic game in response to the game assist parameter210-5. This may include processing the player identifier parameter210-1, the game identifier parameter210-2, and the game event parameter210-3, as previously described with reference to operating environment200. In some cases, it may not be necessary to examine the player profile214-cto evaluate a player assist parameter215since the game assist parameter210-5provides explicit confirmation that a player needs assistance. In cases of conflict, the game monitor component122-1may select to follow the game assist parameter210-5as an indication of a current intention of a player.
FIG. 4illustrates an embodiment of an operating environment400. The operating environment400illustrates a more detailed implementation for a game strategy component122-2of the game strategy application120to process game assist indicators220for game assist events218-estored in the event queue219.
As previously described with reference to the operating environment200, in those cases where the game monitor component122-1decides to generate a game assist indicator220, the game monitor component122-1may store the game assist indicator220and associated game telemetry parameters210-bas a game assist event218-ein an event queue219of the datastore124for processing by the game strategy component122-2.
The game strategy component122-2may retrieve game assist events218-efrom the event queue219. The game strategy component122-2may retrieve game assist events218-esequentially from the event queue219in a first-in-first-out (FIFO) manner or a last-in-first-out (LIFO) manner. The game strategy component122-2may also retrieve game assist events218-efrom the event queue219on a priority basis based on priority levels assigned by the game monitor component122-1. Other retrieval techniques may be used as well, including interrupt techniques, parallel processing techniques, random access techniques, latency constraints, special processing instructions, and so forth. The embodiments are not limited in this context.
The game strategy component122-2may retrieve one or more game assist files410-ffor the game assist events218-e. The game assist files410-fmay comprise discrete portions of game strategy information130. Examples of game assist files410-fmay include without limitation multimedia help files, frequently asked question (FAQ) files, question and answer (Q&A) files, developer game secret files, cheats, cheat files, cheat codes, hints, strategies, advice, walkthroughs, and other similar types of information. In the illustrated embodiment shown inFIG. 4, the game strategy component122-2may retrieve or generate one or more videos files410-1, audio files410-2, text files410-3, and sensory files410-4. A sensory file410-4may comprise help information formatted for a particular sensory modality of a human being, such as tactile feedback for a touch sense, olfactory feedback for a smell sense, flavor feedback for a taste sense, and so forth. The embodiments are not limited in this context.
The game strategy component122-2may retrieve or generate a set of game assist files410-fcustomized for a specific game assist event218-e. For example, a game parameter210-2may identify a specific game, and the game strategy component122-2may retrieve or generate a set of game assist files410-fcustomized for that specific game. In another example, a game event parameter210-3may identify a specific game event, and the game strategy component122-2may retrieve or generate a set of game assist files410-fcustomized for that specific game event. In yet another example, a game assist parameter210-5may identify a specific assistance modality, such as visual help only, and the game strategy component122-2may retrieve or generate a set of video files410-1for a game. In still another example, a game assist parameter210-5may identify a specific type of assistance, such as a game event walkthrough, and the game strategy component122-2may retrieve or generate a set of text files410-3with the game event walkthrough. These are merely a few examples of customization of game strategy information130in general and game assist files410-fin particular, and others may be used as well. The embodiments are not limited in this context.
The game strategy component122-2may send the one or more game assist files410-fas game strategy information130to a client device. In one embodiment, the game strategy component122-2may send the one or more game assist files410-fas a pass-through service without any pre-processing or post-processing operations, where the game assist files410-fare sent to a client device as stored in the database124. In one embodiment, the game strategy component122-2may process the game assist files410-fto further customize game strategy information130for a given player, system or device. For instance, the game strategy component122-2may detect a device configuration for a client device as a mobile device, and configure the game assist files410-ffor presentation on a smaller display suitable for a mobile device. In another example, the game strategy component122-2may detect a data schema for an application or client device, and convert the game assist files410-fto the appropriate data schema. In yet another example, the game strategy component122-2may detect a communications bandwidth for an application or client device, and convert the game assist files410-fto an appropriate file size suitable for the given communications bandwidth. In still another example, the game strategy component122-2may detect a latency constraint for an application or client device, and segment or convert the game assist files410-fto an appropriate file size capable of being sent within the latency constraint. These are merely a few examples of customization of game strategy information130in general and game assist files410-fin particular, and others may be used as well. The embodiments are not limited in this context.
FIG. 5illustrates an embodiment of an operating environment500. The operating environment500illustrates a more detailed implementation for a game management component122-3of the game strategy application120to process player management requests510-g.
The game management component122-3may be generally arranged to manage various operations of the game strategy application120. The game management component122-3may receive various types of player management requests510-g, and configure the game strategy application120for player-specific operation.
The game management component122-3may manage subscribe operations to subscribe a player and/or client device to services provided by the game strategy application120. For example, the game management component122-3may create and persist a subscription between a client device for the player and the game strategy application120in response to a subscribe request510-1. The game management component122-3may receive a subscribe request510-1for a player, and execute a set of subscription operations to subscribe the player to the game strategy application120. The subscription operations may solicit player information and preferences, and encode the player information and preferences using one or more management parameters502-hstored in a player profile214-c. The subscription operations may also solicit security information and preferences, and encode the security information and preferences using one or more management parameters502-hstored in a player profile214-c. The subscription operations may also solicit payment and account information and preferences, and encode the payment information and preferences using one or more management parameters502-hstored in a player profile214-c. The subscription operations may also solicit authentication information and preferences, and encode the authentication information and preferences using one or more management parameters502-hstored in a player profile214-c. The subscription operations may also solicit game information and preferences, and encode the game information and preferences using one or more management parameters502-hstored in a game profile216-d. The subscription operations may also solicit game event information and preferences, and encode the game event information and preferences using one or more management parameters502-hstored in a game profile216-d.
The game management component122-3may also manage unsubscribe operations to unsubscribe a player and/or client device to services provided by the game strategy application120. Unsubscribe operations are typically paired operations with a subscription event. For example, the game management component122-3may locate and delete a subscription between a client device for the player and the game strategy application120stored in the database124in response to an unsubscribe request510-2. This may include removing or uninstalling any client versions of the game strategy application120previously installed on a client device for a player.
In addition to subscribe and unsubscribe operations, which are typically performed before or after gameplay of an electronic game, the game management component122-3may also manage various requests from a player or a game during gameplay of an electronic game. For instance, the game management component122-3may receive a player assist request510-3from a player requesting a change in a setting for a player assist parameter215from no assistance (FALSE) to assistance (TRUE), or vice-versa. In another example, the game management component122-3may receive a player assist request510-3from a player requesting a change in a setting for a game event threshold parameter217from a lower threshold value (e.g., 10 minutes) to a higher threshold value (e.g., 15 minutes), or vice-versa. In yet another example, the game management component122-3may receive a game assist request510-4from a player or a game requesting a change in communications bandwidth to a higher bandwidth for an electronic video game with high definition graphics or a lower bandwidth for an electronic video game with normal graphics. These are merely a few examples of customization of management operations for the game strategy application120, and the game management component122-3may perform others as well. For instance, the game management component122-3may further perform player registration operations, player configuration operations, client device registration operations, game registration operations, game service registration operations, notification operations, authentication operations, permission operations, security operations, and various other operations needed for managing various products, features and services offered by the game strategy application120. The embodiments are not limited in this context.
FIG. 6illustrates a block diagram of a centralized system600. The centralized system600may implement some or all of the structure and/or operations for the game strategy system100in a single computing entity, such as entirely within a single device. For example, the game strategy system100may be implemented by a game strategy server620accessible via different communications systems and networks.
The device620may comprise any electronic device capable of receiving, processing, and sending information for the system100. Examples of an electronic device may include without limitation an ultra-mobile device, a mobile device, a personal digital assistant (PDA), a mobile computing device, a smart phone, a telephone, a digital telephone, a cellular telephone, eBook readers, a handset, a one-way pager, a two-way pager, a messaging device, a computer, a personal computer (PC), a desktop computer, a laptop computer, a notebook computer, a netbook computer, a handheld computer, a tablet computer, a server, a server array or server farm, a web server, a network server, an Internet server, a work station, a mini-computer, a main frame computer, a supercomputer, a network appliance, a web appliance, a distributed computing system, multiprocessor systems, processor-based systems, consumer electronics, programmable consumer electronics, game devices, television, digital television, set top box, wireless access point, base station, subscriber station, mobile subscriber center, radio network controller, router, hub, gateway, bridge, switch, machine, or combination thereof. The embodiments are not limited in this context.
The device620may execute processing operations or logic for the system100using a processing component630. The processing component630may comprise various hardware elements, software elements, or a combination of both. Examples of hardware elements may include devices, logic devices, components, processors, microprocessors, circuits, processor circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), memory units, logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. Examples of software elements may include software components, programs, applications, computer programs, application programs, system programs, software development programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether an embodiment is implemented using hardware elements and/or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints, as desired for a given implementation.
The device620may execute communications operations or logic for the system100using communications component640. The communications component640may implement any well-known communications techniques and protocols, such as techniques suitable for use with packet-switched networks (e.g., public networks such as the Internet, private networks such as an enterprise intranet, and so forth), circuit-switched networks (e.g., the public switched telephone network), or a combination of packet-switched networks and circuit-switched networks (with suitable gateways and translators). The communications component640may include various types of standard communication elements, such as one or more communications interfaces, network interfaces, network interface cards (NIC), radios, wireless transmitters/receivers (transceivers), wired and/or wireless communication media, physical connectors, and so forth. By way of example, and not limitation, communication media612,642include wired communications media and wireless communications media. Examples of wired communications media may include a wire, cable, metal leads, printed circuit boards (PCB), backplanes, switch fabrics, semiconductor material, twisted-pair wire, co-axial cable, fiber optics, a propagated signal, and so forth. Examples of wireless communications media may include acoustic, radio-frequency (RF) spectrum, infrared and other wireless media.
The device620may communicate with other devices610,650over a communications media612,642, respectively, using communications signals614,644, respectively, via the communications component640. The devices610,650may be internal or external to the device620as desired for a given implementation.
The game strategy server620may comprise part of an overall communications system or network capable of communicating information between the game strategy server620and one or more client devices610,650for a player.
In various embodiments, the client device610may comprise or be implemented as a game system with associated controllers and input/output (I/O) devices. The game system may comprise a console game system, such as an Xbox® 360 game system made by Microsoft® Corporation, a PlayStation® 3 or PS3® made by Sony® Computer Entertainment, a Wii® made by Nintendo®, and so forth. The game system may comprise a handheld game system, such as a Sony PS Vita®, a Sony PlayStation Portable (PSP)®, a Nintendo 3DS, a Nintendo DS, and so forth. The game system may comprise a general purpose computing device capable of playing a game, such as a personal computer (PC) or notebook computer with gaming software. The gaming software may comprise a full version of an electronic video game loaded on the computing device, a partial version of an electronic video game loaded as a thin-client on the computing device with game content on a network server, or a web browser configured to access an electronic video game implemented as a web application or web service on a game server. An example of a thin-client or browser-based version of a game may include Steam® developed by Valve Corporation. Steam software is a digital distribution, digital rights management, multiplayer and communications platform used to distribute electronic games and related media online. The electronic games may be made by any number of game publishers, including without limitation including Bethesda® Softworks, Electronic Arts®, Activision®, Rockstar Games®, Square Enix®, 2K Games®, and Telltale Games®, among others.
In various embodiments, the client device610may comprise or be implemented as a mobile device having both computing and communications capabilities, such as a notebook computer, a handheld computer, a smart phone, a tablet computer, a remote control, a smart remote control, and so forth. The client device610may also comprise or be implemented as a fixed device having both computing and communications capabilities, such as a desktop computer, workstation, digital television, smart television, set top box (STB) or digital media transceiver, audio/video (AV) receiver, consumer appliance, a game system, and so forth.
In one embodiment, the client device610may operate primarily as an input device generating and sending game telemetry information110to the game strategy application120, and the client device650may operate primarily as an output device receiving and presenting game strategy information130from the game strategy application120. In one embodiment, the client device610may operate as both an input device generating and sending game telemetry information110to the game strategy application120, and an output device receiving and presenting game strategy information130from the game strategy application120. In this case, the client device650may not be needed to receive and present the game strategy information130.
FIG. 7illustrates an embodiment of a game strategy network700. The game strategy network700may implement a game strategy system100as part of a game strategy server620having a server datastore708.
The game strategy server620may be connected to various sources of game telemetry information110. As shown inFIG. 7, the game strategy server620may be communicatively connected to a collection server706. The collection server706may be communicatively connected to one or more game servers704-l. The collection server706may be arranged to collect and receive game telemetry information110from various game servers704-l. An example of a collection server706may include a Raptr® game tracking platform integrating data feeds from various game servers704-l. The game servers704-lmay comprise or implement online gaming services, such as Xbox LIVE® provided by Microsoft, PlayStation Network provided by Sony, and so forth. The game servers704-lmay in turn be communicatively connected to one or more game systems702k. The game systems702-kmay include those examples provided for the client device610as described with reference toFIG. 6, among others.
The game strategy server620may also be connected to various sources of game strategy information130. For instance, the game strategy server620may implement the game strategy system100having the game strategy application120connected to the datastore124storing game strategy information130. Additionally or alternatively, the game strategy server620may be connected to a server datastore708storing game strategy information130. Additionally or alternatively, the game strategy server620may be connected to a game strategy information server720specifically designed to store game strategy information130for various electronic games.
The game strategy server620may be further connected to various sinks of game strategy information130. For example, the game strategy server620may be communicatively connected to one or more client devices710-mfor a player. Examples of client devices710-mmay include those examples provided for the client device650as described with reference toFIG. 6, among others. As shown inFIG. 7, the client devices710-mmay include a game system710-1, a smart phone710-2, and a tablet computer710-3. In one embodiment, the game system710-1may comprise a separate game system from the game systems702-k. In one embodiment, the game system710-1may comprise one of the game system702-k. For example, the game system702-1and the game system710-1may comprise the exact same game system both sending game telemetry information110and receiving game strategy information130.
In operation, various players may engage in gameplay of various electronic games using the game systems702-k. During gameplay, each of the game servers704-lmay collect information about the players and the electronic games while being played to form game telemetry information110. The game servers704-lmay forward the game telemetry information110to the collection server706. Alternatively, the game servers704-lmay forward the game telemetry information110directly to the game strategy server620. The game strategy server620may receive the game telemetry information110, decide when to render assistance to a player while playing an electronic game, and retrieve game strategy information130from a local database, such as datastores124,126, or a remote database implemented by the game strategy information server720, such as server datastore728. The game strategy server620may forward the game strategy information130to one or more of the client devices710-m. A player may then use the client devices710-mto review the game strategy information130to assist in gameplay of an electronic game.
FIG. 8Aillustrates an embodiment of a message flow800. The message flow800illustrates exemplary subscribe operations to subscribe a player and client devices610,650to the game strategy server708. It may be appreciated that the message flow800is by way of example and not limitation. Other message flows or signaling schemes may be used to perform subscribe operations as desired for a given implementation.
In the illustrated embodiment shown inFIG. 8A, a player may use a game system702-1to initiate subscribe operations by sending a subscribe request802to the game strategy server708. Alternatively, a player may use a client device710-m, such as table computer710-3, having a web browser to access a web application or web service provided by the game strategy server708to perform subscribe operations.
In either case, the game strategy server708receives the subscribe request802, and sends a subscribe request804to the collection server706to initiate forwarding of game telemetry information110from the game system702-1to the game strategy server708. The collection server706sends an acknowledgement (ACK)806indicating it has persisted the subscription805by storing in a local datastore for the collection server706. Alternatively, the player may use a client device710-m, such as table computer710-3, having a web browser to access a web application or web service provided by the collection server706to perform subscribe operations, such as registering the game system702-1for monitoring by the collection server706. In this case, the collection server706may automatically begin sending game telemetry information110from the game system702-1without an explicit request from the game strategy server708.
Once a subscription with the collection server706has been established, the game strategy server708may send one or more configure messages808to one or more client devices710-m, such as the smart phone710-2. The configure messages808may include messages to test a connection, install client software such as a thin-client application, configure operating parameters for a client device710-m, configure security features, configure presence information for a client device710-m, configure messaging applications on a client device710-mfor delivery of game strategy information130, and so forth.
Once a client device710-mhas been configured for operation with the game strategy server708, the game strategy server708may persist the subscription810to a datastore (e.g., datastores124,708). The game strategy server708may then send a subscribe response812to the game system702-1(or another client device710-m) with subscription results (e.g., subscription complete, subscription error, etc.).
FIG. 8Billustrates an embodiment of a message flow820. The message flow820illustrates exemplary unsubscribe operations to unsubscribe a player and client devices610,650from the game strategy server708. It may be appreciated that the message flow820is by way of example and not limitation. Other message flows or signaling schemes may be used to perform unsubscribe operations as desired for a given implementation.
In the illustrated embodiment shown inFIG. 8B, a player may use a game system702-1to initiate unsubscribe operations by sending an unsubscribe request822to the game strategy server708. Alternatively, a player may use a client device710-m, such as table computer710-3, having a web browser to access a web application or web service provided by the game strategy server708to perform unsubscribe operations.
In either case, the game strategy server708receives the unsubscribe request822, and sends an unsubscribe request824to the collection server706to stop forwarding game telemetry information110from the game system702-1to the game strategy server708. The collection server706sends an acknowledgement (ACK)826indicating it has located and deleted the subscription805from the local datastore of the collection server706. Alternatively, the player may use a client device710-m, such as table computer710-3, having a web browser to access a web application or web service provided by the collection server706to perform unsubscribe operations, such as unregistering the game system702-1for monitoring by the collection server706. In this case, the collection server706may automatically stop sending game telemetry information110from the game system702-1without an explicit request from the game strategy server708.
Once the subscription with the collection server706has been removed, the game strategy server708may send one or more deconfigure messages828to one or more client devices710-m, such as the smart phone710-2. The deconfigure messages828may undo any previous configuration operations performed for the smart phone710-2.
Once a client device710-mhas been removed from operation with the game strategy server708, the game strategy server708may locate and delete the subscription810from a datastore (e.g., datastores124,708). The game strategy server708may then send an unsubscribe response832to the game system702-1(or another client device710-m) with the unsubscribe results (e.g., subscription deleted, unsubscribe error, etc.).
FIG. 8Cillustrates an embodiment of a message flow840. The message flow840illustrates exemplary notification operations to automatically deliver game strategy information130to a player via client devices610,650from the game strategy server708. It may be appreciated that the message flow840is by way of example and not limitation. Other message flows or signaling schemes may be used to perform notification operations as desired for a given implementation.
In the illustrated embodiment shown inFIG. 8C, assume a player is playing an electronic game, such as an electronic video game titled “The Elder Scrolls V: Skyrim” made by Bethesda® Game Studios on a game system702-1such as a Sony PS3. Further assume a player subscribes to a game service PlayStation Network via the game server704-1. As the player is playing the electronic video game, the game system702-1may be sending game telemetry information110via messages842representing gameplay actions performed by the player to the game server704-1in real-time. The game server704-1may forward the game telemetry information110via messages844to the collection server706. The collection server706may process the game telemetry information110to clean up the data and remove any artifacts or non-useful information, and forward the processed game telemetry information110via messages846to the game strategy server708. The game strategy application100implemented by the game strategy server708may receive the game telemetry information110, make a game assist decision848, and arrange for delivery of game strategy information130to the smart phone710-2. The smart phone710-2may send an ACK852confirming receipt of the game telemetry information130.
Once the smart phone710-2receives the game strategy information130, the smart phone710-2may generate an alert for the player (e.g., an audio alert, visual alert, tactile alert, olfactory alert, etc.) via an alert system provided by a thin-client application installed on the smart phone710-2, or via a native alert system provided by the smart phone710-2. The player may then use the smart phone710-2to access the game strategy information130to assist in playing the electronic video game. In one embodiment, the game strategy information130may include actual game assist files410-f. In one embodiment, the game strategy information130may include links to game assist files410-fstored on network servers such as the game strategy server620and game strategy information server720. The player may review the game strategy information130, and if additional resources are desired, the player may use the smart phone710-2to initiate supplemental requests for additional game assist files410-fvia messages for supplemental assistance operations854.
FIG. 9illustrates a block diagram of a distributed system900. The distributed system900may distribute portions of the structure and/or operations for the game strategy system100across multiple computing entities. Examples of distributed system900may include without limitation a client-server architecture, a3-tier architecture, an N-tier architecture, a tightly-coupled or clustered architecture, a peer-to-peer architecture, a master-slave architecture, a shared database architecture, and other types of distributed systems. The embodiments are not limited in this context.
The distributed system900may comprise a client device910and a server device950. In general, the client device910and the server device950may be the same or similar to the client device820as described with reference toFIG. 6. For instance, the client system910and the server system950may each comprise a processing component930and a communications component940which are the same or similar to the processing component630and the communications component640, respectively, as described with reference toFIG. 6. In another example, the devices910,950may communicate over a communications media912using communications signals914via the communications components940.
The client device910may comprise or employ one or more client programs that operate to perform various methodologies in accordance with the described embodiments. In one embodiment, for example, the client device910may implement a game strategy client application912. The game strategy client application912may comprise a thin-client application residing on the client device910that is arranged to interoperate with the game strategy application120of the game strategy system100implemented by the server device950. The game strategy client application912may provide a GUI and custom GUI views to allow a player to interface with the game strategy application120in order to configure services and user preferences. The game strategy client application912may also provide custom GUI views to format, render and present game strategy information130for easy viewing by the player.
Additionally or alternatively, the game strategy client application912may include text-to-speech (TTS) components and a speech synthesizer component to audibly reproduce text files410-3for the player while she is engaged in playing an electronic game. In this manner, the player can remain focused on playing the electronic game while listening to game strategy information130. Similarly, the game strategy client application912may include speech-to-text (STT) components and a microphone input device to convert spoken player commands to text information, which can then be forwarded to the game strategy application120for further processing. For instance, a player may verbally request additional game assist files410-f, and the game strategy client application912may receive the verbal commands via a microphone and convert the verbal commands into text information using the STT components. The game strategy client application912may forward the text information to the game strategy application120implemented by the server device950, and the game strategy application120may locate supplemental game assist files410-f, and send the files back to the game strategy client application912for audible rendering by the TTS components.
The client device910may further implement a web browser914. A player may use the web browser914to access the game strategy system100implemented on the server device950to configure services and user preferences provided by the game strategy system100. The player may also use the web browser914to receive the game strategy information130, and follow links to game strategy information130stored by server device950.
The server device950may comprise or employ one or more server programs that operate to perform various methodologies in accordance with the described embodiments. In one embodiment, for example, the server device950may implement some or all of the game strategy system100. The server device950may also implement one or more message applications920for delivering game strategy information130to corresponding message applications implemented by the client device910. Examples of a message application920may include without limitation a text message application, email message application, short message service (SMS) application, multimedia message application (MMS), chat messages, social networking service (SNS) message application, and so forth. The embodiments are not limited in this context.
Included herein is a set of flow charts representative of exemplary methodologies for performing novel aspects of the disclosed architecture. While, for purposes of simplicity of explanation, the one or more methodologies shown herein, for example, in the form of a flow chart or flow diagram, are shown and described as a series of acts, it is to be understood and appreciated that the methodologies are not limited by the order of acts, as some acts may, in accordance therewith, occur in a different order and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all acts illustrated in a methodology may be required for a novel implementation.
FIG. 10illustrates one embodiment of a logic flow1000. The logic flow1000may be representative of some or all of the operations executed by one or more embodiments described herein.
In the illustrated embodiment shown inFIG. 10, the logic flow1000may receive game telemetry information representing gameplay of an electronic game from a first client device at block1002. For example, the game monitor component122-1of the game strategy application120may receive game telemetry information110representing real-time or delayed gameplay of an electronic game from a first client device610. The game strategy application120may receive the game telemetry information110from a game system702-k, a game server704-l, a collection server706, or some other source accessible to both the game system702-kand the game strategy server620(e.g., a third-party service).
The logic flow1000may determine whether a player of the electronic game needs assistance in the gameplay based on the game telemetry information at block1004. For example, the game monitor component122-1may determine whether a player of the electronic game needs assistance in the gameplay based on the game telemetry information110. The game telemetry information110may comprise one or more game telemetry parameters210-b, one of which may comprise a player identifier parameter210-1which may indicate an identity for a player or a client device610,710, which can be used to retrieve and evaluate a player assist parameter215stored in a player profile214-ccorresponding to the player identity. The evaluation results may be used to make a game assist decision848.
The logic flow1000may send game strategy information to assist the player of the electronic game in the gameplay to a second client device at block1006. For example, assume the game monitor component122-1makes a game assist decision848to assist the player, and stores a game assist indicator and associated game telemetry parameters210-bas a game assist event218-1in the event queue219. The game management component122-3may retrieve the game assist event218-1from the event queue219for processing, retrieve one or more game assist files410-ffrom a local or remote datastore (e.g., datastores124,708,728), and send the retrieved game assist files410-f(or links thereto) as game strategy information130to assist the player of the electronic game in the gameplay to a client device610,650or710.
FIG. 11illustrates an embodiment of an exemplary computing architecture1100suitable for implementing various embodiments of the game strategy system100and/or game strategy network700as previously described. In one embodiment, the computing architecture1100may comprise or be implemented as part of an electronic device. Examples of an electronic device may include those described with reference toFIG. 6, among others. The embodiments are not limited in this context.
As used in this application, the terms “system” and “component” are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution, examples of which are provided by the exemplary computing architecture1100. For example, a component can be, but is not limited to being, a process running on a processor, a processor, a hard disk drive, multiple storage drives (of optical and/or magnetic storage medium), an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers. Further, components may be communicatively coupled to each other by various types of communications media to coordinate operations. The coordination may involve the uni-directional or bi-directional exchange of information. For instance, the components may communicate information in the form of signals communicated over the communications media. The information can be implemented as signals allocated to various signal lines. In such allocations, each message is a signal. Further embodiments, however, may alternatively employ data messages. Such data messages may be sent across various connections. Exemplary connections include parallel interfaces, serial interfaces, and bus interfaces.
The computing architecture1100includes various common computing elements, such as one or more processors, multi-core processors, co-processors, memory units, chipsets, controllers, peripherals, interfaces, oscillators, timing devices, video cards, audio cards, multimedia input/output (I/O) components, power supplies, and so forth. The embodiments, however, are not limited to implementation by the computing architecture1100.
As shown inFIG. 11, the computing architecture1100comprises a processing unit1104, a system memory1106and a system bus1108. The processing unit1104can be any of various commercially available processors, including without limitation an AMD® Athlon®, Duron® and Opteron® processors; ARM® application, embedded and secure processors; IBM® and Motorola® DragonBall® and PowerPC® processors; IBM and Sony® Cell processors; Intel® Celeron®, Core (2) Duo®, Itanium®, Pentium®, Xeon®, and XScale® processors; and similar processors. Dual microprocessors, multi-core processors, and other multi-processor architectures may also be employed as the processing unit1104.
The system bus1108provides an interface for system components including, but not limited to, the system memory1106to the processing unit1104. The system bus1108can be any of several types of bus structure that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. Interface adapters may connect to the system bus1108via a slot architecture. Example slot architectures may include without limitation Accelerated Graphics Port (AGP), Card Bus, (Extended) Industry Standard Architecture ((E)ISA), Micro Channel Architecture (MCA), NuBus, Peripheral Component Interconnect (Extended) (PCI(X)), PCI Express, Personal Computer Memory Card International Association (PCMCIA), and the like.
The computing architecture1100may comprise or implement various articles of manufacture. An article of manufacture may comprise a computer-readable storage medium to store logic. Examples of a computer-readable storage medium may include any tangible media capable of storing electronic data, including volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or re-writeable memory, and so forth. Examples of logic may include executable computer program instructions implemented using any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, object-oriented code, visual code, and the like.
The system memory1106may include various types of computer-readable storage media in the form of one or more higher speed memory units, such as read-only memory (ROM), random-access memory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, polymer memory such as ferroelectric polymer memory, ovonic memory, phase change or ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, magnetic or optical cards, an array of devices such as Redundant Array of Independent Disks (RAID) drives, solid state memory devices (e.g., USB memory, solid state drives (SSD) and any other type of storage media suitable for storing information. In the illustrated embodiment shown inFIG. 11, the system memory1106can include non-volatile memory1110and/or volatile memory1112. A basic input/output system (BIOS) can be stored in the non-volatile memory1110.
The computer1102may include various types of computer-readable storage media in the form of one or more lower speed memory units, including an internal (or external) hard disk drive (HDD)1114, a magnetic floppy disk drive (FDD)1116to read from or write to a removable magnetic disk1118, and an optical disk drive1120to read from or write to a removable optical disk1122(e.g., a CD-ROM or DVD). The HDD1114, FDD1116and optical disk drive1120can be connected to the system bus1108by a HDD interface1124, an FDD interface1126and an optical drive interface1128, respectively. The HDD interface1124for external drive implementations can include at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.
The drives and associated computer-readable media provide volatile and/or nonvolatile storage of data, data structures, computer-executable instructions, and so forth. For example, a number of program modules can be stored in the drives and memory units1110,1112, including an operating system1130, one or more application programs1132, other program modules1134, and program data1136. In one embodiment, the one or more application programs1132, other program modules1134, and program data1136can include, for example, the various applications and/or components of the system100.
A user can enter commands and information into the computer1102through one or more wire/wireless input devices, for example, a keyboard1138and a pointing device, such as a mouse1140. Other input devices may include microphones, infra-red (IR) remote controls, radio-frequency (RF) remote controls, game pads, stylus pens, card readers, dongles, finger print readers, gloves, graphics tablets, joysticks, keyboards, retina readers, touch screens (e.g., capacitive, resistive, etc.), trackballs, trackpads, sensors, styluses, and the like. These and other input devices are often connected to the processing unit1104through an input device interface1142that is coupled to the system bus1108, but can be connected by other interfaces such as a parallel port, IEEE 1394 serial port, a game port, a USB port, an IR interface, and so forth.
A monitor1144or other type of display device is also connected to the system bus1108via an interface, such as a video adaptor1146. The monitor1144may be internal or external to the computer1102. In addition to the monitor1144, a computer typically includes other peripheral output devices, such as speakers, printers, and so forth.
The computer1102may operate in a networked environment using logical connections via wire and/or wireless communications to one or more remote computers, such as a remote computer1148. The remote computer1148can be a workstation, a server computer, a router, a personal computer, portable computer, microprocessor-based entertainment appliance, a peer device or other common network node, and typically includes many or all of the elements described relative to the computer1102, although, for purposes of brevity, only a memory/storage device1150is illustrated. The logical connections depicted include wire/wireless connectivity to a local area network (LAN)1152and/or larger networks, for example, a wide area network (WAN)1154. Such LAN and WAN networking environments are commonplace in offices and companies, and facilitate enterprise-wide computer networks, such as intranets, all of which may connect to a global communications network, for example, the Internet.
When used in a LAN networking environment, the computer1102is connected to the LAN1152through a wire and/or wireless communication network interface or adaptor1156. The adaptor1156can facilitate wire and/or wireless communications to the LAN1152, which may also include a wireless access point disposed thereon for communicating with the wireless functionality of the adaptor1156.
When used in a WAN networking environment, the computer1102can include a modem1158, or is connected to a communications server on the WAN1154, or has other means for establishing communications over the WAN1154, such as by way of the Internet. The modem1158, which can be internal or external and a wire and/or wireless device, connects to the system bus1108via the input device interface1142. In a networked environment, program modules depicted relative to the computer1102, or portions thereof, can be stored in the remote memory/storage device1150. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used.
The computer1102is operable to communicate with wire and wireless devices or entities using the IEEE 802 family of standards, such as wireless devices operatively disposed in wireless communication (e.g., IEEE 802.11 over-the-air modulation techniques). This includes at least Wi-Fi (or Wireless Fidelity), WiMax, and Bluetooth™ wireless technologies, among others. Thus, the communication can be a predefined structure as with a conventional network or simply an ad hoc communication between at least two devices. Wi-Fi networks use radio technologies called IEEE 802.11x (a, b, g, n, etc.) to provide secure, reliable, fast wireless connectivity. A Wi-Fi network can be used to connect computers to each other, to the Internet, and to wire networks (which use IEEE 802.3-related media and functions).
FIG. 12illustrates a block diagram of an exemplary communications architecture1200suitable for implementing various embodiments of the game strategy system100and/or game strategy network700as previously described. The communications architecture1200includes various common communications elements, such as a transmitter, receiver, transceiver, radio, network interface, baseband processor, antenna, amplifiers, filters, power supplies, and so forth. The embodiments, however, are not limited to implementation by the communications architecture1200.
As shown inFIG. 12, the communications architecture1200comprises includes one or more clients1202and servers1204. The clients1202may implement the client device910. The servers1204may implement the server device950. The clients1202and the servers1204are operatively connected to one or more respective client data stores1208and server data stores1210that can be employed to store information local to the respective clients1202and servers1204, such as cookies and/or associated contextual information.
The clients1202and the servers1204may communicate information between each other using a communication framework1206. The communications framework1206may implement any well-known communications techniques and protocols. The communications framework1206may be implemented as a packet-switched network (e.g., public networks such as the Internet, private networks such as an enterprise intranet, and so forth), a circuit-switched network (e.g., the public switched telephone network), or a combination of a packet-switched network and a circuit-switched network (with suitable gateways and translators).
The communications framework1206may implement various network interfaces arranged to accept, communicate, and connect to a communications network. A network interface may be regarded as a specialized form of an input output interface. Network interfaces may employ connection protocols including without limitation direct connect, Ethernet (e.g., thick, thin, twisted pair 10/100/1000 Base T, and the like), token ring, wireless network interfaces, cellular network interfaces, IEEE 802.11a-x network interfaces, IEEE 802.16 network interfaces, IEEE 802.20 network interfaces, and the like. Further, multiple network interfaces may be used to engage with various communications network types. For example, multiple network interfaces may be employed to allow for the communication over broadcast, multicast, and unicast networks. Should processing requirements dictate a greater amount speed and capacity, distributed network controller architectures may similarly be employed to pool, load balance, and otherwise increase the communicative bandwidth required by clients1202and the servers1204. A communications network may be any one and the combination of wired and/or wireless networks including without limitation a direct interconnection, a secured custom connection, a private network (e.g., an enterprise intranet), a public network (e.g., the Internet), a Personal Area Network (PAN), a Local Area Network (LAN), a Metropolitan Area Network (MAN), an Operating Missions as Nodes on the Internet (OMNI), a Wide Area Network (WAN), a wireless network, a cellular network, and other communications networks.
Some embodiments may be described using the expression “one embodiment” or “an embodiment” along with their derivatives. These terms mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment. Further, some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. These terms are not necessarily intended as synonyms for each other. For example, some embodiments may be described using the terms “connected” and/or “coupled” to indicate that two or more elements are in direct physical or electrical contact with each other. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
It is emphasized that the Abstract of the Disclosure is provided to allow a reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein,” respectively. Moreover, the terms “first,” “second,” “third,” and so forth, are used merely as labels, and are not intended to impose numerical requirements on their objects.
What has been described above includes examples of the disclosed architecture. It is, of course, not possible to describe every conceivable combination of components and/or methodologies, but one of ordinary skill in the art may recognize that many further combinations and permutations are possible. Accordingly, the novel architecture is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims.
Claims
- An apparatus, comprising: a processor circuit;and a game strategy application operative on the processor circuit to receive as input game telemetry information representing gameplay by a player of an electronic game from a client device, receive during gameplay a selection to toggle game assistance on or off, retrieve a set of game assist files customized according to a game assist parameter specifying at least one of an assistance modality and a type of assistance, automatically send the set of game assist files as output game strategy information to assist the player of the electronic game in the gameplay based on the game telemetry information to a different client device when the selection of game assistance is toggled on, receive a request for supplemental game assistance from the player via the different client device, and send supplemental game assist files to the different client device in response to the request.
- The apparatus of claim 1 , the game strategy application comprising a game monitor component operative to monitor one or more game telemetry parameters of the game telemetry information, determine when the player of the electronic game needs assistance for a game event during gameplay of the electronic game based on the one or more game telemetry parameters, and generate a game assist indicator.
- The apparatus of claim 2 , the game monitor component operative to receive a player identifier parameter representing an identifier for the player, retrieve a player assist parameter from a player profile associated with the player identifier parameter, and determine whether to generate the game assist indicator for the player based on the player assist parameter.
- The apparatus of claim 2 , the game monitor component operative to receive a game identifier parameter representing an identifier for the electronic game.
- The apparatus of claim 2 , the game monitor component operative to receive a game event parameter representing an identifier for a game event of the electronic game.
- The apparatus of claim 2 , the game monitor component operative to receive a game event time parameter representing an amount of time associated with a game event of the electronic game.
- The apparatus of claim 2 , the game monitor component operative to receive a player identifier parameter, a game identifier parameter, a game event parameter, and a game event time parameter, retrieve a game event threshold parameter for a game event identified by the game event parameter of the electronic game identified by the game identifier parameter from a game profile associated with the electronic game, compare the game event time parameter with the game event threshold parameter to form comparison results, and generate the game assist indicator based on the comparison results.
- The apparatus of claim 2 , the game monitor component operative to receive a game assist parameter representing a game assist request from the player associated with a game event of the electronic game.
- The apparatus of claim 2 , the game monitor component operative to receive a player identifier parameter, a game identifier parameter, a game event parameter, and a game assist parameter, and generate the game assist indicator for the game event of the electronic game in response to the game assist parameter.
- The apparatus of claim 2 , the game monitor component operative to store the game assist indicator and associated game telemetry parameters as a game assist event in an event queue.
- The apparatus of claim 1 , the game strategy application comprising a game strategy component operative to retrieve a game assist event from an event queue, retrieve one or more game assist files for the game assist event, and send the one or more game assist files as the game strategy information to the different client device.
- The apparatus of claim 1 , the game strategy application comprising a game management component operative to receive player management requests, and manage a subscription between the client device and the game strategy application based on the player management requests.
- The apparatus of claim 1 , comprising a server device implementing the processor circuit and the game strategy application, the server device comprising a communications component operative to receive the game telemetry information from the client device and send the game strategy information to the different client device.
- The apparatus of claim 13 , the client device comprising a game system and the different client device comprising a mobile device.
- A computer-implemented method, comprising: receiving game telemetry information representing gameplay of an electronic game from a client device;receiving during gameplay a selection to toggle game assistance on or off;determining, by a processor, whether a player of the electronic game needs assistance in the gameplay based on the game telemetry information and the selection of the game assistance toggle;retrieving a set of game assist files customized according to a game assist parameter specifying at least one of an assistance modality and a type of assistance;sending the set of game assist files as game strategy information to assist the player of the electronic game in the gameplay to a different client device;receiving a request for supplemental game assistance from the different client device;and sending supplemental game assist files to the different client device in response to the request for supplemental game assistance.
- The computer-implemented method of claim 15 , comprising: monitoring one or more game telemetry parameters of the game telemetry information;determining when the player of the electronic game needs assistance for a game event during gameplay of the electronic game based on the one or more game telemetry parameters;and generate a game assist indicator.
- The computer-implemented method of claim 16 , comprising: receiving a player identifier parameter representing an identifier for the player;retrieving a player assist parameter from a player profile associated with the player identifier parameter;and determining whether to generate the game assist indicator for the player based on the player assist parameter.
- The computer-implemented method of claim 16 , comprising: receiving a game identifier parameter representing an identifier for the electronic game;and receiving a game event parameter representing an identifier for a game event of the electronic game.
- The computer-implemented method of claim 18 , comprising: receiving a game event time parameter representing an amount of time associated with a game event of the electronic game;retrieving a game event threshold parameter for a game event identified by the game event parameter of the electronic game identified by the game identifier parameter from a game profile associated with the electronic game;comparing the game event time parameter with the game event threshold parameter to form comparison results;and generating the game assist indicator based on the comparison results.
- The computer-implemented method of claim 18 , comprising: receiving a game assist parameter representing a game assist request from the player associated with a game event of the electronic game;and generate the game assist indicator for the game event of the electronic game in response to the game assist parameter.
- The computer-implemented method of claim 15 , comprising storing a game assist indicator and associated game telemetry parameters as a game assist event in an event queue.
- The computer-implemented method of claim 21 , comprising: retrieving the game assist event from the event queue;retrieving one or more game assist files for the game assist event;and sending the one or more game assist files as the game strategy information to the second client device.
- An article of manufacture comprising a storage medium containing instructions that when executed cause a system to: receive game telemetry information representing gameplay of a game by a player on a client device;receive during gameplay a selection to toggle game assistance on or off;determine whether assistance in the gameplay for the player is needed based on the game telemetry information and the selection of the game assistance toggle;retrieve a set of game assist files customized according to a game assist parameter specifying at least one of an assistance modality and a type of assistance when assistance is determined to be needed;send the set of game assist files as game strategy information to assist in the gameplay to the player to a different client device;receive a request for supplemental game assistance;and sending supplemental game assist files in response to the request for supplemental game assistance to the different client device.
- The article of manufacture of claim 23 , comprising instructions that when executed enable the system to: monitor one or more game telemetry parameters of the game telemetry information;determine programmatically when assistance is needed for a game event during gameplay of the game based on the one or more game telemetry parameters;and generate a game assist indicator.
- The article of manufacture of claim 23 , comprising instructions that when executed enable the system to: receive a player identifier parameter representing an identifier for a player;retrieve a player assist parameter from a player profile associated with the player identifier parameter;and determine whether to generate a game assist indicator based on the player assist parameter.
- The article of manufacture of claim 23 , comprising instructions that when executed enable the system to: receive a game identifier parameter representing an identifier for the game;and receive a game event parameter representing an identifier for a game event of the game.
- The article of manufacture of claim 26 , comprising instructions that when executed enable the system to: receive a game event time parameter representing an amount of time associated with a game event of the game;retrieve a game event threshold parameter for a game event identified by the game event parameter of the game identified by the game identifier parameter from a game profile associated with the game;compare the game event time parameter with the game event threshold parameter to form comparison results;and generate the game assist indicator based on the comparison results.
- The article of manufacture of claim 26 , comprising instructions that when executed enable the system to: receive a game assist parameter representing a game assist request from a player associated with a game event of the game;and generate the game assist indicator for the game event of the game in response to the game assist parameter.
- The article of manufacture of claim 23 , comprising instructions that when executed enable the system to store a game assist indicator and associated game telemetry parameters from the game telemetry information as a game assist event in an event queue.
- The article of manufacture of claim 23 , comprising instructions that when executed enable the system to: retrieve a game assist event from an event queue;retrieve one or more game assist files for the game assist event;and send the one or more game assist files as the game strategy information.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.