Server-based individual play time estimates for gaming activity
By collecting and processing video game activity events in the computer system, generating completion time measurement values and presenting them to users, the problem of user experience differences between different computing devices and video games is solved, and a unified video game function presentation and user experience improvement is achieved.
Patent Information
- Application Number
- CN202080080207.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-11-18
- Filing Date
- 2020-09-30
- Publication Date
- 2025-04-29
- Estimated Expiration
- 2040-09-30
AI Technical Summary
When users play different video games on different computing devices, the experience varies greatly, and there is a lack of a way to uniformly present the video game functions and improve the user experience.
Through a computer system, activity events in a video game are collected and processed, measurements about the completion activities of the video game player are generated, thereby estimating the completion time for an unfinished user and presenting it on the user device.
No matter what the video game is, some commonality of video game functions has become possible, improving the user experience, allowing users to enjoy unified game help and activity suggestions on different video games and computing devices.
Smart Images

Figure CN114728205B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is a continuation of U.S. application No. 16 / 687,340 filed on November 18, 2019, which is incorporated herein by reference in its entirety for all purposes. Background Art
[0003] The video games may be provided on different computing devices. For example, a user operates a video game console and a mobile device to play a first video game and a second video game, respectively. In addition, the video games may be obtained from different sources. For example, a video game console may be operated to play multiple video games from two or more different video game developers.
[0004] Given the increase in the number of video games and the fact that these video games can be provided on different computing devices and from different sources, the user experience typically varies. For example, the manner in which game help can be sought can vary significantly from video game to video game. Additionally, the manner in which a particular portion of a video game is rendered playable on a computing device may be unique to a particular video game.
[0005] Therefore, the user experience may differ between video game players.There is a need to improve the user experience so that some commonality of video game functionality becomes possible regardless of the underlying video game. Summary of the invention
[0006] Techniques for improving a user's video game experience are described. In one example, a computer system is used to present video game related information. The computer system includes one or more processors and one or more non-transitory computer-readable storage media (e.g., one or more memories) that store instructions that, when executed by the one or more processors, cause the computer system to perform operations.
[0007] In one example, the operation includes receiving an identifier of an activity in a video game and first data indicating completion of the activity by a video game player. The identifier is predefined in a program code of the video game. The identifier and the first data are received based on execution of the program code. The operation also includes: storing the identifier and the first data in a data store; determining second data indicating completion of the activity by multiple video game players from the data store and based on the identifier; and determining a measurement value about the completion of the activity by the multiple video game players based on the second data. Based on the type of the activity, the measurement value includes at least one of: (i) a time to successfully complete the activity, or (ii) a time to attempt to complete the activity. The operation also includes: estimating a length of time to complete the activity for a user who has not yet completed the activity based on the measurement value; and presenting the length of time on a user device associated with the user.
[0008] In one example, the first data includes a start event and an end event. The end event includes the result of the completion of the activity by the video game player. Determining the measurement value includes: combining the video game player and determining at least one of the following from the start event and the end event: the time when the video game player successfully completed the activity, or the time when the video game player attempted to complete the activity. In this example, estimating the length of time includes: generating a statistical distribution of at least one of the time to successfully complete the activity or the time to attempt to complete the activity based on the start event and the end event from the second data; and determining the length of time from the statistical distribution based on a predefined percentile.
[0009] In one example, the operation further includes determining the type of the activity based on an association between the type of the activity and the identifier of the activity. The association is stored in the data store. The type of the activity indicates that the activity includes at least one of: a push activity, a competitive activity, or a challenge activity. The push activity is associated with failure and success. The competitive activity is associated with synchronous confrontation with a first video game player or with a first virtual player. The challenge activity is associated with asynchronous confrontation with a second video game player or with a second virtual player. In this example, the measurement value for the push activity includes the time for each video game player to successfully complete the activity. In this example, the measurement value for the competitive activity or the challenge activity includes the time for each video game player to attempt to complete the activity, and the time for successfully completing the activity includes the failure time.
[0010] In one example, the operations further include rounding the length of time to a multiple of a time interval. The time interval is based on the type of the activity.
[0011] In one example, the activity includes a plurality of tasks. Each of the plurality of tasks is associated with a separate time length. Each separate time length time is estimated based on the measurements of the plurality of video game players. Estimating the time length includes combining the separate time lengths of the plurality of tasks. In this example, the operations further include: receiving the identifier of the activity and event data indicating completion of a first task of the plurality of tasks from a video game console of the user; determining a remaining time length to complete the activity based on the separate time lengths of remaining tasks of the plurality of tasks that have not yet been completed; and presenting the remaining time length to the user.
[0012] In one example, the operations further include determining that the length of time falls within a time range predefined for the type of the activity; and selecting the activity from candidate activities associated with the video game and another video game based on the length of time.
[0013] In one example, the activity includes a single player mission. Each of the measurements corresponds to a start and end of the activity by each video game player.
[0014] In one example, the activity includes a multiplayer mission. In another example, the operations further include: determining a subset of the plurality of video game players that jointly complete the multiplayer mission; and determining a start and an end of the activity jointly completed by the subset. The measurements include measurements corresponding to the start and the end.
[0015] In one example, presenting the time length includes sending the time length to an application executing on the user device. In this example, the operations also include: receiving the identifier of the activity and third data indicating completion of the activity by the user from a video game console of the user; and storing the third data in the data store.
[0016] In one example, the operations further include: receiving the identifier of the activity and third data indicating the start of the activity by the user from a video game console of the user; determining that the duration since the start exceeds the length of time by a threshold amount and an end of the activity by the user has not been received; and presenting a help option to the user.
[0017] In one example, the operations further include: estimating an average time for the user to complete an activity based on the user's play time history and the play time history of the plurality of video game players; and adjusting the length of time based on the average time. In this example, the operations further include generating a decile distribution of the plurality of video game players based on the play time history. Each decile corresponds to an average player time for activity completion. The operations further include determining to which decile the user belongs of the decile distribution based on the play time history of the user. The average time of the user corresponds to the decile.
[0018] In one example, the operations further include: generating a cohort of the plurality of video game players based on the play time history of the video game players; determining that the user belongs to a cohort within the cohort based on the play time history of the user; and determining a subset of the plurality of video game players that belongs to the cohort. Determining the measurement value for the subset.
[0019] In one example, the operation further includes adjusting the length of time based on at least one of: tools available to the user in the video game to complete the activity, a familiarity measure of the user in using the tools, a first position of the user in a virtual area within the video game relative to a second position of the activity, or a travel time between a first game position and a second game position.
[0020] In one example, the operation further includes adjusting the time length based on at least one of: whether the user views help information about completing the activity, the type of help information viewed, or the amount of help information viewed. The help information includes at least one of: a video file, an audio file, and a text file. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] Figure 1 An example of a computing environment for collecting and processing video game events according to an embodiment of the present disclosure is shown.
[0022] Figure 2 An example of a system architecture for providing contextual information about available gaming activities to a user according to an embodiment of the present disclosure is shown.
[0023] Figure 3 Another example of a system architecture according to an embodiment of the present disclosure is shown.
[0024] Figure 4 An example of a system for providing a data model of a common data platform according to an embodiment of the present disclosure is shown.
[0025] Figure 5 An example of an activity hierarchy according to an embodiment of the present disclosure is shown.
[0026] Figure 6 An example of a user interface for presenting information about an estimated length of time to complete an activity is shown in accordance with an embodiment of the present disclosure.
[0027] Figure 7 Another example of a user interface for presenting information regarding an estimated length of time to complete an activity is shown in accordance with an embodiment of the present disclosure.
[0028] Figure 8 Examples of activity types according to embodiments of the present disclosure are shown.
[0029] Fig. 9 Examples of measurements generated from video game events are shown in accordance with embodiments of the present disclosure.
[0030] Fig.10 An example of a player distribution generated from a video game event is shown according to an embodiment of the present disclosure.
[0031] Fig.11 An example of a process for estimating the duration of an activity in a video game is shown according to an embodiment of the present disclosure.
[0032] Fig.12 An example of presenting activity suggestions based on estimated time length according to an embodiment of the present disclosure is shown.
[0033] Fig.13 An example of updating the estimated time length of an activity based on sub-activities according to an embodiment of the present disclosure is shown.
[0034] Fig.14 An example of a hardware system suitable for implementing a computer system according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION
[0035] In general, systems and methods for improving a user's video game experience are described. In one example, the user's video game experience is improved by providing a unified approach for, among other things, multiple video game functions, such as suggesting video game activities, estimating completion times for such activities, and presenting video game help regardless of the underlying video game. This unified approach requires neither a change in the way video games are developed nor a general approach to video game development. Instead, instrumentation of various events in a video game is relied upon, wherein a video game platform (e.g., a server-based video game service) can collect and process such events based on the execution of the video game to suggest video game activities, estimate completion times, and present video game help at the client level and customize such video game functions to the client level as needed.
[0036] For example, a video game includes multiple activities. When an instance of a video game is executed for a video game player (whether locally on the video game player's computing device or remotely on the video game platform), the video game platform receives events about the activities played. Each event can identify an activity, its type, its start time, its end time, and / or potentially its result (e.g., success or failure). Events for multiple activities and multiple video game players are stored in a data store over time. The video game platform generates an estimated time length to complete the activity for each activity and based on the stored events. For users who have not yet completed the activities of the video game, the corresponding time length is presented on the user device associated with the user. This completion time estimate can be performed for each activity and across different video games. Therefore, regardless of the video game (as long as relevant events are collected), the same type of video function (e.g., completion time estimate) can be displayed to the computing device.
[0037] Additionally, the estimated length of time may be customized based on data associated with the user and / or the user's device. In particular, the video game platform may generate an adjustment factor based on historical data about how quickly or slowly the user can complete an activity relative to other video game players, the user's current in-game characteristics (including any available mechanics (e.g., tools, abilities, and / or skills)), current gameplay data (e.g., position in the video game), any viewed help videos, and / or the type of computing device (e.g., playing on a video game console or mobile device, available user input devices, etc.). The video game platform customizes the length of time based on the adjustment factor. Thus, the user experience is enhanced by starting with data for multiple video game players and refining it using data for a single user.
[0038] In addition, and when an activity is started, events about the activity may be received. The video game platform may further process these events to update the remaining time to complete the activity. In particular, an activity may include multiple sub-activities. When a sub-activity is completed, the remaining time may be adjusted up or down based on the remaining sub-activities.
[0039] To illustrate, consider an example of a video game activity related to capturing an opponent's flag. The activity may include multiple sub-activities, such as entering a location that includes a flag and clearing obstacles in the location. In view of events from multiple players, the video game platform determines that the estimated time to capture the flag is thirty minutes for an expert player and forty-five minutes for a novice player. Upon determining that the user is a novice player, the video game platform may generate a notification and send it to the user's computing device, wherein the notification indicates a forty-five minute estimate. In this estimate, the average time for a novice player to enter the location and clear obstacles is twenty minutes and twenty minutes, respectively. After launching the activity for the user, an event may be received indicating that the sub-activity of entering the location took thirty minutes (rather than the average twenty minutes). Therefore, the video game platform may generate and send a second notification (or update an existing notification) to indicate that the remaining length of time (e.g., clearing obstacles) is twenty minutes (or this may be adjusted upward in view of slower than average game time), rather than fifteen minutes (e.g., forty-five minutes minus thirty minutes).
[0040] Embodiments of the present disclosure provide many technical advantages that are superior to existing video game platforms. In particular, the user interface (e.g., GUI) is improved relative to the existing user interface because relevant information (e.g., about the timing of the activity, activity suggestions, etc.) can be presented in the user interface in a common manner across different applications and different computing devices. For example, by collecting events, video games, and video game players for each activity, the video game platform of the present disclosure can accurately estimate the time length for the user to complete the activity. Because accurate estimates can be generated, a variety of video game functions become possible. In particular, the estimated time length of the activity in the video game can be presented on the user interface in a common presentation manner with other activities (in video games and other video games) and different types of computing devices (e.g., the same information can be displayed on a video game console and a mobile device). In addition, only when the time length of the activity completion is less than a predefined threshold value, the activity can be presented in the suggestion notification. Therefore, by considering the time length of the activity completion, different activities can be suggested in a common manner across video games.
[0041] Figure 1An example of a computing environment for collecting and processing video game events according to an embodiment of the present disclosure is shown. As shown, the computing environment includes a video game console 110, a video game player device 130, a video game platform 150, a video game developer system 170, and a third-party system 190. The video game console 110 can obtain video games from the video game developer system 170 through the video game platform 150. The video game console 110 can also obtain video content, such as help videos demonstrating how to play video game activities, from the third-party system 190 through the video game platform 150. The video game platform 150 collects, stores, and processes events from the video game player device 130 and the video game console 110 to provide various video game related functions, including, for example, suggesting video game activities, estimating the completion time of such activities, and providing video game help.
[0042] In one example, video game console 110 represents a computing device that is available and operable to user 112 to interact with one or more applications including video games. Display 120 communicatively coupled or integrated with video game console 110 may present video game related data, including video game content 122, to user 112. User 112 may use other types of computing devices including, for example, a smartphone, tablet computer, laptop computer, desktop computer, or other device with suitable memory and processor.
[0043] Video game console 110 may execute the video game locally to present video game content 122 on display 120. Additionally or alternatively, video game console 110 may receive video game content 122 based on execution of an instance of a video game application on video game platform 150, video game developer system 170, or another remote computer system. Video games may also be downloaded to video game console 110 from such systems.
[0044] In addition, the video game console 110 may download or stream video content from the third-party system 190, either directly or through the video game platform 150, for presentation on the display 120. Examples of video content include video files generated by the video game developer 170 and uploaded to the third-party system 190, wherein the video file demonstrates how a video game may be played, how a set of activities in a video game may be played, or how a set of mechanics in an activity may be used to play the activity. Mechanisms generally represent at least one of a set of tools, a set of abilities, or a set of skills that can be used to play an activity or a portion of an activity. Another example of video content includes a video file generated by one of the video game player devices and uploaded to the third-party system 190, either directly or through the video game platform 190, wherein the video file records the gameplay of the video game player operating the video game player device. Similarly, similar video files may be uploaded from the video game console 110 to the third-party system 190.
[0045] In one example, video game player device 130 represents a computing device of a video game player who may, but need not, include user 112. Similar functionality may be provided on each of the video game player device and video game console 110.
[0046] In one example, video game system 170 represents a computer system that includes a set of computing resources for developing video games and that can be used by video game developers. In particular, video game system 170 can store video game software 172, upload such software 172 to video game platform 150, and / or download such software 172 to video game console 110.
[0047] The video game software 172 of the video game is a program code that is executable to present and interact with the video game content of the video game. The program code may include predefined plug-ins to generate events when the program code is executed. In particular, the program code includes a set of event definitions 174, wherein the event definition represents a code that defines an identifier of an event and data to be reported for the event. Examples of such event definitions 174 are further described below and are predefined in the program code of the video game according to event templates that can be obtained from the video game platform 150. Such event templates can be defined by a service provider of the video game platform 150 and can generally be used across multiple video game developer systems 170.
[0048] In one example, third-party system 190 represents a computer system, such as one or more content servers, for providing video content 192 to video game console 110, either directly or indirectly through video game platform 150. As explained above, video content 192 may include video files that demonstrate how a video game may be played, how a set of activities in a video game may be played, or how a set of mechanics in an activity may be used to play the activity. Video content 192 may be uploaded to third-party system 190 from one or more of video game developer system 170, video game console 110, and / or video game player device 130, either directly or indirectly through video game platform 150.
[0049] In one example, video game platform 150 represents a computer system that provides various video game related functions to video game console 110. For example, video game platform 150 is provided as a hub between video game console 110, video game player device 130, video game developer system 170, and third party system 190. In particular, video game software 172 and video content 192 may be downloaded to video game console 110 via video game platform 150. For video game console 110, an instance of a video game based on the video game software stored on video game platform 150 may be instantiated. Video files may be streamed to video game console 110 via video game platform 150. Also, communication data (e.g., messages, commands, etc.) may be exchanged between video game console 110 and video game player device 130 via video game platform 150.
[0050] Additionally, the video game platform receives event data 114 from the video game console 110 and event data 132 from the video game player device 130 and stores such received data as event data 154 in the data store 152. An event processor 156 of the video game platform 150 processes the event data 154 to generate and send any of an activity time estimate 162, an activity suggestion 164, and an activity help 166 to the video game console 110 for presentation on the display 120.
[0051] The received event data (either event data 114 or event data 132) represents data of an event based on the execution of program code of a video game reported from a device (e.g., a video game console 110 or one of video game player devices 130 as an application), wherein the program code includes an event definition of the event. Activity time estimate 162 represents an estimated length of time to complete an activity in a video game, which may be referred to herein as a completion time. Activity suggestion 164 represents information suggesting an activity in a video game that is available to user 112 and that user 112 has not previously performed or completed. Activity help 166 includes information about completing an activity in a video game or using a mechanism in at least a portion of an activity, such as a video file, a text description, and / or a graphical description. Processor 156 executes, for example, logic for performing statistical analysis across a subset of event data 154 associated with an activity to generate activity time estimate 162, activity suggestion 164, and activity help 166. Additionally, processor 156 may execute logic to customize any of activity time estimates 162 , activity suggestions 164 , or activity help 166 based on the context of user 110 in the video game and / or within the platform and the type of video game console 110 .
[0052] Generally speaking, an activity is a gameplay unit inherent to the structure of a video game. There are different categories of activities, including push-type activities, competitive activities, challenging activities, and open activities. An activity can be defined as an object with multiple attributes in a program code. Attributes include an activity identifier, a name, and a category. An activity identifier is a unique identifier for an activity. When reporting an event about an activity to a video game platform 150, the corresponding event data refers to the activity identifier. The name can be a short localized name for the activity. Other attributes are possible, including, for example, descriptions (e.g., longer descriptions of the activity), images of the activity, default availability (e.g., whether the activity is available to all video game players before starting the video game), whether the activity needs to be completed to complete the game, whether the activity can be played repeatedly in the video game, and nested tasks (small activities, also referred to as sub-activities herein). Multiple events about an activity are possible.
[0053] An example of an event about activities may indicate a change in the availability of activities for a video game player (e.g., user 112). This is primarily used to decide which activities to display and to remove spoiler blocks for those activities (where activities with spoilers may not be displayed to the video game player). The properties of the event include, for example, a list (e.g., an array) of currently available activities.
[0054] An example of an event about an activity may indicate that the video player is currently participating in an activity or task (e.g., a small activity). The attributes of the event include, for example, an activity identifier of the activity. Another attribute may optionally be a time corresponding to the start of participating in the activity.
[0055] An example of an event about an activity may indicate the end of an activity or task (e.g., a small activity). The attributes of the event include, for example, an activity identifier of the activity. Another attribute may optionally be a time corresponding to the end of participation in the activity. Yet another attribute may optionally be the result of the activity, such as completion, failure, or abandonment.
[0056] The video game platform 150 may also collect data about zones in the video game, where the data is reported similarly to events based on pre-definitions in the program code of the video game. A zone represents an area of the game world (e.g., a virtual world) of a video game having a single coordinate system. A zone may have a two-dimensional (2-D) map image associated with it for displaying locations on the zone. A zone may be defined in the program code as an object with multiple attributes. Attributes include a zone identifier and a name. The zone identifier is a unique identifier for the zone. The name may be a short localized name for the zone. Other attributes are possible, including, for example, an indication of whether an object should be considered hidden (the default value may be set to false) for a spoiler block use case, a map (e.g., a high-resolution image of a zone 2-D map), a view projection (e.g., a matrix (4x4) for converting from a three-dimensional (3-D) working coordinate to a 2-D map position), and an image (e.g., a display image of the zone if different from a map). Multiple events about a zone are possible.
[0057] An example of an event about a zone may indicate an update to the current in-game position of a video game player. The event may be reported periodically, or whenever a significant change occurs to the player's in-game position. Attributes of the event include a zone identifier. Other attributes are possible, such as optionally a position (e.g., the x, y, z position of a video game player character (the video game player's virtual player) in a zone) and an orientation (e.g., an x, y, z vector indicating the direction of the video game player character).
[0058] Another example of an event about a zone may indicate the zone, location, and orientation of a video game player when an activity is started. This event may enable location-based help. The attributes of this event include an activity identifier. Other attributes are possible, such as an optional zone identifier and the location and orientation of the video game player's character in the video game.
[0059] Another example of an event about a zone may indicate the zone, location, and orientation of the video game player at the start and end of the game. This event may also enable location-based help. The attributes of this event include an activity identifier. Other attributes are possible, such as optionally the result of the activity, a zone identifier, and the position and orientation of the video game player's character in the video game.
[0060] The video game platform 150 may also collect data about actors in the video game, where the data is reported similar to events based on pre-definitions in the program code of the video game. An actor represents an entity in the video game that has behavior. An actor may be player-controlled or game-controlled, and this may change dynamically during game play. An actor may be defined in the program code as an object with multiple attributes. Attributes include an actor identifier and a name. The actor identifier is a unique identifier for the actor. The name may be a localized name for the actor. Other attributes are possible, including, for example, an indication of whether the object should be considered hidden for a spoiler block use case (the default value may be set to false), an image of the actor, and a short description of the actor. Multiple events about an actor are possible.
[0061] An example of an event regarding actors may indicate a change in the video game player's selection of actors. The selected actor represents the actor that the video game player controls in the video game, and may be displayed on the video game player's profile and other presentation spaces. More than one actor may be selected at a time. The video game should replace the actor list when loading save data. The properties of this event include a list (e.g., an array) of the actors currently selected by the video game player.
[0062] The video game platform 150 may also collect data about mechanisms in the video game, where the data is reported similarly to events based on predefined definitions in the program code of the video game. Mechanisms represent items (e.g., tools), abilities, skills, or effects (e.g., bows, arrows, stealth attacks, fire damage) that can be used by video game players or video games to affect gameplay. Mechanisms generally do not include items (e.g., collectibles) that do not affect gameplay. Mechanisms may be defined in program code as objects with multiple attributes. Attributes include mechanism identifiers and names. Mechanism identifiers are unique identifiers for mechanisms. Names may be short localized names of mechanisms. Other attributes are possible, including, for example, instructions for whether objects should be considered hidden (default values may be set to false) for spoiler block use cases, images of mechanics, and short descriptions of mechanisms. Multiple events about mechanisms are possible.
[0063] An example of an event about a mechanic may indicate that a mechanic available to a video game player has changed. The availability of a mechanic indicates that the mechanic is available to the video game player in the game world, but may require the video game player to go through some steps to get it into their inventory (e.g., download from a store, pick it up from the world) before using it. This event may also be used to indicate the removal of spoiler blocks on mechanic objects, as well as filtering help tips to avoid suggesting the use of unavailable mechanics. The video game should replace the list of mechanics when loading save data. The properties of this event include a list (e.g., an array) of currently available mechanics.
[0064] Another example of an event regarding a mechanic may indicate that the video game player's inventory has changed. Inventory refers to mechanics that are immediately available to the video game player without requiring additional steps in the video game before use. Inventory information can be used to estimate the player's readiness for an activity. The video game should replace the inventory list when loading save data. The properties of this event include a list (e.g., an array) of mechanics that are currently in the inventory.
[0065] Yet another example of an event regarding mechanics may indicate that the output of a video game player has changed. The output represents the mechanics that the video player has the most direct access to, and is a subset of the inventory that can be displayed to the video game player. The video game should replace the list of mechanics when loading save data. The properties of this event include a list (e.g., an array) of mechanics that are now part of the active output.
[0066] Yet another example of an event about a mechanic may indicate that the mechanic has been used by or against a video game player. The attributes of this event include a list (e.g., an array) of the mechanics used (e.g., flaming arrows, fire damage), and whether the mechanic was used by or against a video game player. Other attributes are possible, such as optionally an initiating actor identifier (e.g., an identifier of an actor that initiated the use of the mechanic), an initiating actor's zone identifier, and an initiating actor's location.
[0067] Another example of an event about a mechanic may indicate that the mechanic had an effect on gameplay (e.g., an arrow hit a target). The attributes of this event include a list (e.g., an array) of mechanics used (e.g., flaming arrows, flaming damage), and whether the mechanic was used by or against a video game player. Other attributes are possible, such as optionally an initiating actor identifier, an initiating actor's zone identifier, an initiating actor's location, a target initiating actor (e.g., an identifier of an actor targeted by the mechanic), a target's zone identifier, a target actor's location, and an identifier of the mechanic that mitigated the initiator's mechanic.
[0068] The video game platform 150 can also collect data about game media in the video game, where the data is reported based on predefined in the program code of the video game similar to an event. Game media represents media clips (text, audio, video, images) related to the video game provided by the game developer. Game media may exist in the game (e.g., cutscenes, audio logs, books) or may not exist (e.g., developer comments). Game media can be defined in the program code as an object with multiple attributes. Attributes include game media identifiers, names, formats, categories, unlocking rules, and uniform resource locators (URLs). Game media identifiers are unique identifiers for game media. Names can be localized names for game media. Formats can indicate media formats, such as whether game media is images, audio, video, text, etc. Categories indicate the type of game media, such as whether game media is cutscenes, audio logs, posters, developer comments, etc. Unlocking rules indicate whether game media should be unlocked for all video game players or unlocked based on activities or specific game media events. The URL references media files provided by a server, where the server can be part of the game developer system 170 or the video game platform 150. Other properties are possible, including, for example, an indication of whether the object should be considered hidden for a spoiler block use case (the default value may be set to false), permissions (e.g., indicating that only video game players with specific video game permissions can unlock the game media), and activity identifiers (e.g., associating the game media with a specific activity). Multiple events are possible regarding the game media.
[0069] An example of an event about gaming media may indicate that a particular gaming media segment has been unlocked for a video game player. The attributes of the event include a gaming media identifier.
[0070] Another example of an event about gaming media may indicate that a particular gaming media segment has been started in a video game. The gaming media object should be considered unlocked for the video game player at the corresponding time. The attributes of the event include a gaming media identifier.
[0071] Another example of an event about gaming media may indicate that a particular gaming media segment has ended in a video game. The attributes of the event include a gaming media identifier.
[0072] Figure 2An example of a system architecture for providing contextual information about available gaming activities to a user according to an embodiment of the present disclosure is shown. In some embodiments, the exemplary system architecture 200 includes a game client 205, a universal data system (UDS) software development kit (SDK) 210, a console system software 215, a local rule engine 220, a UDS server 225, a game server 230, processed data 235, and one or more other remote networked services, including a help service 240, a game plan 245, user generated content (UGC) tagging 250, and other services 255. The help service 240 may also receive information from other data sources 260. Some components of the system architecture 200 are Figure 1 Examples of components of video game platform 150. For example, UDS server 225 and game server 230 are components of video game platform 150.
[0073] The game client 205 and the game server 230 provide context information about at least one application to the universal data system (UDS) server 225 via the UDS data model, which describes the logical structure of the UDS data used by the UDS SDK 210. The UDS data model enables a platform (e.g., a video game platform 150) to implement remote networking services such as help services 240, game plans 245, UGC tagging 250, and other services 255 that require game data without the need to patch the game separately to support the service. The UDS data model assigns context information to a portion of the information across games in a unified manner. The context information from the game client 205 and the UDS SDK 210 is provided to the UDS server 225 via the console system software 215. It will be understood that the game client 205, the UDS SDK 210, the console system software 215, and the local rule engine 220 can be run on a computer or other suitable hardware for executing at least one application.
[0074] The UDS server 225 receives context information from at least one application from the game client 205 and the game server 230 and stores the context information. Of course, the UDS server 225 may receive context information from multiple game clients and game servers for multiple users. The information may be processed uniformly 235 and then received by multiple remote networking services 240, 245, 250, and 255.
[0075] Figure 3Another example of a system architecture 300 according to an embodiment of the present disclosure is shown. A game client 305 sends context information to a UDS server 310, which provides the context information to multiple remote networked services in a unified data model, including profile statistics 315, game plans 320, sessions 325, leagues 330, attendance 335, and a help system 340.
[0076] Figure 4 An example of a system 400 for providing a data model of a common data platform 410 according to an embodiment of the present disclosure is shown. Some components of the common data platform 410 are Figure 1 430 . In one example embodiment, the system 400 may include at least one device 430 configured to execute at least one of a plurality of applications 432, each having an application data structure. The common data platform 410 may be executed on one or more servers. The common data platform 410 may include a data model that is unified across the plurality of application data structures. The data model may include metadata 412 corresponding to at least one object indicated in the data model, and events 414 corresponding to trigger conditions associated with at least one metadata entry. The values of the metadata 412 and the events 414 may be associated with a user profile. The common data platform 410 may be configured to receive application data from at least one device 430 and store the application data in the data model. The system 400 may also include a plurality of remote networking services 420, which are configured to access application data from the common data platform 410 using the data model.
[0077] In various embodiments, metadata 412 may include: a list of all activities that a user can perform in the application, the name of the activity, a description of the activity, the status of the activity (whether it is available, started or completed), whether the activity requires the completion of a goal or campaign, the reward for completing the activity, the opening or ending cutscenes, the location in the game, one or more conditions that must be met before the activity becomes available, and the parent activity that contains the activity as a child activity. Metadata 412 may also include: a list of abilities that the user can use, the effects of each action, telemetry indicating when the actions and effects occur (including corresponding timestamps and locations), the in-game coordinate system, a list of branching situations in the game, and telemetry indicating when the branching situation is encountered and which option the user selects. A list of in-game statistics, items, lore, areas in the game, and corresponding attributes about each statistic, item, lore, or area may also be included in metadata 412. In addition, metadata 412 may indicate whether a particular activity, entity (such as a character, item, ability, etc.), setting, result, action, effect, location, or attribute should be marked as hidden.
[0078] Events 414 may be fired in response to a number of various trigger conditions. For example, such trigger conditions may include: a previously unavailable activity becoming available, a user starting an activity, a user ending an activity, an opening or closing cutscene for an activity starting or ending, a user's in-game location or zone changing, in-game stats changing, an item or lore being acquired, an action being performed, an effect occurring, a user interacting with a character, item, or other in-game entity, and an activity, entity, setting, result, action, effect, location, or property being discovered. Events 414 may include other information about the state of the application at the time event 414 was triggered, such as a timestamp when the user started or ended the activity, difficulty settings and character statistics, success or failure of the activity, or a score or duration associated with a completed activity. It will be appreciated that metadata 412 and events 414 may include any and all contextual information related to the activities described in the present disclosure.
[0079] Figure 5 An example of an activity hierarchy according to an embodiment of the present disclosure is shown. As shown, activity 510 may include multiple nested tasks (referred to herein as sub-activities), thereby forming a hierarchy 500. Activity 510 may be a node (e.g., a root node) at the top of hierarchy 500 and may have a group of small sub-activities 520A to 520K at the next level of hierarchy 500. Then, each of sub-activities 520A to 520K may be a child node of activity 510, and may be a parent node of a group of sub-activities at the next level of hierarchy. For example, sub-activity 520K is a parent node of a group of sub-activities 530A to 530L. This type of association between nodes (each of which represents a sub-activity) may be repeated at different levels of hierarchy 500. A group of mechanisms may be associated with each node, indicating that such mechanisms may be obtained or available in the activity corresponding to the node.
[0080] As explained above, activity 510 has an activity identifier. Each sub-activity also represents an activity, and therefore also has an activity identifier. Similarly, each of the mechanisms has a mechanism identifier. The association between the activity identifiers themselves and between the activity identifier and the mechanism identifier can be defined based on the hierarchy 500. Such association can be stored in an object defining an activity (or sub-activity) and / or defining a mechanism and / or can be stored in an event related to such an object. For example, the activity identifier of sub-activity 520K can be associated with the activity identifier of activity 510 and / or the activity identifier of sub-activity 530A to 530L. Similarly, the activity identifier of sub-activity 530L can be associated with the activity identifier of sub-activity 520L and / or the mechanism identifier of mechanism 540A to 540M. In addition, the mechanism identifier of the mechanism can be associated with the activity identifier.
[0081] Figure 6An example of a user interface for presenting an estimated length of time to complete an activity according to an embodiment of the present disclosure is shown. In particular, a video game console (e.g., Figure 1 The video game console 110) provides a video game to a user (e.g., Figure 1 The video game related function is presented to the user 112 of the video game. In addition to being able to play the game, the game related function also presents an estimated time length (e.g., estimated completion time) of the activity. User input can be received to start the activity after presenting the estimated completion time of the activity.
[0082] like Figure 6 As shown, a video game console is shown on a display (e.g., Figure 1 The user interface 600 is presented on the display 120 of the user interface 120. The user interface 600 includes a video game page that displays various information and functions related to the video game. In one example, a brief description 610 of the video game is presented (e.g., the game name, developer, version of the video game). A selectable option 620 for starting the video game is also presented. Other information and functions are also possible.
[0083] In addition, a set of activity suggestions 630 are presented. Each of the activity suggestions 630 may be presented as a window, icon, overlay, or any other graphical user interface element within the user interface 600. The activity suggestion may identify an activity in the video game that is available to the user and that the user has not previously attempted or completed. For example, the activity suggestion includes a text description and an image of the activity, where such data may be obtained from the object that defines the activity.
[0084] In addition, the activity suggestion includes an estimated completion time 640 for the activity (e.g., a first suggested activity for running a few laps on new tires to warm up is displayed as twenty minutes, while a second suggested activity for running a new track is displayed as five minutes). The estimated completion time 640 may be generated based on event data associated with the activity, where the event data is collected from multiple video game devices and for multiple video game players who have played the activity.
[0085] User selection of a suggested activity may trigger the video game console to launch the activity (eg, locally launch or remotely launch an instance of a video game on a video game platform). Video game content related to the activity may be presented in user interface 600.
[0086] Figure 7 Another example of a user interface for presenting information about an estimated length of time to complete an activity according to an embodiment of the present disclosure is shown. Here, in addition to a video game console, a user device 700 (such as a smartphone) may execute an application that provides access to video game content from a video game platform (e.g., Figure 1The functionality includes receiving activity suggestions 730 via a pull mechanism or a push mechanism for presentation in the user interface 710. The activity suggestions 730 may be associated with activities in different video games, each of which is available to the user and which the user has not previously attempted or completed. For example, each activity suggestion identifies the corresponding video game and includes a text description and image of the activity, wherein such data may be obtained from an object defining the activity. In addition, each activity suggestion includes an estimated completion time 730 for the activity (e.g., a first suggested activity of running a few laps with new tires to warm up in a speed game is displayed as twenty minutes, while a second suggested activity of helping a friend control a flag in a conquest game is displayed as forty-five minutes). In addition here, the estimated completion time 720 for each suggested activity may be generated based on event data associated with the activity, wherein the event data is collected from multiple video game devices and for multiple video game players who have played the activity.
[0087] A user selection of a suggested activity may trigger the user device 700 to queue the activity in the user account of the user (e.g., download the activity, add the activity to a list of activities to be performed, etc.) so that the activity may be subsequently launched for the user. Alternatively or additionally, the user selection may trigger the user device 700 and / or a video game console associated with the user account to launch the activity (e.g., locally launch or remotely launch an instance of a video game on a video game platform).
[0088] Figure 8 An example of an activity type 800 according to an embodiment of the present disclosure is shown. The completion time of an activity in a video game can be estimated based on the activity type of the activity. The activity type can be set as an attribute in an object that defines the activity.
[0089] As shown, multiple activity types 800 are possible: push-type activities, competitive activities, challenge activities, and open activities. Push-type activities are associated with failure and success (e.g., if not abandoned, the result of the activity is either failure or success). Push-type activities can be played in single-player mode or multi-player mode. Competitive activities are associated with synchronous play (e.g., real-time play) with another video game player or with a virtual player (e.g., with a video game). Challenge activities are associated with asynchronous play (e.g., non-real-time) with another video game player or with a virtual player. Open activities are associated with a game world that does not predefine a specific result (e.g., the activity does not need to end with abandonment or with failure or success). Push-type activities, competitive activities, and open activities can be played in single-player mode or multi-player mode. In contrast, challenge activities are usually played in single-player mode.
[0090] The method of estimating the completion time of an activity varies according to its activity type. For example, before starting a push-up activity in a single-player mode, the completion time of a push-up activity is based on a measurement of time to success (TTS). The measurement is derived from event data about a push-up activity recorded for a plurality of video game players, each of which plays the activity in a single-player mode, and these measurements are statistically analyzed (e.g., as an average or mean) to generate a completion time. The TTS measurement of a single video game player includes (if applicable) the duration between the start and end of a push-up activity with a failure result (a multiple of these durations, if applicable) and the duration between the start and end of a push-up activity with a success result. For example, if a video game player succeeds in an activity after failing "n" times, the TTS measurement of the video game player's activity may include "n" durations of the failed activity and the duration of the successful activity. The estimated completion time of the activity can be calculated by multiplying the average duration of the failed activity and the average of the number of failures until success and adding the average duration of the successful activity. Once a push activity begins, the estimated length of time for the activity is prorated given the elapsed time and the remaining sub-activities associated with the activity.
[0091] When a push-up activity is performed in multi-player mode, a similar approach may be employed, wherein TTS measurements are used before the push-up activity begins and prorated allocation is applied at its start. However, here, event data is analyzed at a group level rather than at a single player level. In particular, event data received for a group of video game players playing a push-up activity together is identified. The durations of failures and successes for these video game players are aggregated. The total durations for multiple groups of video game players are averaged (or some other statistical function is applied) to generate an estimated completion time. In other words, the estimated completion time of a multi-player push-up activity is represented as the estimated length of time it took a group of video game players to complete the activity.
[0092] In one example, before a competitive activity is started in a single-player mode, the completion time of the competitive activity is based on a measurement of the time to attempt (TTA). The measurement is derived from event data recorded for a plurality of video game players regarding the competitive activity, each of which plays the activity in a single-player mode, and these measurements are statistically analyzed (e.g., as an average or mean) to generate a completion time. The TTA measurement for a single video game player includes (if applicable) the duration between the start and end of the attempted push-up activity, regardless of the outcome of the competitive activity (if any). If a single video game player repeats the competitive activity, multiples of these durations are applicable. Once the competitive activity begins, the estimated time for the activity is not prorated. Instead, the estimated completion time can be updated based on the difference between the original estimate and the elapsed time.
[0093] When engaging in a competitive activity in a multi-player video game, the measured value of TTA corresponds to the duration of a group of video game players, for example, if the group of video game players includes a first video game player and a second video game player, and if the TTA of the group may be an aggregate of the TTA of the first video game player and the TTA of the second video game player, or depending on the competitive activity itself, corresponds to the longest of the TTA of the first video game player and the TTA of the second video game player.
[0094] In one example, before a challenge activity is started in a single-player mode, the completion time of the challenge activity is a measurement based on TTA. The measurements are derived from event data recorded for a plurality of video game players regarding the challenge activity, each of which plays the activity in a single-player mode, and these measurements are statistically analyzed (e.g., as an average or mean) to generate a completion time. Once the challenge activity is started, the estimated time for the activity is not prorated. Instead, the estimated completion time may be updated based on the difference between the original estimate and the elapsed time.
[0095] In one example, an estimated completion time may not be generated for an open activity. Thus, if such an activity is suggested, the estimated completion time may not be included in the activity suggestion.
[0096] In one example, the estimated time to complete an activity may be a factor in determining whether to recommend an activity. In particular, the time to complete may be bounded by an upper limit and a lower limit. As shown, the upper limit is two hours and the lower limit is five minutes (although other time ranges are possible, and these ranges may vary based on the type of activity). If the estimated time to complete an activity falls between these two limits, then the activity may be recommended. If it exceeds these two limits (e.g., longer than two hours or shorter than five minutes), then the activity is generally not recommended.
[0097] Additionally, when an estimated completion time is generated, the completion time may be rounded for presentation in the user interface. Rounding is done to a multiple of a time interval, where the time interval may be based on the type of activity. As shown, the time interval is set to five minutes (although different values may be used and may vary based on the type of activity). For example, instead of displaying the true estimate as thirteen minutes and twenty-nine seconds, the completion time may be presented as fifteen minutes (rounded to three times the five minute time interval).
[0098] As combined Figure 5 As explained above, an activity may include a set of sub-activities. The sub-activities may, but need not, be of the same type. Thus, an activity may have multiple activity types. The estimated completion time of an activity may be the sum of the estimated completion times of the sub-activities. Conversely, the estimated completion times of sub-activities may be performed according to their activity types, as described above.
[0099] In one illustration, when a sub-activity has a parent activity that is a push-type activity or an open activity, the TTS measurement can be used for the sub-activity before it starts, and once it starts, the prorated allocation can be used. The upper and lower limits can be defined as two hours and one minute, with the time interval being one minute for rounding. In addition, if a task is a small activity of a sub-activity and has no other small dependencies, the TTS measurement can be used for the task.
[0100] Fig. 9 An example of a measurement value generated from a video game event according to an embodiment of the present disclosure is shown. In particular, for multiple video game players, event data about an activity is collected through data from multiple video game player devices. For example, an event is received from a video game player and an activity identifier for the activity is included in the attributes of the event. The event data is processed to determine the start and end activities of the activity and its results (if applicable) for each video game player (if the activity corresponds to a single player mode) or each group of video game players (if the activity corresponds to a multi-player mode). If applicable (for example, based on a combination of Figure 8 The duration between start and end is the measurement used to calculate TTS or TTA.
[0101] A statistical distribution may be generated from the measured values, wherein the statistical distribution associates duration 910 (e.g., TTS and / or TTA determined for different video game players) with counts 920 for the video game players. Duration 910 may be set as a variable of the distribution. For example, each time a video game player completes an activity within a specific duration, the count associated with the specific duration is increased by one. Of course, other statistical distributions may be generated from duration 910 and count 920, such as a probability distribution function, a cumulative distribution function, and the like.
[0102] The time to complete an activity may be estimated based on a distribution. For example, the time to complete may be estimated as an average or mean of durations 910, as a specific duration corresponding to a predefined percentile (e.g., the 80th percentile), or as an average or mean duration that falls within a range of percentiles (e.g., between the 70th and 80th percentiles).
[0103] Fig.10 An example of a player distribution generated from a video game event according to an embodiment of the present disclosure is shown. The player distribution can be used to generate an adjustment factor that can be used to customize the estimated completion time for a particular user.
[0104] In one example, event data is received from video game player devices of different video game players. The event data for the video game players may indicate an activity in the video game (e.g., by including an activity identifier for the activity) and a duration of the activity (e.g., by including an indication of the start and end of the activity, where the duration may be derived as TTS and / or TTA depending on the activity type). For each player, such durations are statistically analyzed to determine an average completion time for each video game player, where the average completion time 1010 may be for activities in general or for activities in a particular video game and / or for activity types in general or for activity types in a particular video game. A statistical distribution of average completion times 1010 for different video game players may be generated, where the average completion time 1010 is a variable of the distribution.
[0105] In one example, the distribution associates average completion times 1010 with deciles 1020. In particular, the corpus of video game players may be divided into ten equal sub-portions, where each sub-portion corresponds to a particular range of average completion times 1010. For example, the longest average completion time is sixty minutes. Thus, the ten sub-portions correspond to six minute increments. The first decile may correspond to video game players with average completion times between zero and six minutes, the next decile may correspond to video game players with average completion times between six and twelve minutes, and so on, until the tenth decile corresponds to video game players with average completion times between fifty-four and sixty minutes.
[0106] Each decile can be associated with a value of the adjustment factor. In one example, the greater the average completion time corresponding to a decile, the greater the value associated with that decile. In this example, the adjustment factor is used as a multiplier for the estimated completion time for a particular activity. For example, the value increases by 0.2 between deciles. Thus, the first decile is associated with a value of 0.2, the second decile is associated with a value of 0.4, and the last decile is associated with a value of 2.
[0107] To adjust the estimated completion time for a particular activity for a particular user, determine the average completion time for the user from event data associated with the user. Determine the particular decile that corresponds to the average completion time, and look up the value associated with that decile. Set the adjustment factor to that value, and multiply the estimated completion time by the adjustment factor.
[0108] To illustrate, the estimated completion time for a particular activity is ten minutes. Based on the user's play time history, it is determined that the user belongs to the second decile associated with a value of 0.4 (e.g., the user belongs to the second fastest group of video game players). Therefore, the estimated completion time is adjusted from ten minutes to four minutes based on the user.
[0109] Other ways of setting the adjustment factor are also possible. In a first example, a cohort of video game players is generated. For example, the cohort is generated based on the player's play time history and indicates slow, medium and fast players. In another example, cohorts are generated based on the characteristics of the video game players and / or their video game player devices (e.g., cohorts of expert players and cohorts of novice players, cohorts according to mechanisms, or cohorts according to input device types, etc.). Each cohort is associated with a value of the adjustment factor. Data about the user (such as the user's play time history, characteristics and / or user devices) can be processed to determine the cohort to which the user belongs. The value of the cohort is determined and set as the adjustment factor.
[0110] In a second example, the adjustment factor is set according to the following items: the mechanism that the user can use to complete the activity in the video game, the familiarity measure of the user's use of the tool, the user's position in the virtual area within the video game relative to the location of the activity in the virtual area, the travel time between two locations, or the help prompts (e.g., video, text, etc.) about the viewing of the activity. For example, an estimated completion time is generated according to event data about a specific activity. The event data may indicate a specific percentage of video game players who successfully complete the activity by at least partially using a specific mechanism. The adjustment factor is set as a function of the mechanism. Therefore, if the mechanism is available to the user, the adjustment factor may reduce the estimated completion time, or conversely, if the mechanism is not available to the user, the adjustment factor may increase the estimated completion time. In another explanation, the user's game time history may be processed to determine the frequency of use of the mechanism and the success rate of use (e.g., based on event data indicating use and impact). The familiarity measure may be set as a function of the frequency and success rate (e.g., the greater the frequency and the greater the success rate, the greater the familiarity measure). And the adjustment factor may be set as a function of the familiarity measure (e.g., the greater the familiarity measure, the smaller the adjustment factor when the factor is used as a multiplier). In yet another illustration, the farther the locations are from each other, the larger the adjustment factor may be set (when the adjustment factor is used as a multiplier) to account for the user's video game character (e.g., the user's virtual player) traveling between locations. Travel time may be estimated (e.g., based on distance and possible speed), and the adjustment factor may be set equal to the travel time (in which case the adjustment factor is added to the estimated completion time rather than used as a multiplier). In another illustration, if the user views help hints specific to how to complete the activity, the adjustment factor may be reduced (when the adjustment factor is used as a multiplier). The greater the number of help hints viewed, the greater the reduction may be.
[0111] In another example, a cohort is also generated but the adjustment factor is not used. Instead, it is determined that the user belongs to a cohort. And event data corresponding to a particular activity and the video game players belonging to the cohort is determined. An estimated completion time for a particular activity is determined for the user based on the particular event data.
[0112] Figures 11 to 13An example process for estimating the time length of an activity in a video game for a user is shown. The operations of the process may be implemented as hardware circuits and / or stored as computer-readable instructions on a non-transitory computer-readable medium of a computer system (such as a video game console and / or a video game platform). As implemented, the instructions represent a module including circuits or codes that can be executed by a processor of the computer system. Execution of such instructions configures the computer system to perform specific operations described herein. Each circuit or code combined with the processor represents a device for performing a corresponding operation. Although the operations are shown in a particular order, it should be understood that a particular order is not required and certain operations may be omitted.
[0113] Fig.11 An example of a flow process for estimating the duration of an activity in a video game (e.g., estimating completion time) according to an embodiment of the present disclosure is shown. In one example, the flow process includes operation 1102, wherein a computer system receives an identifier of an activity and completion data indicating that a video game player has completed the activity. As explained above, an activity identifier is predefined in the program code of the video game. Activity identifiers and completion data are received based on the execution of program code on, for example, a video game console, a video game platform, and / or a remote system. For example, activity identifiers and completion data are received as events. Each such event includes an activity identifier as an attribute, the beginning or end of an activity as an attribute, and optionally the result of the activity.
[0114] In one example, the process includes operation 1104, where the computer system stores the activity identifier and the completion data in a data store. For example, the received event is stored as event data in the data store. The data store may store similar events for a plurality of other video game players, each such event indicating the activity or another activity (which may be in the video game or in another video game).
[0115] In one example, the process includes operation 1106, where the computer system determines from the data store an activity and completion data for a plurality of video game players. For example, the activity identifier is used to look up stored event data and retrieve an event that references the activity identifier. For each video game player, the event data may indicate a start and end of the activity, and optionally a result of the activity. The start, end, and result represent completion data.
[0116] In one example, the process includes operation 1108, where the computer system determines a measurement of a completion activity for a plurality of video game data based on the determined completion data. The measurement includes at least one of TTS or TTA based on the activity type. For example, if the activity is a push-type activity, the TTS measurement is derived from the start, end, and result indicated by the event data. If the activity is a competitive activity or a challenge activity, the measured TTA is derived from the start and end indicated by the event data. If the activity is played in a multi-player mode, the measurement may also include the total duration of video game players forming a video game player group.
[0117] In one example, the process includes operation 1110, in which the computer system estimates the length of time to complete an activity for users who have not yet completed the activity based on the measured values. In particular, statistical analysis can be applied to the measured values, where the estimated length of time is derived, for example, using an average, mean, or percentile function, such as in combination with Fig. 9 In addition, the estimate can be modified specifically for the user, such as in combination with Fig.10 described.
[0118] In one example, the process includes operation 1112, where the computer system presents the length of time on a user device associated with the user. For example, the user device can be a video game console or a mobile device, such as a computer system that is associated with a user. Figure 6 to Figure 7 The duration may be presented as part of the suggested activity. Additionally, the duration may be rounded to a multiple of a time interval, which may depend on the type of activity.
[0119] Fig.12 An example of presenting activity suggestions based on estimated time length according to an embodiment of the present disclosure is shown. In one example, the process includes operation 1202, where a computer system estimates a time length based on completion data of a plurality of video game players.
[0120] In one example, the process includes operation 1204, where the computer system determines an adjustment factor. For example, the adjustment factor is determined by a user before the activity begins. Different techniques can be used to determine the adjustment factor, such as combining Fig.10Described. In the first technique, a decile distribution of average completion time is generated based on the game time history of multiple video game players. The average completion time of a user is also determined based on the game time history of the user and the determination of which decile the user belongs to. The adjustment factor is set based on the decile and is used to increase or decrease the estimated time length. In the second technique, a cohort is generated based on the game time history of multiple video game players, the characters of the video game players, and / or the video game player devices. Data about the user is processed to determine which cohort the user belongs to. And the estimated completion time is adjusted up or down based on the cohort, or the event data of the video game players corresponding to the activity and belonging only to the cohort is statistically analyzed to specifically generate an estimated completion time for the user. In another technique, the user's position in the video game, the location of the activity, the mechanism used by other video game players to complete the activity, the mechanism available to the user, the number of help tips for completing the activity, and / or other parameters can be considered to adjust the estimated time length up or down.
[0121] In one example, the process includes operation 1206, where the computer system adjusts the estimated length of time for the user based on the adjustment factor. For example, the adjustment factor is set as a multiplier, and the estimated time is adjusted by multiplying it by the adjustment factor. In another illustration, the adjustment factor is added to or subtracted from the estimated length of time. For example, the adjustment factor is set equal to the estimated travel time between locations in the video game, and the estimated travel time is added to the estimated length of time.
[0122] In one example, the process includes operation 1208, where the computer system determines that an activity can be suggested to the user. For example, the computer system considers the estimated time length (adjusted by the user) as a factor in selecting the activity to suggest from the candidate activities. In particular, if the estimated time length falls within a predefined time range (e.g., between a predefined upper limit and a lower limit), the activity can be suggested.
[0123] In one example, the process includes operation 1210 , where the computer system presents activity suggestions including a length of time to complete.
[0124] Fig.13 An example of updating an estimated time length of an activity based on sub-activities according to an embodiment of the present disclosure is shown. In one example, the process includes operation 1302, in which a computer system determines a sub-activity associated with an activity identifier. For example, an activity may be formed by a set of sub-activities that may follow a particular hierarchy, similar to combining Figure 5 The sub-activities can be identified based on their association with the activity identifier of the activity.
[0125] In one example, the process includes operation 1304, where the computer system can estimate the time length to complete the sub-activity for each sub-activity. Each time length can be determined based on statistical analysis, similar to combining Fig.11 Descriptive statistical analysis.
[0126] In one example, the process includes operation 1306, in which the computer system estimates the time length of the activity based on the time lengths of the sub-activities. For example, the time length is estimated before the activity starts and can be the sum of the time lengths.
[0127] In one example, the process includes operation 1308, where the computer system determines that the user has completed a sub-activity in the sub-activity. For example, event data is received from a video game console, the event data including an activity identifier of the sub-activity and indicating the end of the sub-activity.
[0128] In one example, the process includes operation 1310, in which the computer system determines the remaining time length to complete the activity. For example, the remaining sub-activities that have not yet been completed are identified. Their respective estimated time lengths are added to generate the remaining time length. In addition, a comparison (e.g., a ratio) of the actual time length for completing the activity and its estimated time length can be used to set an adjustment factor. The sum of the individual estimated time lengths can be adjusted upward or downward based on the adjustment factor.
[0129] In one example, the process includes operation 1312, where the computer system presents the remaining time length. For example, the activity is started and the video game content related to the activity is presented on the user interface. The remaining time can be displayed on the user interface at the same time.
[0130] Fig.14An example of a hardware system suitable for implementing a computer system 1400 according to an embodiment of the present disclosure is shown. Computer system 1400 represents, for example, a video game console, a video game platform, or other type of computer system. Computer system 1400 includes a central processing unit (CPU) 1402 for running software applications and optionally an operating system. CPU 1402 may be composed of one or more homogeneous or heterogeneous processing cores. Memory 1404 stores applications and data for use by CPU 1402. Storage device 1406 provides non-volatile storage devices and other computer-readable media for applications and data and may include fixed disk drives, removable disk drives, flash memory devices, and CD-ROMs, DVD-ROMs, Blu-ray discs, HD-DVDs, or other optical storage devices, as well as signal transmission and storage media. User input transposition 1408 delivers user input from one or more users to computer system 1400, examples of which may include keyboards, mice, joysticks, touch pads, touch screens, still or video cameras, and / or microphones. The network interface 1410 allows the computer system 1400 to communicate with other computer systems via an electronic communications network, and may include wired or wireless communications over local area networks and wide area networks (such as the Internet). The audio processor 1412 is adapted to generate analog or digital audio output from instructions and / or data provided by the CPU 1402, memory 1404, and / or storage device 1406. The components of the computer system 1400 (including the CPU 1402, memory 1404, data storage device 1406, user input device 1408, network interface 1410, and audio processor 1412) are connected via one or more data buses 1460.
[0131] The graphics subsystem 1430 is further connected to the data bus 1460 and the components of the computer system 1400. The graphics subsystem 1430 includes a graphics processing unit (GPU) 1432 and a graphics memory 1434. The graphics memory 1434 includes a display memory (e.g., a frame buffer) for storing pixel data for each pixel of an output image. The graphics memory 1434 may be integrated in the same device as the GPU 1432, connected to the GPU 1432 as a separate device, and / or implemented in the memory 1404. The pixel data may be provided directly from the CPU 1402 to the graphics memory 1434. Alternatively, the CPU 1402 provides the GPU 1432 with data and / or instructions defining the desired output image, and the GPU 1432 generates pixel data for one or more output images according to the data and / or instructions. The data and / or instructions defining the desired output image may be stored in the memory 1404 and / or the graphics memory 1434. In an embodiment, GPU 1432 includes 3D rendering capabilities for generating pixel data for an output image according to instructions and data defining the geometry, lighting, shading, texturing, motion, and / or camera parameters of a scene. GPU 1432 may also include one or more programmable execution units capable of executing shader programs.
[0132] Graphics subsystem 1430 periodically outputs pixel data of an image from graphics memory 1434 for display on display device 1450. Display device 1450 may be any device capable of displaying visual information in response to a signal from computer system 1400, including CRT, LCD, plasma, and OLED displays. Computer system 1400 may provide analog or digital signals to display device 1450.
[0133] According to various embodiments, CPU 1402 is one or more general-purpose microprocessors having one or more processing cores. Additional embodiments may be implemented using one or more CPUs 1402 having a microprocessor architecture specifically adapted for highly parallel and computationally intensive applications, such as media and interactive entertainment applications.
[0134] The components of the system may be connected via a network, which may be any combination of the Internet, an IP network, an intranet, a wide area network ("WAN"), a local area network ("LAN"), a virtual private network ("VPN"), a public switched telephone network ("PSTN"), or any other type of network that supports data communication between the devices described herein. The network may include wired and wireless connections, including optical links. Many other examples are possible and will be apparent to those skilled in the art in light of this disclosure. In the discussion herein, a network may or may not be specifically mentioned.
[0135] In the foregoing description, the present invention has been described with reference to specific embodiments of the present invention, but those skilled in the art will recognize that the present invention is not limited thereto. The various features and aspects of the foregoing invention may be used individually or in combination. In addition, without departing from the broader scope and spirit of the present invention, the present invention may be used in any number of environments and applications beyond those described herein. Therefore, this specification and accompanying drawings should be considered illustrative rather than restrictive.
[0136] It should be noted that the methods, systems and devices discussed above are intended to be examples only. It must be emphasized that various embodiments may appropriately omit, replace or add various programs or components. For example, it should be understood that in alternative embodiments, the method may be performed in a different order than described, and various steps may be added, omitted or combined. In addition, the features described with respect to certain embodiments may be combined in various other embodiments. Different aspects and elements of the embodiments may be combined in a similar manner. In addition, it should be emphasized that technology is developing, and therefore, many elements are examples and should not be interpreted as limiting the scope of the invention.
[0137] Specific details are given in the description to provide a thorough understanding of the embodiments. However, it will be apparent to one of ordinary skill in the art that the embodiments can be practiced without the specific details. For example, unnecessary details of well-known circuits, processes, algorithms, structures, and techniques are not shown to avoid obscuring the embodiments.
[0138] In addition, it should be noted that the embodiments may be described as processes, which are depicted as flow charts or block diagrams. Although each may describe the operations as a sequential process, many operations may be performed in parallel or simultaneously. In addition, the order of the operations may be rearranged. The process may have other steps not included in the figure.
[0139] In addition, as disclosed herein, the term "memory" or "memory unit" may refer to one or more devices for storing data, including read-only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage media, optical storage media, flash memory devices or other computer-readable media for storing information. The term "computer-readable medium" includes, but is not limited to, portable or fixed storage devices, optical storage devices, wireless channels, sim cards, other smart cards, and various other media capable of storing, containing or carrying instructions or data.
[0140] In addition, the embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description language, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments for performing the necessary tasks may be stored in a computer-readable medium such as a storage medium. The processor may perform the necessary tasks.
[0141] Unless otherwise indicated, all measurements, values, ratings, positions, amplitudes, sizes and other specifications set forth in this specification (including in the appended claims) are approximate and not exact. They are intended to have a reasonable range consistent with the functions to which they relate and the practices in the fields to which they relate. "Approximately" includes within a tolerance range of ±0.01%, ±0.1%, ±1%, ±2%, ±3%, ±4%, ±5%, ±8%, ±10%, ±15%, ±20%, ±25%, or as known in the art. "Substantially" means more than 66%, 155%, 80%, 90%, 95%, 99%, 99.9%, or, depending on the context in which the term substantially appears, other values known in the art.
[0142] Having described several embodiments, those skilled in the art will recognize that various modifications, alternative configurations, and equivalents may be used without departing from the spirit of the present invention. For example, the above elements may be components of a larger system, wherein other rules may take precedence over the application of the present invention or otherwise modify the application of the present invention. In addition, multiple steps may be performed before, during, or after considering the above elements. Therefore, the above description should not be considered to limit the scope of the present invention.
Claims
1. A method implemented by a computer system, the method comprising: receiving an identifier of an activity in a video game and first data indicative of completion of the activity by a player of the video game, wherein the identifier is predefined in program code of the video game, and wherein the identifier and the first data are received based on execution of the program code; storing the identifier and the first data in a data store; determining, from the data store and based on the identifier, second data indicating completion of the activity by a plurality of video game players, wherein the second data includes a plurality of start events and a plurality of end events; determining a measurement regarding completion of the activity by the plurality of video game players based on the second data, wherein based on a type of the activity, the measurement includes at least one of: (i) a time to successfully complete the activity, or (ii) a time to attempt to complete the activity, wherein determining the measurement includes determining, associated with the video game players and based on the plurality of start events and the plurality of end events included in the second data, at least one of a time when each of the plurality of video game players successfully completed the activity or a time when each of the plurality of video game players attempted to complete the activity; estimating, based on the measured values, a length of time to complete the activity for a user who has not yet completed the activity; and The length of time is presented on a user device associated with the user.
2. The method of claim 1, wherein the first data comprises a start event and an end event, wherein the end event comprises a result of the completion of the activity by the video game player, and wherein determining the measurement value comprises: In conjunction with the video game player and from the start event and the end event included in the first data, at least one of: the time at which the video game player successfully completed the activity, or the time at which the video game player attempted to complete the activity.
3. The method of claim 2, wherein estimating the length of time comprises: generating a statistical distribution of at least one of the time to successfully complete the activity or the time to attempt to complete the activity based on the plurality of start events and the plurality of end events; as well as The length of time is determined from the statistical distribution based on a predefined percentile.
4. The method of claim 1, further comprising: The type of the activity is determined based on an association between the type of the activity and the identifier of the activity, wherein the association is stored in the data store, and wherein: The type of the activity indicates that the activity includes at least one of: a promotion activity, a competition activity, or a challenge activity, The push-type activities are associated with failure and success, The competitive activity is associated with synchronously competing against a first video game player or against a first virtual player, and The challenge activity is associated with an asynchronous confrontation with a second video game player or with a second virtual player.
5. The method of claim 4, wherein the measurement value for the advancement activity includes the time for each video game player to successfully complete the activity, wherein the measurement value for the competition activity or the challenge activity includes the time for each video game player to attempt to complete the activity, and wherein the time for successfully completing the activity includes the time for failure.
6. The method of claim 1 further comprising rounding the length of time to a multiple of a time interval, wherein the time interval is based on the type of the activity.
7. The method of claim 1 , wherein the activity comprises a plurality of tasks, wherein each of the plurality of tasks is associated with a separate time length, wherein each separate time length is estimated based on the measurements of the plurality of video game players, and wherein estimating the time length comprises combining the separate time lengths of the plurality of tasks.
8. The method of claim 7, further comprising: receiving, from a video game console of the user, the identifier of the activity and event data indicating completion of a first task of the plurality of tasks; determining a remaining time length to complete the activity based on the individual time lengths of remaining tasks among the plurality of tasks that have not yet been completed; as well as The remaining time length is presented to the user.
9. The method of claim 1, further comprising: determining that the length of time falls within a time range predefined for the type of activity; as well as The activity is selected from candidate activities associated with the video game and another video game based on the length of time.
10. A computer system, comprising: one or more processors; as well as one or more memories storing computer-readable instructions that, when executed by the one or more processors, configure the computer system to: receiving an identifier of an activity in a video game and first data indicative of completion of the activity by a player of the video game, wherein the identifier is predefined in program code of the video game, and wherein the identifier and the first data are received based on execution of the program code; storing the identifier and the first data in a data store; determining, from the data store and based on the identifier, second data indicating completion of the activity by a plurality of video game players, wherein the second data includes a plurality of start events and a plurality of end events; determining a measurement regarding the completion of the activity by the plurality of video game players based on the second data, wherein based on a type of the activity, the measurement includes at least one of: (i) a time to successfully complete the activity, or (ii) a time to attempt to complete the activity, wherein determining the measurement includes determining, associated with the video game players and based on the plurality of start events and the plurality of end events included in the second data, at least one of a time when each of the plurality of video game players successfully completed the activity or a time when each of the plurality of video game players attempted to complete the activity; estimating, based on the measured values, a length of time to complete the activity for a user who has not yet completed the activity; and The length of time is presented on a user device associated with the user.
11. The computer system of claim 10, wherein the activity comprises a single-player mission, and wherein each of the measurements corresponds to a start and end of the activity by each video game player.
12. The computer system of claim 10, wherein the activity comprises a multiplayer mission, and wherein the execution of the computer-readable instructions further configures the computer system to: determining a subset of the plurality of video game players that jointly complete the multiplayer task; and A start and an end of the activity jointly completed by the subset are determined, wherein the measurements include measurements corresponding to the start and the end.
13. The computer system of claim 10, wherein presenting the length of time comprises sending the length of time to an application executing on the user device, and wherein the execution of the computer-readable instructions further configures the computer system to: receiving, from a video game console of the user, the identifier of the activity and third data indicative of completion of the activity by the user; and The third data is stored in the data store.
14. The computer system of claim 10, wherein said execution of said computer readable instructions further configures said computer system to: receiving, from a video game console of the user, the identifier of the activity and third data indicative of initiation of the activity by the user; determining that the duration since the start exceeds the length of time by a threshold amount and an end of the activity by the user has not been received; as well as Help options are presented to the user.
15. One or more non-transitory computer-readable storage media storing instructions that, when executed on a computer system, cause the computer system to perform operations comprising: receiving an identifier of an activity in a video game and first data indicative of completion of the activity by a player of the video game, wherein the identifier is predefined in program code of the video game, and wherein the identifier and the first data are received based on execution of the program code; storing the identifier and the first data in a data store; determining, from the data store and based on the identifier, second data indicating completion of the activity by a plurality of video game players, wherein the second data includes a plurality of start events and a plurality of end events; determining a measurement regarding the completion of the activity by the plurality of video game players based on the second data, wherein based on a type of the activity, the measurement includes at least one of: (i) a time to successfully complete the activity, or (ii) a time to attempt to complete the activity, wherein determining the measurement includes determining, associated with the video game players and based on the plurality of start events and the plurality of end events included in the second data, at least one of a time when each of the plurality of video game players successfully completed the activity or a time when each of the plurality of video game players attempted to complete the activity; estimating, based on the measured values, a length of time to complete the activity for a user who has not yet completed the activity; and The length of time is presented on a user device associated with the user.
16. The one or more non-transitory computer-readable storage media of claim 15, wherein the operations further comprise: estimating an average time for the user to complete an activity based on the user's play time history and the play time history of the plurality of video game players; as well as The length of time is adjusted based on the average time.
17. The one or more non-transitory computer-readable storage media of claim 16, wherein estimating the operation further comprises: generating a decile distribution of the plurality of video game players based on the play time histories, wherein each decile corresponds to an average player time for activity completion; as well as A decile to which the user belongs of the decile distribution is determined based on the gaming time history of the user, wherein the average time of the user corresponds to the decile.
18. The one or more non-transitory computer-readable storage media of claim 15, wherein the operations further comprise: generating a cohort of the plurality of video game players based on the play time histories of the video game players; determining that the user belongs to a cohort among the cohorts based on the user's gaming time history; as well as A subset of the plurality of video game players that belongs to the cohort is determined, wherein the measurement is determined for the subset.
19. The one or more non-transitory computer-readable storage media of claim 15, wherein the operations further comprise: The length of time is adjusted based on at least one of: tools available to the user in the video game to complete the activity, a familiarity measure of the user using the tools, a first position of the user in a virtual area within the video game relative to a second position of the activity, or a travel time between the first position and the second position.
20. The one or more non-transitory computer-readable storage media of claim 15, wherein the operations further comprise: The time length is adjusted based on at least one of: whether the user views help information on completing the activity, the type of help information viewed, or the amount of help information viewed, wherein the help information includes at least one of: a video file, an audio file, and a text file.
Citation Information
Patent Citations
Game support server, game device, game support system and game support method
CN102834151A