Server-based video help in video games

A server-based video game platform collects and processes gameplay events to offer unified gameplay assistance and activity suggestions, addressing the inconsistency in user experiences across different games and platforms, thereby enhancing gameplay quality and GUI functionality.

JP7724319B2Active Publication Date: 2025-08-15SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024042873
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-11-18
Filing Date
2024-03-18
Publication Date
2025-08-15
Estimated Expiration
2040-11-16

AI Technical Summary

Technical Problem

The user experience in video games varies significantly across different games and platforms, with inconsistent methods for seeking help and displaying gameplay, leading to a need for a unified approach to enhance gameplay features and assistance.

Method used

A server-based video game platform collects and processes gameplay events to suggest activities, estimate completion times, and provide help, using instrumentation within the game to offer customized features without altering development methods, and presents this information through a unified interface.

Benefits of technology

This approach improves the user experience by providing consistent gameplay assistance and activity suggestions, enhancing GUI functionality and improving gameplay quality across various video games.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007724319000001
    Figure 0007724319000001
  • Figure 0007724319000002
    Figure 0007724319000002
  • Figure 0007724319000003
    Figure 0007724319000003
Patent Text Reader

Abstract

To improve a user experience so as to enable a common video game function regardless of an underlying video game.SOLUTION: A technique for improving a user experience of a video game is explained. In one example, a computer system receives event data from multiple user devices. The respective event data include: an identifier of activity within a video game; and data showing completion of activity. The identifier can be defined in advance by a program code of a video game. Based on execution of the program code, the identifier and completion data can be received. Since an activity completion rate within a video game is improved, event data are processed and assistance video is provided.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a continuation of U.S. Patent Application No. 16 / 687,410, filed November 18, 2019, and is hereby incorporated by reference in its entirety for all purposes. [Background technology]

[0002] Video games are available on a variety of 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. Furthermore, video games are available from a variety of sources. For example, a video game console is operable to play multiple video games from two or more different video game developers.

[0003] Given the increasing number of video games and the increasing availability of video games from various sources on various computing devices, the user experience or experiences typically vary. For example, the manner in which help is sought for gameplay may vary significantly from video game to video game. Furthermore, the manner in which particular portions of a video game are playably displayed on a computing device may be specific to a particular video game.

[0004] Therefore, the user experience may vary between video game players. There is a need to improve the user experience so that some common video game features are possible regardless of the underlying video game. Summary of the Invention

[0005] Techniques for improving a user experience of a video game 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.

[0006] In embodiments, the operations include accessing video content of a video game player's gameplay within a video game. The video content is associated in a data store with identifiers of activities completed by the video game player within the video game, as well as data indicating the start of the activity, the end of the activity, and a result of completing the activity. The identifiers of the activities are included in program code for the video game. The operations also include determining or identifying that the data indicates that a result is successful completion of the activity. The operations also include generating information about the activity, including a link to a portion of the video content, the portion corresponding to an activity displayed in the video content or to a set of tasks within the activity. The operations also include presenting the information to a user in a user interface.

[0007] In one example, the operations further include recording the game play of the video game player as video content, receiving one or more events during the recording of the game play, including an identifier, a start, an end, and a result, generating one or more associations between the video content and the identifier, and between a portion of the video content and the start and end, and storing the one or more associations in a data store. In this example, the operations further include transmitting the video content to a content system based on a request from the video game player to share the video content, and storing an indication of the video content to be shared in the data store. Based on the indication, a link is included in the information. Further, the information is presented in a window over the video game content in the video game, and the operations further include receiving a user selection of the link presented in the window and receiving the video content from the content system based on the selection. In this example, the operations further include presenting video content of the game play over the video game content in the video game based on the user selection of the video content presented in the window. In this example, the window further includes at least one of (i) a first option to present gameplay video content adjacent to and simultaneously with the presentation of video game content of the video game, or (ii) a second option to present gameplay video content in a picture-in-picture window simultaneously over the presentation of video game content of the video game. In this example, the window further includes a map corresponding to a zone within the video game. The map indicates estimated locations of where multiple video game players have completed activities within the zone. In this example, the window further includes information regarding use of mechanics to complete activities based on historical use of the mechanics by the multiple video game players.

[0008] In one example, the video content is further associated in the data store with an identifier of a mechanic used by the video game player to complete a task of a set of tasks for the activity, and a portion of the video content corresponds to the task and shows the use of the mechanic.

[0009] In one example, the operations further include ranking the video content compared to one or more other video content depicting the activity, the video content being ranked based on a language setting of the video game player and a language setting of the user, and selecting video content for inclusion in the information based on the ranking.

[0010] In one example, the portion of the video content displays the use of a mechanic by a video game player to complete an activity. In this example, the operations further include ranking the video content relative to one or more other video content that displays the activity. The video content is ranked based on the availability of the mechanic to the user.

[0011] In one example, the operations further include ranking the video content relative to one or more other video content depicting the activity, the video content being ranked based on characteristics of the video game player within the video game and characteristics of the user within the video game.

[0012] In one example, the operations further include ranking the video content relative to one or more other video content depicting the activity, the video content being ranked based on a difficulty setting associated with gameplay of the video game player within the video game and a difficulty setting associated with gameplay of the user within the video game.

[0013] In one example, the start and end of the activity indicate a time for completion of the activity by the video game player. In this example, the operations further include ranking the video content relative to one or more other video content depicting the activity. The video content is ranked based on the time for completion.

[0014] In one example, the operations further include ranking the video content relative to one or more other video content depicting the activity, the video content being ranked based on microphone audio of the video game player available in the video content.

[0015] In one example, the operations further include determining a success rate for the video content. The success rate is determined by at least receiving second data indicating successful completion of the activity by the second video game player after presenting the video content to the second video game player and before receiving another identifier of another activity completed by the second video game player within the video game, the second data including an identifier of the activity, and updating the success rate based on the second data. In this example, the operations further include ranking the video content compared to one or more other video content displaying the activity. The video content is ranked based on the success rate.

[0016] In one example, the activity is a task among a plurality of tasks forming a second activity. In this example, the operations further include presenting a window in a first state in the user interface. The window identifies the second activity and is presented over video game content of the video game. The operations further include presenting the window in an expanded state upon user selection of the second activity. The expanded state window identifies a task of the second activity. The operations further include updating the expanded state window to display information about the activity upon user selection of an activity from the task of the second activity. In this example, the window is updated to further display at least one of (i) a map of a zone in the video game for completing the activity or (ii) second information regarding the use of a mechanic to complete the activity. At least one of (i) the map or (ii) the second information is displayed simultaneously with a link to a portion of the video content. [Brief explanation of the drawings]

[0017] [Figure 1] 1 illustrates an example computing environment for collecting and processing video game events, according to an embodiment of the present disclosure. [Figure 2] 1 illustrates an example system architecture for providing a user with contextual information about available gaming activities, according to an embodiment of the present disclosure. [Figure 3] 1 illustrates another example of a system architecture according to an embodiment of the present disclosure. [Figure 4] 1 illustrates an example system for providing a data model for a universal data platform, according to an embodiment of the present disclosure. [Figure 5] 1 illustrates an example of an activity hierarchy, according to an embodiment of the present disclosure. [Figure 6] 1 illustrates an example of a user interface presented by a video game console, according to an embodiment of the present disclosure. [Figure 7] 1 illustrates a user interface presented on a display according to an embodiment of the present disclosure. [Figure 8] 10 illustrates an example of displaying video game help via a user interface, according to an embodiment of the present disclosure. [Figure 9] 10 illustrates an example of presenting video game help in a user interface, according to an embodiment of the present disclosure. [Figure 10] 10 illustrates an example of determining an association between a portion of video content and an activity identifier, according to an embodiment of the present invention. [Figure 11] 1 illustrates an example of ranking portions of video content according to an embodiment of the present disclosure. [Figure 12] 10 illustrates an example flow for determining video portions that display an object from event data, according to an embodiment of the present disclosure. [Figure 13]10 illustrates another example of presenting a video portion of video content as help assistance to a user, according to an embodiment of the present disclosure. [Figure 14] 1 illustrates an example of a hardware system suitable for implementing a computer system according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0018] Generally, systems and methods for improving the user experience of a video game are described. In one example, the user experience of a video game is improved by providing a unified method for, among other things, multiple video game features, such as suggesting video game activities, estimating completion times for such activities, and presenting help regardless of the underlying video game. This unified method does not require changes to video game development methods or a common video game development approach. Instead, it relies on instrumentation of various events within the video game, and 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, as well as customize such video game features to the client level, if desired.

[0019] For example, a video game includes multiple activities. When an instance of the 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 related to the played activities and recorded video content that displays how the video game player played those activities. The video game platform stores such events as event data. In the case of event data associated with a played activity, the event data includes an activity identifier for the activity, indicates its type, its start time, its end time, and / or, in some cases, its result (e.g., success or failure). Based on timing information from the event data (e.g., start and end) and timing information from the video content, the video game platform determines or identifies a portion of the video content that displays the played activity and associates this portion with the activity.

[0020] For example, while receiving video content showing gameplay of a video game by a video game player, the video game platform receives a first event at time "t1" and a second event at time "t2." The first event includes an activity identifier for activity A in the video game, indicating its start. The second event includes the same activity identifier for activity A, indicating its end and successful completion. Thus, the video game platform determines that activity A was played between times "t1" and "t2" and associates the portion of the video content between times "t1" and "t2" with the activity identifier and the successful completion, thereby indicating that this video portion displays the successfully played activity. This association enables the video game platform to link activity A to the video portion. Specifically, the video game platform may generate links to keyframes in the video content at the start and end timestamps (e.g., at times "t1" and "t2").

[0021] In one example, a user operating a computing device may have never played activity A before, may not have yet successfully completed activity A, or may wish to watch how another video game player plays activity A. A request for help may be received from the computing device. In response, the video game platform may send a link to the computing device that includes information identifying activity A. Selecting the link causes a video portion to be displayed to the user showing how to play activity A.

[0022] In one example, a video game platform may associate multiple video portions from different video content for multiple video game players with the same activity (e.g., activity A) within a video game. When the video game platform receives a request for help regarding the activity from a user's computing device, it ranks the video portions to the user based on a set of factors and selects and returns one or more of these video portions based on the ranking. For the selected video portions, the video game platform returns corresponding links. These factors are related to the video game player, the user, the video game player's and / or user's context(s) within the video game, and / or the video game player's and / or user's context(s) on the video game platform. The ranking may include generating a relevance score for each video portion, taking into account how satisfied the sorting factors are, and sorting the video portions based on the relevance scores.

[0023] Embodiments of the present disclosure provide numerous technical advantages over existing video game platforms, such as improved graphical user interface (GUI) functionality. Specifically, the video game platform of the present disclosure can provide association support to the GUI by collecting events for each activity, video game, and video game player, thereby improving the quality of gameplay.

[0024] 1 illustrates an example computing environment for collecting and processing video game events, according to an embodiment of the present disclosure. As illustrated, 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. Video games are available to the video game console 110 from the video game developer system 170 via the video game platform 150. Video content, such as help videos demonstrating how to play video game activities, is also available to the video game console 110 from the third-party system 190 via 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 functionality, including, for example, suggesting video game activities, estimating the completion time for such activities, and providing video game help.

[0025] In one example, video game console 110 represents a computing device available to user 112 that is operable to interact with one or more applications, including video games. Display 120, communicatively coupled to or integrated with video game console 110, may present video game-related data, including video game content 122, to user 112. For example, user 112 may also have available other types of computing devices, including a smartphone, tablet, laptop, desktop computer, or other device with appropriate memory and processor.

[0026] Video game console 110 may execute a 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 the 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 can be downloaded to video game console 110 from such systems.

[0027] Additionally, video game console 110 may download or stream video content for presentation on display 120 from third-party system 190, either directly or via video game platform 150. Examples of video content include video files generated by video game developer system 170 and uploaded to third-party system 190 that demonstrate how a video game can be played, how a set of activities within the video game can be played, or how a set of mechanics in the activity can be used to play the activity. Mechanics typically 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 portion of an activity. Another example of video content includes video files generated by one of the video game player devices and uploaded to third-party system 190, either directly or via video game platform 150, that record gameplay of a video game player operating the video game player device. Additionally, similar video files may be uploaded from video game console 110 to third-party system 190.

[0028] In one example, video game player device 130 represents the computing devices of video game players, which may, but need not, include user 112. Each of video game player devices and video game consoles 110 may be provided with similar functionality.

[0029] In one example, video game developer system 170 represents a computer system that includes a collection of computing resources available to a video game developer for developing a video game. Specifically, video game developer system 170 may 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.

[0030] The video game software 172 of the video game is program code executable to present and interact with the video game content of the video game. The program code may include predefined instrumentation to generate events when the program code is executed. Specifically, the program code includes a collection of event definitions 174, where an event definition represents code that defines an identifier for an event and data to report about the event. Examples of such event definitions 174 are described further below and are predefined in the program code of the video game according to event templates available from the video game platform 150. Such event templates may be defined by a service provider of the video game platform 150 and may be commonly used across multiple video game developer systems 170.

[0031] In one example, third-party system 190 represents a computer system, such as one or more content servers, that provides video content 192 to video game console 110, either directly or indirectly via video game platform 150. As described herein above, video content 192 may include video files that demonstrate how a video game can be played, how a set of activities within a video game can be played, or how a set of mechanics in an activity can be used to play an activity. Video content 192 may be uploaded to third-party system 190, either directly or indirectly via video game platform 150, from one or more of video game developer system 170, video game console 110, and / or video game player device 130.

[0032] 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 configured as a hub between video game console 110, video game player device 130, video game developer system 170, and third-party system 190. Specifically, video game software 172 and video content 192 may be downloaded to video game console 110 via video game platform 150. Instances of video games based on video game software stored on video game platform 150 may be instantiated for video game console 110. Video files may be streamed to video game console 110 via video game platform 150. Additionally, 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.

[0033] 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 in the data store 152 as event data 154. An event processor 156 of the video game platform 150 processes the event data 154 to generate any of activity time estimates 162, activity suggestions 164, and activity help 166, which are sent to the video game console 110 for presentation on the display 120.

[0034] The received event data (either event data 114 or event data 132) represents data reported from a device (e.g., one of the video game console 110 or video game player devices 130 as an application) regarding an event based on execution of program code of the video game, where the program code includes an event definition for the event. Activity time estimate 162 represents an estimated length of time to complete an activity in the video game, which may be referred to herein as a completion time. Activity suggestions 164 represent information suggesting activities available to user 112 in the video game that have not been previously performed or completed by user 112. Activity help 166 includes information, such as video files, textual descriptions, and / or graphical descriptions, related to completing an activity or using mechanics in at least a portion of an activity in the video game. Processor 156 executes logic to generate activity time estimate 162, activity suggestions 164, and activity help 166, e.g., by performing statistical analysis over a subset of event data 154 associated with an activity. Additionally, processor 156 may execute logic to customize any of activity time estimation 162, activity suggestions 164, or activity help 166 based on the context of user 112 within the video game and / or within the platform, and the type of video game console 110.

[0035] Typically, an activity is a unit of gameplay inherent in the structure of a video game. There are various categories of activities, including progression activities, competitive activities, challenge activities, and open-ended activities. An activity can be defined in program code as an object with multiple properties. The properties include an activity identifier, a name, and a category. The activity identifier is a unique identifier for the activity. When an event related to an activity is reported to the video game platform 150, the corresponding event data is tagged with the activity identifier. The name can be a short, localized name for the activity. Other properties are possible, including, for example, a description (e.g., a longer description of the activity), an image of the activity, default availability (e.g., whether the activity is available to all video game players even before starting the video game), whether completion of the activity is required to complete the video game, whether the activity can be repeated in the video game, and nested tasks (child activities, also referred to herein as sub-activities). Multiple events related to an activity are possible.

[0036] An example of an activity-related event might indicate a change in the availability of activities to a video game player (e.g., user 112). This is primarily used to determine which activities to display and remove spoiler blocks for those activities (activities with spoilers may not be displayed to the video game player). Properties of this event include, for example, a list (e.g., an array) of currently available activities.

[0037] An example of an activity-related event may indicate that a video player is currently participating in an activity or task (e.g., a child activity). Properties of this event include, for example, the activity identifier of the activity. Another property may optionally be a time corresponding to the start of participation in the activity.

[0038] An example of an activity-related event may indicate the end of an activity or task (e.g., a child activity). Properties of this event may include, for example, the activity identifier of the activity. Another property may optionally be a time corresponding to the end of participation in the activity. Yet another property may optionally be the outcome of the activity, such as completion, failure, or abandonment.

[0039] The video game platform 150 may also collect data about zones within the video game, and this data, like events, is reported based on pre-defined definitions in the video game's program code. A zone represents an area of the game world (e.g., a virtual world) of the video game, having a single coordinate system. A zone may have an associated two-dimensional (2-D) map image used to display locations on the zone. A zone may be defined in the program code as an object with multiple properties. The properties include a zone identifier and a name. The zone identifier is a unique identifier for the zone. The name may be a short, localizable name for the zone. Other properties are possible, including, for example, an indication of whether the object should be treated as hidden for spoiler block use cases (default may be set to false), a map (e.g., a high-resolution image of the zone's 2-D map), a view projection (e.g., a matrix (4x4) that converts from three-dimensional (3-D) working coordinates to 2-D map positions), and an image (e.g., a zone display image if different from the map). Multiple events related to zones are possible.

[0040] An example of an event related to a zone may indicate an update of a video game player's current in-game location. This event may be reported periodically or whenever the player's in-game location changes significantly. Properties of this event include a zone identifier. Other properties are possible, including, optionally, position (e.g., the x, y, z position of the video game player's character (the video game player's virtual player) in the zone) and orientation (e.g., an x, y, z vector indicating the direction of the video game player's character).

[0041] Another example of a zone-related event may indicate the zone, position, and orientation of a video game player at the time the activity began. This event may enable location-based help. Properties of this event include an activity identifier. Other properties are possible, including, for example, optionally, a zone identifier and the position and orientation of the video game player's character within the video game.

[0042] Yet another example of a zone-related event may indicate the zone, position, and orientation of a video game player upon completing an activity. This event may also enable location-based help. Properties of this event include an activity identifier. Other properties are possible, including, for example, optionally, the result of the activity, a zone identifier, and the position and orientation of the video game player's character within the video game.

[0043] The video game platform 150 may also collect data about actors in the video game, and this data, like events, is reported based on pre-definition in the video game's program code. An actor represents an entity with a behavior in the video game. An actor may be player-controlled or game-controlled, which may change dynamically during gameplay. An actor may be defined in the program code as an object with multiple properties. The properties include an actor identifier and a name. The actor identifier is a unique identifier for the actor. The name may be a localizable name for the actor. Other properties are possible, including, for example, an indication of whether the object should be treated as hidden for spoiler block use cases (which may default to false), an image of the actor, and a short description of the actor. Multiple events are possible for an actor.

[0044] An example of an actor-related event might indicate a change to a video game player's selection of actor(s). The selected actors represent the actors the video game player is controlling in the video game and may be displayed in the video game player's profile and other presentation spaces. Multiple actors can be selected at a time. Video games need to replace the list of actors when loading save data. The properties of this event include a list (e.g., an array) of actors currently selected by the video game player.

[0045] The video game platform 150 may also collect data regarding mechanics within the video game, and this data, like events, is reported based on pre-definition in the video game's program code. A mechanic represents an item (e.g., a tool), ability, skill, or effect that a video game player or video game can use to affect gameplay (e.g., a bow, arrow, stealth attack, fire). Mechanics typically do not include items that do not affect gameplay (e.g., collectibles). A mechanic may be defined in the program code as an object with multiple properties. The properties include a mechanic identifier and a name. The mechanic identifier is a unique identifier for the mechanic. The name may be a short, localizable name for the mechanic. Other properties are possible, including, for example, an indication of whether the object should be treated as hidden for spoiler block use cases (which may default to false), an image of the mechanic, and a short description of the mechanic. Multiple events related to a mechanic are possible.

[0046] An example of a mechanic-related event might indicate that a video game player's available mechanics have changed. Mechanic availability indicates that a mechanic is available to the video game player in the game world, but the video game player may need to go through several steps to get it in their inventory (e.g., download it from a store, acquire it in the game world) before using it. This event might also be used to indicate the release of a spoiler block on a mechanic object and to filter help hints so that they don't suggest using unavailable mechanics. Video games should replace their list of mechanics when loading a save. A property of this event contains a list (e.g., an array) of currently available mechanics.

[0047] Another example of a mechanic-related event may indicate that a video game player's inventory has changed. Inventory refers to mechanics that a video game player can use immediately without having to perform additional steps in the video game before use. Inventory information may be used to estimate a player's readiness for an activity. Video games need to replace their inventory list when loading save data. The properties of this event include a list (e.g., an array) of mechanics currently in the inventory.

[0048] Yet another example of a mechanic-related event might indicate that a video game player's loadout has changed. A loadout represents the mechanics most readily accessible to a video game player and is a subset of the inventory that is displayable to the video game player. A video game needs to replace its list of mechanics when loading a save. The properties of this event include a list (e.g., an array) of mechanics that are part of the currently active loadout.

[0049] A further example of a mechanic-related event might indicate that a mechanic has been used by or for a video game player. Properties of this event include a list (e.g., an array) of the mechanics used (e.g., flaming arrows, fire) and whether the mechanic was used by or for the video game player. Other properties are possible, including, for example, optionally, an initiating actor identifier (e.g., the identifier of the actor that initiated the use of the mechanic), a zone identifier for the initiating actor, and a location for the initiating actor.

[0050] Another example of a mechanic-related event might indicate that a mechanic affected gameplay (e.g., an arrow hit a target). Properties of this event include a list (e.g., an array) of mechanics used (e.g., flaming arrow, fire) and whether the mechanic was used by or against the video game player. Other properties are possible, such as, optionally, an initiating actor identifier, a zone identifier for the initiating actor, a location of the initiating actor, a target actor identifier (e.g., an identifier for the actor targeted by the mechanic), a zone identifier for the target, a location of the target actor, and an identifier for the mechanic that mitigates the initiating mechanic(s).

[0051] The video game platform 150 may also collect data regarding game media within the video game, and this data, like events, may be reported based on predefined definitions in the video game's program code. Game media represents media (text, audio, video, images) related to the video game provided by the game developer. Game media may be present in the game (e.g., cutscenes, audio logs, books) or not (e.g., developer notes). Game media may be defined in the program code as an object with multiple properties. The properties include a game media identifier, a name, a format, a category, an unlock rule, and a uniform resource locator (URL). The game media identifier is a unique identifier for the game media. The name may be a localizable name for the game media. The format may indicate the media format, such as whether the game media is an image, audio, video, or text. The category indicates the type of game media, such as whether the game media is a cutscene, an audio log, a poster, or developer notes. The unlock rule indicates whether the game media should be unlocked for all video game players or whether the game media should be unlocked based on an activity or a specific game media event. The URL references a media file provisioned by a server, which may be part of the video 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 treated as hidden for a spoiler block use case (which may default to false), an entitlement (e.g., indicating that only video game players who own a specific video game entitlement can unlock the game media), and an activity identifier (e.g., associating the game media with a specific activity). Multiple events related to the game media are possible.

[0052] An example of an event related to game media may indicate that a particular game media has been unlocked for a video game player. The properties of this event include a game media identifier.

[0053] Another example of an event related to game media may indicate that a particular game media object has started within a video game. The game media object should be considered unlocked to the video game player at the corresponding time. Properties of this event include a game media identifier.

[0054] Yet another example of an event related to game media may indicate that a particular game media has ended within a video game, with the properties of this event including the game media identifier.

[0055] 2 illustrates an example system architecture for providing a user with contextual information about available gaming activities, according to embodiments of the present disclosure. In some embodiments, the example system architecture 200 includes a game client 205, a universal data system (UDS) software development kit (SDK) 210, console system software 215, a local rules engine 220, a UDS server 225, a game server 230, processed data 235, and one or more other remote network services, including a help service 240, a game plan 245, user-generated content (UGC) tagging 250, and other service(s) 255. The help service 240 may also receive information from other data source(s) 260. Some of the components of the system architecture 200 are examples of components of the video game platform 150 of FIG. 1. For example, the UDS server 225 and the game server 230 are components of the video game platform 150.

[0056] The game client 205 and the game server 230 provide context information for at least one application to the UDS server 225 via a UDS data model, which describes the logical structure of UDS data used by the Universal Data System (UDS) SDK 210. The UDS data model enables a platform (e.g., the video game platform 150) to implement remote network services that require game data, such as help service 240, game plan 245, UGC tagging 250, and other service(s) 255, without the game needing to be separately patched to support the services. The UDS data model assigns context information to information portions in a uniform manner across games. 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 rules engine 220 may be executed on a computer or other hardware suitable for running at least one application.

[0057] UDS server 225 receives and stores context information for at least one application from game client 205 and game server 230. Obviously, UDS server 225 may receive context information from multiple game clients and game servers for multiple users. The information may be uniformly processed 235 and then received by multiple remote network services 240, 245, 250, and 255.

[0058] 3 illustrates another example of a system architecture 300 according to an embodiment of the present disclosure. A game client 305 sends context information to a UDS server 310, which provides the context information in a unified data model to multiple remote network services, including profile statistics 315, game plans 320, sessions 325, tournaments 330, presence 335, and a help system 340.

[0059] FIG. 4 illustrates an example of a system 400 for providing a data model for a universal data platform 410, according to an embodiment of the present disclosure. Some of the components of the universal data platform 410 are examples of components of the video game platform 150 of FIG. 1. In an exemplary 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 universal data platform 410 may execute on one or more servers. The universal data platform 410 may include a data model that is uniform across the plurality of application data structures. The data model may include metadata 412 corresponding to at least one object represented in the data model and events 414 corresponding to trigger conditions associated with at least one metadata entry. Values of the metadata 412 and events 414 may be associated with a user profile. The universal data platform 410 may be configured to receive application data from the at least one device 430 and store the application data in the data model. The system 400 may also include a plurality of remote network services 420 configured to access application data of the universal data platform 410 using the data model.

[0060] In various embodiments, metadata 412 may include a list of all activities a user can perform within the application, the activity name, a description of the activity, the activity's status (available, started, or completed), whether the activity is required to complete a goal or campaign, a completion reward for the activity, an introductory or outro cutscene, an in-game location, one or more conditions that must be met before the activity becomes available, and any parent activities that encompass the activity as a sub-activity. Metadata 412 may also include a list of abilities the user can exercise, the effect of each action, telemetry indicating when the action and effect occurred (including corresponding timestamps and locations), an in-game coordinate system, a list of in-game branching situations, and telemetry indicating when a branching situation was encountered and the option the user selected. A list of in-game statistics, items, lore, in-game zones, and corresponding attributes for each statistic, item, lore, or zone may also be included in metadata 412. Additionally, metadata 412 may indicate whether a particular activity, entity (character, item, ability, etc.), setting, result, action, effect, location, or attribute should be marked as hidden.

[0061] Events 414 may be initiated in response to a number of different trigger conditions. For example, such trigger conditions may include a previously unavailable activity becoming available, a user starting an activity, a user finishing an activity, an opening or ending cutscene for an activity starting or ending, a user's in-game location or zone changing, an in-game statistic 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 attribute being discovered. Events 414 may also include information about the state of the application when the event 414 was triggered, such as a timestamp when the user started or finished the activity, the difficulty setting, and character statistics, the success or failure of the activity, or the score or duration associated with the completed activity. It will be understood that metadata 412 and events 414 may include any and all contextual information related to the activities described in this disclosure.

[0062] FIG. 5 illustrates an example of an activity hierarchy according to an embodiment of the present disclosure. As shown, activity 510 may include multiple nested tasks, referred to herein as subactivities, forming hierarchy 500. Activity 510 may be the top node (e.g., the root node) of hierarchy 500 and may have a collection of child subactivities 520A-520K at the next level of hierarchy 500. Each of subactivities 520A-520K may then be a child node of activity 510 and potentially a parent node for a collection of subactivities at the next hierarchical level. For example, subactivity 520K is the parent node for a collection of subactivities 530A-530L. Such associations between nodes, each representing a subactivity, may be repeated at different levels of hierarchy 500. A collection of mechanics may be associated with each node, thereby indicating that such mechanic(s) are available or can be used at the activity corresponding to the node.

[0063] As described hereinabove, activity 510 has an activity identifier. Each sub-activity similarly represents an activity and therefore has an activity identifier. Similarly, each mechanic has a mechanic identifier. Associations between the activity identifiers themselves, and between activity identifiers and mechanic identifiers, may be defined based on hierarchy 500. Such associations may be stored in objects defining the activity (or sub-activity) and / or objects defining the mechanics, and / or in events associated with such objects. For example, the activity identifier of sub-activity 520K may be associated with the activity identifier of activity 510 and / or the activity identifiers of sub-activities 530A-530L. Similarly, the activity identifier of sub-activity 530L may be associated with the activity identifier of sub-activity 520L and / or the mechanic identifiers of mechanics 540A-540M. Furthermore, the mechanic identifiers of the mechanics may be associated with activity identifiers.

[0064] 6 illustrates an example of a user interface presented by a video game console (e.g., video game console 110 of FIG. 1) according to an embodiment of the present disclosure. User interface 604 presents a portion of video content 602 associated with an activity identifier for an activity in a video game, which was received from a video game platform (e.g., video game platform 150 of FIG. 1) and displays how the activity can be played.

[0065] As shown in FIG. 6 , the portion of the video content 602 associated with the activity identifier is indicated by a play bar 606 having a portion start point 607 and a portion end point 608. In certain cases, multiple video portions may display an activity and may correspond to different video game content for multiple video game players (e.g., video portions correspond to gameplay for different video game players). The video game platform may generate multiple links, each associated with one of the video portions from the different video content displaying the activity. Based on the ranking of such video portions, the user interface 604 presents the video portions on different pages, which can be accessed by interacting with a selection bar 610. In the example shown in FIG. 6 , three video portions may be displayed in the user interface 604. In FIG. 6 , a first video portion is selected for presentation, but the user interface 604 may receive user input (e.g., a mouse click, a controller button, a touch gesture) to select a second or third video portion on the selection bar 610. The user interface 604 indicates the selected portion of the video content by adjusting the selection bar 610 (eg, by illuminating the second dash or the third dash, respectively, of the selection bar 610).

[0066] The user interface 604 may also receive control input from the video game player by receiving a selection of one or more of playback controls 612 that allow the user to play, rewind, fast-forward, loop, or resize (e.g., full screen, half screen, etc.) the portion of the video content 602. Other data may also be displayed in the user interface 604. For example, the user interface 604 may present, concurrently with the portion of the video content 602, a map corresponding to a zone within the video game and / or information (e.g., text) regarding the use of mechanics to complete an activity. The map may indicate estimated locations within a zone where multiple video game players completed activities, and may be generated from event data of such players indicating activity completion for activities at specific locations within the zone.

[0067] 7 illustrates a user interface 700 presented on a display (e.g., display 120 of FIG. 1 ) according to an embodiment of the present disclosure. The user interface 700 displays various information and functionality related to a video game. In one example, video game content 702 may be presented in a portion of the display. The user interface 700 may also display related activity cards in a portion of the user interface 700. Each activity card is presented as a window, icon, or other GUI element, may contain information about an activity, and may be selected to start the activity or request help regarding the activity.

[0068] In one example, a video game has three activities associated with the video game player. These and other activities may be determined or identified based on one or more activities in which the video game player engages within a video game or other application available from the video game console and / or video game platform. In response, user interface 700 displays three activity cards, each corresponding to one of the activities (shown in FIG. 7 as activity cards for activity A 706, activity B 708, and activity C 710). In some instances, user interface 700 may present average or expected times on the activity cards to assist user selection of an activity card.

[0069] 8 shows an example of displaying video game help via a user interface 800, according to an embodiment of the present disclosure. Initially, the user interface presents an activity card 810 for an activity (e.g., corresponding to an activity card selected from the activity cards of FIG. 7). Upon user interaction with the activity card 810, the user interface presents an expanded activity card 830 to display sub-activities of the activity. Upon user interaction with a sub-activity, the user interface presents a help card 850 that includes a link to a video portion that displays how the sub-activity can be played.

[0070] In one example, activity card 810 includes a header section 812, an activity identifier 814, and an activity description 820 for the activity. In comparison, extended activity card 830 includes additional information related to the activity. In the example shown in FIG. 8 , extended activity card 830 includes a list of some of the available sub-activities 840 available to the video game player for completion. The user interface may receive a selection of a sub-activity 842 within extended activity card 830. In this example, user interface 800 receives a selection of sub-activity 842 "Take part in a warm-up lap" from the list of sub-activities 840.

[0071] The user interface receives the selection of the sub-activity 842 and displays a help card 850 that includes additional details and help specific to the sub-activity 842. The help card 850 includes a title 852 of the sub-activity 842, a video portion 854, and video playback controls 856. The organization of the title 852 and video portion may be similar to FIG.

[0072] FIG. 9 illustrates an example of presenting video game help in a user interface, according to embodiments of the present disclosure. In some embodiments, the user interface receives a selection of a help card (e.g., help card 850 of FIG. 8 ) and presents a settings menu 902 of display setting options. In some examples, a pinned-to-screen option from the settings menu 902 corresponds to displaying the help card 850 or a video portion from the help card 850 (e.g., video portion 854) in a side panel 904. When this option is selected, the user interface presents the help card 850 or the video portion in a window adjacent to the window displaying the video game content 906 while the video game continues to run. A picture-in-picture option from the settings menu 902 corresponds to displaying the help card 850 or the video portion in a picture-in-picture 908 window overlaid on the video game content 906. While the help information is presented in the pinned-to-screen or picture-in-picture setting, the video game content 906 may continue at normal speed or split speed. Other presentations of the video card 950 or the video portion are also possible. For example, upon certain user interaction (e.g., double-clicking) with video portion 854, the video portion is displayed using an expanded format (e.g., full screen). In this instance, video game content 906 may be paused.

[0073] 10 illustrates an example of determining an association between a portion of video content and an activity identifier according to an embodiment of the present disclosure. For example, a video game platform receives video content (e.g., a video segment or a complete video file) displaying multiple activities or sub-activities, each of the multiple activities or sub-activities having a unique activity identifier. The video game platform associates the activity identifier with a portion of the video content and generates a link to the portion of the video content.

[0074] In one example, a video game platform receives video content 1000 from a video game console operated by a video game player. The video content 1000 includes a segment start 1002, various intermediate timestamps (timestamps 1004-1012, collectively referred to as "timestamps," each corresponding to a keyframe), and a segment end 1014. The video content 1000 may be of any length, may be recorded by the video game console, and may display the gameplay of the video game player within the video game. The video game platform may also receive event data 1020 from the video game console corresponding to various events generated while the video game is being executed. The event data 1020 may include activity identifiers for activities played by the video game player within the video game, zone identifiers corresponding to areas of the video game's game world in which the activities were played, mechanic identifiers for mechanics used to play the activities, timing information for each activity (e.g., start and end), presence within a zone, use of mechanics, and other data related to gameplay (e.g., results of playing the activities, effects of used mechanics, etc.).

[0075] The video game platform associates the activity identifier, zone identifier, and / or mechanic identifier with the timestamps 1004-1012 (or corresponding keyframes) to identify the video portions of the video content 1000 where the corresponding activity, zone, and / or mechanic is displayed. In the example shown by Figure 10, the event data 1020 indicates a zone change 1024 (e.g., a video game player entered a particular zone), an activity A start 1026, a first mechanic A1 change 1028 (e.g., a video game player changed to use mechanic A1), a second mechanic change 1030, and an activity A end 1032.

[0076] In this example, the video game platform identifies, among other things, a first video portion 1050 of the video content 1000 that displays a zone, a second video portion 1060 of the video content 1000 that displays activity A, and a third video portion 1070 of the video content 1000 that displays mechanic A1. Specifically, the video game platform determines or identifies that zone change 1024 corresponds to timestamp 1004, and thus sets the start of first video portion 1050 to timestamp 1004 (or the corresponding keyframe). Similarly, the video game platform determines that activity A start 1026 corresponds to timestamp 1006 and activity A end 1032 corresponds to timestamp 1012, and thus determines that activity A is displayed in the video game content 1000 between timestamp 1006 and timestamp 1012. Accordingly, the video game platform sets the start and end of second video portion 1060 to timestamp 1006 and timestamp 1012 (or the corresponding keyframe), respectively. Further, the video game platform determines that mechanic A1 is displayed between mechanic A1 change 1028 and second mechanic change 1030, and that these events correspond to timestamp 1008 and timestamp 1010, respectively. Accordingly, the video game platform sets the start and end of third video portion 1070 to timestamp 1008 and timestamp 1010 (or corresponding keyframes), respectively. For each of video portions 1050-1070, the video game platform may generate a link to video game content 1000, where the video portion link identifies the start and end timestamps (or, equivalently, the start and end keyframes) of the video portion. The video game platform stores, in a data store (e.g., data store 152 of FIG. 1 ), the association of different identifiers with the timestamps, the identifiers associated with the start and end of each video portion, the links, and / or metadata describing the displayed content of each video portion.

[0077] The above examples are provided for illustrative purposes. Embodiments of the present disclosure are not so limited. Specifically, a video game platform may associate video portions of video game content with different activities, combinations of activities and collections of activity tasks (e.g., the sub-activities described in connection with FIG. 5), mechanics, zones, displayed actors, displayed targets, and / or any combination of objects defined in the video game's program code and for which events are received and stored.

[0078] 11 illustrates an example of ranking portions of video content according to an embodiment of the present disclosure. Specifically, a video game platform (e.g., video game platform 150 of FIG. 1) processes event data stored in a data store (e.g., event data 154 stored in data store 152 of FIG. 1) to determine video portions of video content associated with an activity that a user has not completed, ranks the video portions, and presents the relevant video portions based on the rankings.

[0079] In one example, a user request for help with an activity is received. The user request may include an activity identifier. The video game platform uses the activity identifier in a lookup to a data store to determine video portions associated with the activity identifier. These video portions define a set of candidate video portions. The video game platform further determines whether any video portions in the set contain spoilers for the user (e.g., based on the event data described in connection with the spoiler block of FIG. 1). If a spoiler is included, the candidate video portion is removed from the set. The remaining set includes video portions that are subject to ranking and are referred to herein as candidate video portions.

[0080] Each of the candidate video portions may be ranked according to a set of sorting factors, which are related to other video game players, users, the context(s) of other video game players and / or users within an application (e.g., a video game application), and / or the context(s) of other video game players and / or users on a video game platform. Ranking may include generating a relevance score for each candidate video portion content, taking into account how well the sorting factors are satisfied, and sorting the candidate video portions based on those relevance scores.

[0081] In the user interface, the highest ranked candidate video portions (e.g., the top three, or some other number) may be identified for the user, and links to these video portions may be transmitted to and presented on one or more of the user's computing devices, as shown in connection with FIG.

[0082] 11 , sorting factors include language 1102, mechanic availability 1104, in-game characteristics 1106, difficulty setting 1108, audio presence 1110, completion time 1112, and quality feedback 1114. Each of these factors is described herein below. Of course, not all sorting factors may be used. Additionally, other sorting factors related to generating candidate portions of video content based on event data may be defined and used.

[0083] In one example, language 1102 is a sorting element that indicates the likelihood that a user will understand the language spoken in the candidate video portion. As previously described, the candidate video portion corresponds to video content of a video game player. Thus, the video portion may include audio recordings corresponding to the video game player's natural language utterances. The more likely the user's spoken language matches the video game player's spoken language, the higher the score (e.g., referred to herein as a language score) for this sorting element. In one example, the match between the spoken languages is determined based on the language settings of the user and the video game player.

[0084] In one example, mechanic availability 1104 is a sorting element that indicates a user's likelihood of interest in using a mechanic displayed in a candidate video portion. As described above, a candidate video portion may display a mechanic and be associated with a corresponding mechanic identifier. The video game platform may determine, from an inventory associated with the user, whether the inventory includes the mechanic identifier. If so, the score for this sorting element (e.g., referred to herein as a mechanic score) will be higher. Additionally, the video game platform may analyze the user's gameplay history to determine whether the user is familiar with using the mechanic. The more familiar the user is (e.g., the more frequently the user uses the mechanic and / or the more frequently the mechanic has a positive impact on gameplay), the higher the mechanic score will be.

[0085] In one example, in-game characteristic 1106 is a sorting element that indicates the likelihood that a user has an in-game characteristic that matches the in-game characteristic of the video game player. When the video game player recorded the video content, the video game player may have been playing the video game at a particular in-game characteristic (e.g., expert level). If the user's in-game characteristic matches (e.g., the user is also playing the activity at an expert level) and the user requests video help, the score for this sorting element (e.g., referred to herein as the in-game characteristic score) may be set high.

[0086] In one example, difficulty setting 1108 is a sorting factor that indicates the likelihood that a user will play an activity at the same difficulty level as a video game player. When the video game player recorded the video content, the video game player may have been playing the video game at a particular difficulty setting. If the user requests video help while playing the game at the same difficulty level, the score for this sorting factor (e.g., referred to herein as a difficulty score) may be set high.

[0087] In one example, audio presence 1110 is a sorting element that indicates whether a video portion includes microphone audio from a video game player. When the video game player recorded the video content, the video game player may have used a microphone. The resulting microphone audio captures the video game player's natural language utterances. If microphone audio is included, the score for this sorting element (e.g., referred to herein as an audio score) is set high. Furthermore, the higher the quality of this audio, the higher the audio score.

[0088] In one example, completion time 1112 is a sorting element that indicates the length of time it takes a video game player to complete the activity displayed in the candidate video portion. The completion time may be bounded by an upper and lower bound. If it is outside the bounds (e.g., too long or too short), the candidate video portion is scored lower or even removed from the set of candidate video portions. If it is within the bounds, the score for this score element is set as a function (e.g., the inverse) of the length of time (e.g., referred to herein as a completion time score). The completion time may be estimated from event data related to the activity. For example, the completion time is estimated as the duration from start to finish of the activity.

[0089] In one example, the usefulness feedback 1114 is a sorting element that indicates how useful the candidate video portion is in relation to the activity or mechanic displayed in the candidate video portion. In one example, the usefulness feedback 1114 is based on user input of video game players who watched the candidate video portion and performed the activity and / or used the mechanic. The user input may be received as an explicit rating (e.g., number of stars out of 5, number of likes, etc.). In this case, the score of this sorting element (e.g., referred to herein as a usefulness score) is set as a function of the explicit rating (e.g., average star rating, ratio of likes to dislikes, etc.). In another example, the usefulness score is generated from implicit feedback. The implicit feedback may be determined from event data of multiple video game players who watched the candidate video portion and then performed the activity and / or used the mechanic. Specifically, the success rate of watching the candidate video portion and then successfully completing the activity or using the mechanic may be calculated from the event data. The usefulness score may be set as a function (e.g., proportional to or equal to) the success rate. For example, event data of a second video game player who viewed the candidate portion may be analyzed. The usefulness score may be high if the event data indicates that the second video game player viewed the candidate video portion and performed an activity and / or used a mechanic to achieve successful results and / or a positive impact either immediately (e.g., the event data indicates that after the viewing ended, an event related to the activity and / or mechanic was received before any event related to another activity and / or mechanic) or within a predefined duration (e.g., the event data indicates that after the viewing, an event related to the activity and / or mechanic was received before the end of the predefined duration, and an event related to the other activity and / or mechanic may also have been received during the predefined duration).

[0090] Each of the language score, mechanic score, in-game feature score, difficulty score, audio score, completion time score, and usefulness score may be associated with a weight (in FIG. 11, the weight W i where "i" is between "1" and "7." The weights may be predefined (e.g., based on user settings so that the weights are customized for the user, based on input from the video game developer), or may be set to default values.

[0091] A weighted sum 1120 of the individual scores of the sorting elements may be calculated, resulting in a total score, which may be set as a relevance score 1130. The relevance score 1130 may then be used to rank the candidate video portion relative to other candidate video portions.

[0092] 12-13 illustrate an exemplary flow for providing a video portion of video content as help assistance. The operations of the flow 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 video game platform. When implemented, the instructions represent modules including circuits or code executable by a processor(s) of the computer system. Execution of such instructions configures the computer system to perform certain operations described herein. Each circuit or code in combination with the processor represents a means for performing the respective operation(s). While operations are shown in a particular order, it should be understood that this particular order is not required and that certain operations may be omitted.

[0093] 12 illustrates an example flow for identifying video portions displaying objects from event data, according to an embodiment of the present disclosure. The objects may be any of zones, activities, mechanics, and / or any other objects described in connection with FIG. 1.

[0094] In one example, the flow includes operation 1202, in which a computer system accesses video content of a video game player's gameplay within a video game. For example, the video game player may operate a video game console to play the video game. A gameplay recording option may be presented to the video game player on a user interface. When the user selects this option, the video game console may record video content displaying the content and transmit the video game content to a video game platform and / or the video game platform may record the video content directly.

[0095] In one example, the flow includes operation 1204, in which the computer system receives event data while recording gameplay. The event data includes identifiers of objects and may also indicate timing information and possible outcomes. For example, the event data may include a zone identifier for a zone, an activity identifier, a mechanic identifier, the start of an activity corresponding to the activity identifier, the end of the activity, the result of the activity, a change to a mechanic corresponding to the mechanic identifier, the effect of using the mechanic, and a change to another mechanic.

[0096] In one example, the flow includes operation 1206, in which the computer system generates a first association of video content with an identifier and a second association of video portions with timing information. For example, the first association indicates that the video content displays a zone, an activity, and a mechanic. The second association indicates a video portion that displays the zone, the activity, and the mechanic. As described above in connection with FIG. 10, various associations and resulting links may be generated.

[0097] In one example, the flow includes operation 1208, in which the computer system stores the association in a data store (e.g., data store 152 in FIG. 1 ). For example, the first association and the second association are stored in association with a user identifier that identifies the video game player and a video game identifier that identifies the video game.

[0098] In one example, the flow includes operation 1210, in which the computer system transmits the video content to a content system based on the video game player's request to share the video content. For example, the video content is uploaded to a third-party system (e.g., third-party system 190 of FIG. 1 ) and / or stored in a data store.

[0099] In one example, the flow includes operation 1212, in which the computer system stores an indication of the video content to be shared in a data store. Because the video content is shared, the video content, or portions thereof, may be candidate video content or portions that can be used to provide help assistance to other users. In other words, based on the indication in the data store that the video content has been shared, links to the video content and / or video portions may be provided to the computing devices of such users.

[0100] FIG. 13 illustrates another example of presenting a video portion of video content as help assistance to a user according to an embodiment of the present disclosure.

[0101] In one example, the flow includes operation 1302, in which the computer system determines that the user has not completed the activity. For example, the event data stored in association with the user's user identifier excludes the activity identifier of the activity.

[0102] In one example, the flow includes operation 1304, in which a computer system determines video portions associated with the activity. For example, the video portions may be available from video content showing gameplay of other video game players. The computer system searches a data store using the activity identifier to identify video portions based on stored associations. Video portions that show the activity and do not contain spoilers are added to a set of candidate video portions.

[0103] In one example, the flow includes operation 1306, in which the computer system ranks the candidate video portions. For example, using some sorting element, such as those described in connection with FIG. 11, a relevance score for each candidate video portion is generated, and the video portions are ranked according to their relevance scores.

[0104] In one example, the flow includes operation 1308, in which the computer system presents information about the video portions. For example, the top three (or other number) ranked video portions are selected. Information about each selected video portion, including a link to the video portion, is sent to the video game console for presentation in a user interface, such as the GUIs of FIGS. 6-9. In an example, links to the top three rankings may be presented on respective pages within user interface 604 of FIG. 6, and the order of the pages may be determined based on the rank of the video portion (e.g., the highest-ranked video portion or its link may be presented on a first page, while the next-ranked video portion or its link may be presented on a subsequent page accessible via user interaction with selection bar 610). In another example, multiple links to video portions may be displayed on the same page and presented in an order based on ranking (e.g., the highest-ranked video portion or its link may be presented as the left-most thumbnail in a series of thumbnails within the page).

[0105] FIG. 14 illustrates an example of a hardware system suitable for implementing a computer system 1400 according to embodiments of the present disclosure. Computer system 1400 may represent, 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 that runs software applications and, optionally, an operating system. CPU 1402 may be comprised of one or more homogeneous or heterogeneous processing cores. Memory 1404 stores applications and data used by CPU 1402. Storage 1406 provides non-volatile storage and other computer-readable media for applications and data and may include fixed disk drives, removable disk drives, flash memory devices, and CD-ROM, DVD-ROM, Blu-ray, HD-DVD, or other optical storage devices, as well as signal transmission and storage media. User input device(s) 1408 communicate user input from one or more users to computer system 1400; examples of user input device(s) 1408 may include a keyboard, mouse, joystick, touchpad, touchscreen, still or video camera, and / or microphone. Network interface 1410 enables computer system 1400 to communicate with other computer systems over electronic communications networks, which may include local area networks and wired or wireless communications over wide area networks such as the Internet. Audio processor 1412 is adapted to generate analog or digital audio output from instructions and / or data provided by CPU 1402, memory 1404, and / or storage 1406. Components of computer system 1400, including CPU 1402, memory 1404, data storage 1406, user input device(s) 1408, network interface 1410, and audio processor 1412, are connected via one or more data buses 1460.

[0106] A 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) used to store pixel data for each pixel of an output image. The graphics memory 1434 may be integrated into the same device as the GPU 1432, connected to the GPU 1432 as a separate device, and / or implemented within the memory 1404. Pixel data may be provided directly from the CPU 1402 to the graphics memory 1434. Alternatively, the CPU 1402 may provide data and / or instructions defining desired output images to the GPU 1432, which then generates pixel data for one or more output images. The data and / or instructions defining the desired output images may be stored in the memory 1404 and / or the graphics memory 1434. In an embodiment, GPU 1432 includes 3D rendering functionality that generates pixel data for an output image from instructions and data that define scene geometry, lighting, shading, texture, motion, and / or camera parameters. GPU 1432 may also include one or more programmable execution units capable of executing shader programs.

[0107] Graphics subsystem 1430 periodically outputs image pixel data 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 signals from computer system 1400, including CRT, LCD, plasma, and OLED displays. Computer system 1400 may provide analog or digital signals to display device 1450.

[0108] According to various embodiments, CPU 1402 is one or more general-purpose microprocessors having one or more processing cores. Further embodiments can be implemented using one or more CPUs 1402 having a microprocessor architecture particularly suited for highly parallel and computationally intensive applications, such as media and interactive entertainment applications.

[0109] The components of the system may be connected via a network, which may be any combination of the following: 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 devices described in different embodiments herein. The network may include both 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.

[0110] As noted above, while the present invention is described herein with reference to specific embodiments thereof, those skilled in the art will recognize that the present invention is not limited thereto. The various features and aspects of the present invention described above may be used individually or together. Moreover, the present invention can be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of the present specification. Accordingly, the specification and drawings are to be regarded as illustrative rather than restrictive.

[0111] It should be noted that the methods, systems, and devices discussed above are intended to be examples only. It should be emphasized that in various embodiments, various procedures or components may be omitted, substituted, or added as appropriate. For example, it should be understood that in alternative embodiments, the methods may be performed in an order different from that described, and various steps may be added, omitted, or combined. Also, features described with respect to particular embodiments may be combined in various other embodiments. Different aspects and elements of the embodiments may be combined as well. It should also be emphasized that because technology evolves, many of the elements are examples and should not be construed as limiting the scope of the invention.

[0112] Specific details are described to provide a thorough understanding of the embodiments. However, it will be understood by those skilled in the art that the embodiments may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the embodiments.

[0113] Also, note that the embodiments may be described as a process depicted in a flow diagram or block diagram. While each operation may be described as a sequential process, many of the operations may be performed in parallel or simultaneously. Additionally, the order of operations may be rearranged. A process may have additional steps not included in the diagrams.

[0114] Furthermore, 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, storing, or carrying instructions or data.

[0115] Furthermore, embodiments may be implemented in hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored in a computer-readable medium such as a storage medium. A processor may perform the necessary tasks.

[0116] Unless otherwise specified, all measurements, values, ratings, positions, sizes, dimensions, and other specifications set forth in this specification, including the claims that follow, are approximate and not exact. They are intended to have a reasonable range consistent with the function to which they relate and what is customary in the art to which they pertain. "About" includes within a tolerance of ±0.01%, ±0.1%, ±1%, ±2%, ±3%, ±4%, ±5%, ±8%, ±10%, ±15%, ±20%, ±25%, or other tolerances known in the art. "Substantially" refers to greater than 66%, 155%, 80%, 90%, 95%, 99%, 99.9%, or other values known in the art, depending on the context in which the term actually appears.

[0117] While several embodiments have been described, those skilled in the art will recognize that various modifications, alternative configurations, and equivalents may be used without departing from the spirit of the invention. For example, the above-described elements may merely be components of a larger system, and other rules may take precedence over or modify the application of the invention. Also, numerous steps may be performed before, during, or after the above-described elements are considered. Therefore, the above description should not be construed as limiting the scope of the invention.

Claims

1. 1. A method implemented by a computer system, comprising: accessing a video showing the individual completion of said activity by a plurality of video game players using an identifier of said activity defined by the program code of the video game; the activity is a parent of a sub-activity, generating links to video portions of the video, each video portion corresponding to one of the sub-activities; generating a score for each video portion based on the relevance of each video portion to the user; ranking the video portions based on their respective scores; presenting the links to the user in a user interface in an order based on the ranking of the video portions, and in response to the user selecting a first one of the links, the user interface displays to the user a first video portion of a first video of the videos, the first video portion indicating a first completion of a first sub-activity by a first video game player of the plurality of video game players. method.

2. recording a first game play of the first video game player as the first video; receiving one or more events while recording the first game play, the one or more events including the identifier, a second identifier of the sub-activity, a start of the sub-activity, an end of the sub-activity, and a result of completion of the sub-activity by the first video game player; generating one or more of an association between the first video and the identifier, and an association between the first video portion of the first video and the beginning and the end; storing the one or more associations in a data store; The method of claim 1.

3. transmitting the first video to a content system based on a request from the first video game player to share the first video; storing an indication of the first video to be shared in the data store, and the first link being included in the user interface based on the indication; The method of claim 2.

4. the link is presented in a window over video game content of the video game; receiving the selection of the first link presented in the window; receiving the first video from the content system based on the selection; The method of claim 3.

5. presenting the first video of the first gameplay over the video game content of the video game; The method of claim 4.

6. The window further comprises: (i) a first option that presents the first video of the first gameplay adjacent to and concurrent with the presentation of the video game content of the video game; or (ii) a second option of presenting the first video of the first gameplay in a picture-in-picture window over and concurrently with the presentation of the video game content of the video game; at least one of: The method of claim 4.

7. the window further includes a map corresponding to a zone within the video game, the map indicating an estimated location within the zone where the plurality of video game players completed the activity. The method of claim 4.

8. the window further includes information regarding the use of the mechanic to complete the activity based on historical use of the mechanic by the plurality of video game players. The method of claim 4.

9. selecting a predetermined number of the video portions having the highest scores, and the links presented in the user interface include only the links to the predetermined number of selected video portions having the highest scores; The method of claim 1.

10. 1. A computer system including one or more processors and one or more memories storing computer readable instructions, the computer readable instructions, when executed by the one or more processors, causing the computer system to: accessing a video showing the individual completion of said activity by a plurality of video game players using an identifier of said activity defined by the program code of the video game; the activity is a parent of a sub-activity, generating links to video portions of the video, each video portion corresponding to one of the sub-activities; generating a score for each video portion based on the relevance of each video portion to the user; ranking said video portions based on their respective scores; presenting the links to the user in a user interface in an order based on the ranking of the video portions, and in response to the user selecting a first one of the links, the user interface displays to the user a first video portion of a first one of the videos, the first video portion indicating a first completion of a first sub-activity by a first video game player of the plurality of video game players; Computer system.

11. The execution of the computer readable instructions further comprises: determining that the user and the first video game player have the same language setting; increasing the score of the first video portion relative to the scores of other video portions showing completion of the first sub-activity by video game players with different language settings; 11. The computer system of claim 10.

12. The execution of the computer readable instructions further comprises: determining that the first video portion depicts the use of a mechanic by the first video game player to complete the first sub-activity; determining that the mechanic is available for use by the user; increasing the score of the first video portion relative to the score of another video portion showing the completion of the first sub-activity using another mechanic not available to the user.

11. The computer system of claim 10.

13. The execution of the computer readable instructions further comprises: determining that the user and the first video game player have the same characteristics; increasing the score of the first video portion relative to the scores of other video portions showing completion of the first sub-activity by video game players with different characteristics; 11. The computer system of claim 10.

14. The execution of the computer readable instructions further comprises: determining that the user and the first video game player have the same difficulty setting; increasing the score of the first video portion relative to the scores of other video portions illustrating completion of the first sub-activity by video game players at different difficulty settings; 11. The computer system of claim 10.

15. The execution of the computer readable instructions further comprises: determining that a completion time of the first sub-activity by the first video game player is within a predetermined range of completion times for the first sub-activity; and increasing the score of the first video portion relative to the scores of other video portions having completion times that are outside the range of completion times of the first sub-activity.

11. The computer system of claim 10.

16. The execution of the computer readable instructions further comprises: determining that the first video portion includes microphone audio of the first video game player; and increasing the score of the first video portion relative to the score of other video portions that do not include microphone audio.

11. The computer system of claim 10.

17. The execution of the computer readable instructions further comprises: determining a success rate of the first video portion, the success rate being at least: receiving, after presenting the first video portion to a second video game player, data including an identifier of the first sub-activity and indicating successful completion of the first sub-activity by the second video game player; and updating the success rate based on the data; increasing the score of the first video portion relative to the scores of other video portions with lower success rates; 11. The computer system of claim 10.

18. One or more computer-readable storage media storing instructions that, when executed on a computer system, cause the computer system to perform operations, including: accessing a video showing the individual completion of the activity by the plurality of video game players using an activity identifier defined by the program code of the video game; the activity is a parent of a sub-activity, generating links to video portions of the video, each video portion corresponding to one of the sub-activities; generating a score for each video portion based on the relevance of each video portion to the user; ranking said video portions based on their respective scores; presenting the links in a user interface to the user in an order based on the ranking of the video portions, and in response to the user selecting a first one of the links, the user interface displays to the user a first video portion of a first video of the videos, the first video portion indicating a first completion of a first sub-activity by a first video game player of the plurality of video game players; A computer-readable storage medium.

19. In the operation, presenting a window in the user interface in a first state, the window being presented over video game content of the video game identifying the activity; presenting the window in an expanded state when the activity is user-selected, the expanded window identifying the sub-activities of the activity; updating the expanded window to display the link when the first sub-activity is selected by a user from the sub-activities of the activity; 20. The computer-readable storage medium of claim 18.

20. The window is (i) a map within a zone of the video game for completing the first sub-activity; (ii) second information regarding the use of a mechanic to complete the first sub-activity; the at least one of (i) the map and (ii) the second information is displayed simultaneously with the link to the video portion; 20. The computer-readable storage medium of claim 19.

Citation Information

Patent Citations

  • Game machine and game program

    JP2010063840A

  • Systems and Methods for Enabling Time-Shifted Coaching for Cloud Gaming Systems

    US20170087460A1

  • Contextual search for gaming video

    US20170270128A1

  • System and method of automatically annotating gameplay of a video game based on triggering events

    US20170282077A1

  • User analysis system and method

    US20190217203A1