CN107096221B - System and method for providing time-shifted intelligent synchronized gaming video - Google Patents

System and method for providing time-shifted intelligent synchronized gaming video Download PDF

Info

Publication number
CN107096221B
CN107096221B CN201610871813.7A CN201610871813A CN107096221B CN 107096221 B CN107096221 B CN 107096221B CN 201610871813 A CN201610871813 A CN 201610871813A CN 107096221 B CN107096221 B CN 107096221B
Authority
CN
China
Prior art keywords
game
video
mini
presented
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610871813.7A
Other languages
Chinese (zh)
Other versions
CN107096221A (en
Inventor
D.佩里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment LLC
Original Assignee
Sony Computer Entertainment America LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/268,491 external-priority patent/US10549203B2/en
Priority claimed from US15/268,493 external-priority patent/US10549204B2/en
Application filed by Sony Computer Entertainment America LLC filed Critical Sony Computer Entertainment America LLC
Priority to CN202110060530.5A priority Critical patent/CN112755521A/en
Publication of CN107096221A publication Critical patent/CN107096221A/en
Application granted granted Critical
Publication of CN107096221B publication Critical patent/CN107096221B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an MPEG-stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • A63F13/493Resuming a game, e.g. after pausing, malfunction or power failure
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • A63F13/497Partially or entirely replaying previous game actions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/88Mini-games executed independently while main games are being loaded
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Abstract

Systems and methods for sharing a gameplay of a video game are described that include detecting, at a game cloud system, a selection of a video game for play. In response, the video game is executed at the game server. The execution causes a game process of the video game to be provided to the game client for presentation on a major portion of a display screen of the game client, and a prerecorded video associated with the video game is provided for presentation in a second portion of the display screen, with the game process being presented on the major portion of the display screen. The prerecorded video presented in the second portion is dynamically synchronized with the gameplay of the video game presented in the main portion. An information overlay is provided for presentation in the main portion relating to an event in the prerecorded video that corresponds to the event in the course of the game. The information message provides a detailed message of the event and is generated using metadata associated with the video game.

Description

System and method for providing time-shifted intelligent synchronized gaming video
Technical Field
The present invention relates to systems and methods for defining, sharing and playing video games and mini-games in a cloud-implemented system.
Background
Description of the related Art
Cloud systems use computing resources (hardware and software) to deliver services over a network (typically the internet). In the context of gaming, these services enable content to be streamed to remote clients, with most of the processing done on servers, which may be distributed. The input provided at the remote client will in turn drive the game to execute on the server without requiring dedicated game hardware at the location of the client. Cloud games are becoming more popular because of the ease of access to games executed on the cloud system, as users find it easier to access more titles without complex hardware limitations. Similarly, game providers find it easier to manage game codes from a centralized location.
In this context, embodiments of the invention arise.
Summary of The Invention
Embodiments of the present disclosure relate to systems and methods for managing the execution and sharing of video games and mini-games within a gaming system executing on a game cloud and sharing particular video clips with other users. Several inventive embodiments of the present invention are described below.
A player may access a plurality of video games offered on a cloud server based on the player's user account, be allowed to select a video game for play at the cloud server, and provide input to facilitate an outcome of the video game. The player's gameplay is used to generate a video recording of the game session. The video recording also records telemetry data obtained from the game play of the video game and data signals of the video game, such as provided by a game developer. The telemetry includes detailed information about the game play at various points in the game play as the video recording is generated (such as the position of the player's character within the video game, the direction the player is facing, the player's hands, the angle of the head, etc.). The data signals from the video game relate to events that occur at different times (e.g., "ultimately monster battle"). Telemetry and data signals relate different segments of the video recording to specific events in the video game, such as video recorded during the course of an ultimate monster battle. The video recording with the telemetry provides "smart" video that allows identification of events and actions that occur at different times during the game.
The second user is allowed to play the video game by following the video recording of the player's game play substantially in real time. In some implementations, the prerecorded video of the player's game is embedded in a picture-in-picture format into a portion of the display screen of the game client that the second user uses to play the video game. Following the recorded game play of the player allows a second user to play the same video game (e.g., fight the same monster, overcome the same obstacle, capture the same token, etc.). However, the second user may spend longer than the player's completion time in the video recording of the video game completing the presented task or challenge or level. In this case, the system automatically pauses the presentation of the player's video recording and waits for the second user to catch up with progress, then automatically resumes the presentation of the player's video recording when it detects that the second user has progressed again. When the second user catches up with the super video recording, the video recording is automatically fast forwarded to catch up with the second user's game play.
Telemetry information recorded with the player's video recording is used to identify game statistics (e.g., time taken to complete the challenge, number of attempts to complete the challenge, etc.), which are then used to perform a friend-to-friend game comparison to indicate how well the respective person played the video game, and such comparison may be made at each moment in time or for each event/challenge of the video game. The telemetry information of the second user's gameplay can be used to cause the second user's actual gameplay to playback and rewind. Additionally, the information provided in the video recording (e.g., telemetry information and data signals) may be used to recreate the actual gameplay, to fast forward or rewind the second user over the video recording of the second user's gameplay, and to enable the second user to restart the video game in connection with any etching of the video recording.
In one embodiment, a method of sharing a gameplay of a video game is disclosed. The method includes detecting, at a cloud server, a selection of the video game for play. The video game is associated with a prerecorded video of a player's game session. The detection causes the gameplay of the video game to be provided to a game client for presentation on a major portion of a display screen of the game client. Providing the prerecorded video associated with the video game for presentation in a second portion of the display screen, while the gameplay of the video game is presented in the main portion of the display screen. The prerecorded video of the video game presented in the second portion is automatically synchronized with the gameplay of the video game presented in the main portion such that the gameplay scenes of the video game presented in the second portion match the gameplay scenes of the gameplay presented in the main portion of the display screen.
In some implementations, a presentation speed of video frames of the pre-recorded video is dynamically adjusted to match a speed of a game play to enable the game scenes of the pre-recorded video to match the game scenes of the game play. The matching of the game scenes is performed using metadata generated from the prerecorded video associated with the video game.
In some implementations, the pre-recorded video presented in the second portion is paused when the game scenes presented in the main portion do not match the game scenes presented from the pre-recorded video.
In some implementations, upon detecting a match of the game scene of the game play presented in the main portion and the game scene of the pre-recorded video, continuing to present the pre-recorded video in the second portion. The matching of the game scenes is performed using metadata generated during a game of the video game and metadata obtained from the prerecorded video.
In some implementations, continuing to present the prerecorded video includes: automatically advancing or rewinding video frames of the pre-recorded video presented in the second portion to match the game scenes of the game play.
In some implementations, the gameplay of the video game causes the generation of a second video. The second video is associated with the video game and is used to restart the game process.
In some implementations, several options are provided to identify an entry point to restart the gameplay of the video game. The entry point is selected from the prerecorded video or the second video associated with the video game and is used to identify a portion of executable code in the video game that is to be executed to restart the game process of the video game.
In another embodiment, a method of sharing a gameplay of a video game is disclosed. The method includes detecting, at a cloud server, a selection of a mini-game for playing. The mini-game is defined for a portion of the video game and provided at the cloud server for sharing. The mini-game is associated with executable code that enables the portion of the video game defined within the mini-game to be played and a prerecorded video of a game session of a player for the portion of the video game. The selection causes the executable code of the mini-game to be executed at the cloud server. Providing a gameplay of the executed mini-game for presentation in a main portion of a display screen of the game client. Providing the pre-recorded video associated with the mini-game for presentation in a second portion of the display screen, while the gameplay of the mini-game is presented in the main portion of the display screen. The pre-recorded video presented in the second portion is dynamically synchronized with the gameplay of the mini-game currently presented in the main portion of the display screen such that the gameplay scenes of the pre-recorded video presented in the second portion match the gameplay scenes of the gameplay presented in the main portion.
In one embodiment, a method of sharing a gameplay of a video game is disclosed. The method includes detecting, at a cloud server in a game cloud system, a selection of the video game for play. The video game is associated with a prerecorded video of a player's game session. A selection of the video game to play is detected at the cloud server. The detection causes the game process to be provided for presentation in a main portion of a display screen of a game client. Providing the prerecorded video associated with the video game for presentation in a second portion of the display screen, while the gameplay of the video game is presented in the main portion of the display screen. The prerecorded video of the video game presented in the second portion is automatically synchronized with the gameplay of the video game presented in the main portion such that the gameplay scenes of the video game presented in the second portion match the gameplay scenes of the video game presented in the main portion of the display screen. A second video is generated for the video game from a current session of the game play. The second video includes metadata related to the game play. The second video is associated with the video game.
In some implementations, several options are provided to restart the gameplay of the video game. The restarting includes providing the second video for presentation in the second portion of the display screen; options are provided to select an entry point within the second video to restart the gameplay of the video game, wherein the entry point indicates a location within the video game for restarting the gameplay that is different from a starting location. The gameplay of the video game is restarted from the selected entry point. The restart causes the game process to be provided for presentation in the main portion of the display screen. The second video is provided for presentation in the second portion of the display screen starting from the selected entry point.
In one embodiment, a method of sharing a gameplay of a video game is disclosed. The method includes detecting, at a server, a selection of the video game for play. The video game is associated with a prerecorded video of a player's game session and metadata related to a gameplay of the video game. The detection causes the game process to be provided to the game client for presentation in a major portion of a display screen of the game client. Providing the prerecorded video associated with the video game for presentation in a second portion of the display screen, while the gameplay of the video game is presented in the main portion of the display screen. The prerecorded video of the video game presented in the second portion is adjusted to match game scenes of the video game presented in the second portion with game scenes of the game play presented in the main portion of the display screen. An information overlay is provided for presentation in the main portion during the game. The information overlay includes detailed messages related to events in the prerecorded video, the events corresponding to events in the course of the game. The information message is generated using the metadata associated with the video game.
Other aspects of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
Brief Description of Drawings
The invention may best be understood by reference to the following description taken in conjunction with the accompanying drawings in which:
FIG. 1 shows a simplified block diagram of a universal game cloud system identifying various modules for accessing, playing and sharing video games and mini-games stored in the game cloud system, according to one embodiment of the present invention.
FIG. 2 shows a simplified representation of a process for creating a mini-game from a video recording, according to one embodiment of the invention.
FIG. 3A illustrates a portion of a video game captured in a prerecorded video of the video game from a player gaming session, according to one embodiment of the invention.
FIG. 3B illustrates a portion of a video game included in a mini-game generated from a player gaming session, according to one embodiment of the present invention.
FIG. 4A shows a simplified representation of video frames from a player's pre-recorded video across a timeline for synchronization with a user's gaming process, according to one embodiment of the invention.
FIG. 4B shows a simplified representation of video frames from a player's pre-recorded video across a timeline for synchronization with a user's gaming process, according to an alternative embodiment of the present invention.
FIG. 5 shows a simplified representation of a display screen of a game client for presenting different content during a game of a mini-game, according to one embodiment of the present invention.
Fig. 6A, 6B, and 6C illustrate a second portion of a game process of a game client for selecting a starting entry point or restarting a video game according to one embodiment of the present invention.
Fig. 7A, 7B and 7C show representations of game clients for presenting different types of information messages, according to different embodiments of the present invention.
Fig. 8A is a flowchart of the operation of an exemplary method for managing the execution and sharing of a video game by a game cloud system, according to one embodiment of the present invention.
Fig. 8B is a flowchart of the operation of an exemplary method for managing the execution and sharing of a video game through a game cloud system, according to an alternative embodiment of the present invention.
Fig. 9A is a flowchart of the operation of an exemplary method for managing the execution and sharing of a video game by a game cloud system, according to one embodiment of the present invention.
FIG. 9B is a flowchart of the operation of an exemplary method for managing execution and sharing of a mini-game through a game cloud system, according to an alternative embodiment of the present invention.
FIG. 10 is a component of a head mounted display acting as a game client according to one embodiment of the present invention.
Detailed Description
The following embodiments describe systems and methods for managing the execution and sharing of portions of a video game and corresponding prerecorded videos of portions of the video game by a cloud-based gaming system. Sharing enables intelligent synchronization of the pre-recorded video of portions of the video game with the game process. The cloud-based gaming system allows streaming of an online gaming process for a video game while allowing players to provide interactive input to the video game from a remote location using a game client device that is connected to the cloud-based gaming system over a network, such as the internet. As a player plays a video game, a video record of the video game is created, capturing game activity (including the player's interactive input) from a game session. The video recording is associated with a video game.
The video game may correspond to a complete video game that includes multiple levels, where each level of the video game provides multiple options, routes, sequences, functions, etc. to accomplish a challenge, task, level, etc. A player may choose to share a complete video game or a portion of a video game with other users to enable the other users to view records or play the portion of the video game shared by the player. For example, the player may have purchased a video game and may have accessed the full video game. Alternatively, when a player chooses to share a video game with other users, he may choose to share only portions of the video game's functionality or only portions of the video game. Various implementations described herein relate to sharing a portion of a video game, but are extendable to sharing a complete video game. Thus, the portion of the video game may be described as a portion that is less than a full video game, or a full video game with limited functionality, or a full video game with all functionality.
During or after the play of the video game, the player is provided with an option to select the video game or a portion of the video game to share. When a player selects to share a portion of a video game, the player may be provided with options to select a start point and an end point in a video recording to identify the portion of the video game to share. The selection of start and end points in the video recording is used to generate a mini-game. The mini-game defined by the player includes portions of the video game that correspond to the player's selected start and end points from the video recording. As mentioned above, the generated mini-game may include all of the features of the full video game, or may have fewer features, objects, controls, etc. than the full video game. The generated mini-game is associated with a video portion and an executable portion. The video portion provides a portion of a video recording of the video game session from which the mini-game is generated. The executable portion includes executable code to enable playing of the portion of the video game identified in the mini-game. The executable portion may inherit the set-up parameters of the video game from which the mini-game is generated.
As more and more players play video games, it is likely that many different mini-games may be created for the same video game. Some of the mini-games created for a video game may include the same start and end points, while other mini-games may include different start and end points. Where multiple mini-games generated for a video game have the same start and end points, the mini-games may be created by the same user or player or by different users or players. In such a case, video recordings provided from the gameplay of multiple mini-games may vary in gameplay to achieve a certain goal or to overcome challenges/checkpoints defined therein. For example, the number of mini-games may vary in time, number of attempts, sequence of user activities, and so forth in order to achieve a goal.
The generated mini-game or full video game with associated video portions and executable portions may be shared with other users. In some embodiments, the mini-game or video game is shared by publishing the video game or generated mini-game to a game cloud system. In other embodiments, the video game or mini-game is shared over one or more social networks by posting a link to jump to the mini-game. Due to the sharing, other users in the game network or social network will be allowed to access and play the shared video game or mini-game.
Each video game or mini-game shared on the game cloud system or social network is associated with an image that best represents the content of the video recording associated with the video game or mini-game. A plurality of mini-games of video games and/or video games published to a game cloud system or social network are managed by sorting, ranking, and sharing the video games, mini-games based on user interactions at the respective video games or mini-games. In some implementations, the user interaction may include multiple selections of a video game or mini-game to view or play, multiple selections of a video game or mini-game to share, multiple praise, multiple recommendations, video game or mini-game recording quality ratings, generating or sharing ratings for players or users of a video game or mini-game, and so forth. For example, as more and more users select a particular video game or mini-game for play, the particular video game or mini-game may be ranked higher and be more prominently presented in the game cloud system than the video game or mini-game selected for viewing. In another example, a video game shared by a high scoring user/player or a mini-game generated by a high scoring user/player may be ranked higher when shared with other users on a game cloud system, a game website, or one or more social networks.
When a user selects a shared video game or mini-game for viewing, a pre-recorded video of the video game or mini-game is provided for presentation on a major portion of the display screen of the game client. Alternatively, when a user selects a mini-game to play, an executable portion associated with the mini-game is instantiated at a game server within the game cloud system. Execution of the mini-game causes the game play to be presented on a major portion of the display screen. The primary portion covers a majority of the display screen and, in some implementations, less than the entire display screen. While the gameplay is presented at the primary portion of the display screen, a video portion associated with the mini-game is provided for presentation in a second portion of the display screen to allow the user to view the gameplay recorded for the selected mini-game at any time during the gameplay of the mini-game. The second portion is defined as a portion of the display screen, less than the entire display screen, and in some implementations, less than the main portion. In other implementations, the second portion may be equal to the main portion. In other implementations, the second portion may be smaller than the main portion, but may be dynamically adjusted to be equal to or larger than the main portion of the display screen.
During the gameplay of the mini-game, the video portion presented in the second portion of the display screen is dynamically synchronized with the gameplay of the mini-game currently presented in the main portion of the display screen. Dynamic synchronization may include dynamically adjusting the video portion to advance the video frame, rewind the video frame, pause the pre-recorded video presented in the second portion until a game scene of the gameplay of the user playing the mini-game matches a game scene presented during the gameplay. In some implementations, the rendering speed of the video frames streamed from the game server can be adjusted to match the speed of the gameplay of the mini-game.
The gameplay of the mini-game may be used to generate a mini-game play video. The generated mini-game play video captures user activity of the user during the game of the mini-game. In one embodiment, the user's mini-game play video may be shared with other users by associating the mini-game play video with the mini-game such that the associated mini-game play video is available for viewing and/or presentation upon selection. In this embodiment, a mini-game is associated with the pre-recorded video and the newly generated mini-game play video. In an alternative embodiment, the mini-game play video may be shared with other users by generating a new post for the mini-game at the game cloud system and using the newly-generated mini-game play video of the video portion. Alternatively, a mini-game with a newly generated mini-game play video may be shared as a link on one or more social networks. Further details in various embodiments are described below with reference to the exemplary figures.
It will be apparent, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
FIG. 1 shows a simplified block diagram of a game cloud system 10 for managing selection, execution, and sharing of video games, according to one embodiment of the present invention. According to alternative embodiments of the present invention, the game cloud system 10 may also be used to generate and share mini-games within the game cloud system 10. The game cloud system 10 provides game applications, services, game-related digital content, and interconnectivity among various game systems, game applications, users, and social networks. For example, in some embodiments, game cloud system 10 may include a network of game servers 300 and one or more social media providers 380 distributed across a geographic area such that one or more game clients 100 may repeatedly remotely query game servers 300 or social media providers 380 from any geographic location. The network interface 360 allows communication between the game client 100, the game server 300, and the social media provider 380 over a communication network 200, such as the internet. The network interface 360 enables wired or wireless communication.
In some embodiments, the social media provider may be part of the game cloud system 10, whereby user relationships may be managed without the need for an external social media provider 380. In other embodiments, the game cloud system 10 may operate as a hybrid system in which social relationships are managed using social graphical data (not shown) obtained from third-party social media providers 380 via an application programming interface. In such embodiments, the social relationships may be stored in social network datastore 140 and adjusted based on user interactions within game cloud system 10. The adjusted social relationship data may be specific to the game cloud system and used during play of the video game or mini-game. Alternatively, adjustments to the social relationship data may be updated to the corresponding social media provider 380.
One or more of the game servers 300 are configured to execute a game processor module 301. The game server 300 may be any type of server computing device that may be used with the game cloud system 10. In some implementations, one or more of the game servers 300 can be Virtual Machines (VMs) running on a hypervisor of the host machine and accessed remotely over the network 200. In such an embodiment, one or more virtual machines are configured to execute the game processor module 301 using the hardware resources of the hypervisor available to the host.
The game processor module 301 is configured to manage the execution of a plurality of video games, the generation of video recordings of the gaming process of the video games, the generation and sharing of video games, mini-games within the game cloud system 10. The game processor module 301 may execute a game synchronizer application, for example, a game synchronizer application comprising a plurality of modules and one or more execution engines executing on the game server 300. The modules are configured to receive and process various game-related and user-related data, manage the execution of video games, the generation of mini-games, the video recording of game play, and the sharing of video games, mini-games, video recordings with users over the network 200. In some implementations, the different modules may include execution engines configured to execute independently on one or more game servers 300 using data available to the game servers 300.
Game client 100 is used to access services, game-related content or other content provided by game cloud system 10, and game-related content or other content provided by social media provider 380. The game client 100 includes or is associated with a display screen 105. Display screen 105 includes a user interface 110 for requesting access to a service, such as a video game, and for providing user interaction. The display screen 105 also includes a display portion for presenting the gameplay of the video game. It should be noted that the game client 100 may be any type of computing device having at least one memory and a processor, such game client being capable of connecting to the game server 300 over the network 200. The game client 100 may use wired or wireless communication and may be portable or non-portable. Some game client 100 examples include a Personal Computer (PC) (including desktop, laptop), home theater PC, general purpose computer, mobile computing device, tablet computing device, wearable computing device, head mounted display, hybrid device providing touch screen capability in a portable form factor, or other type of computing device that can interface and interact with game server 300 over network 200. One example game client 100 may be a portable telephone device that runs a mobile operating system and is capable of connecting to the game server 300 over the network 200 to access various applications provided at the game server 300.
The display screen 105 may be part of the game client 100 or may be a display screen separate from the game client 100 but connected to the game client 100 by a wireless or wired connection. The game screen 105 associated with the game client 100 may be a touch screen display, a display provided by a flat panel monitor, a Cathode Ray Tube (CRT) monitor, a Liquid Crystal Display (LCD) monitor, a Light Emitting Diode (LED) monitor, an organic LED (oled) monitor, a plasma monitor or Digital Light Processing (DLP) monitor, a display surface or device on which a projector may project content, or any other display device or surface or screen capable of presenting content.
In some embodiments, network 200 may be a wide area network (e.g., the internet), a local area network, a metropolitan area network, a personal area network, a wireless local area network, or any combination thereof.
In some implementations, the game client 100 may install a client-side version application to enable execution and/or viewing of games stored and shared by the game cloud system 10. The game client 100 may also be used to communicate with one or more social media providers 380 via the network 200 such that the game client 100 may be able to access video games, execute game processes, view video recordings of game processes shared in social media streams. For example, the game client 100 may be able to access a video game published in a social media network by selecting a link on a social media page, in a stream, in a news feed, or in a post provided by the social media provider 380 and using the game client 100 to view or play the game.
In one embodiment, a player may access a video game provided in the game cloud system 10 through a user account created by the player and registered with the game cloud system 10. In such embodiments, game cloud system 10 may provide the user ID for the registered user account and save the user ID in the user profile associated with the player's registered user account. The user profile associated with the registered user account is maintained in a user database in gaming network user store 130 and used to validate subsequent requests from the player.
After a player registers with game cloud system 10, the player may be presented with an option to specify the type of game client 100 that the player is using to access game cloud system 10. In one implementation, a list of game client options may be presented for selection by a player. Similarly, the player may also be presented with an option to specify the type of controller device to use to provide user input during play of the video game. In one embodiment, a list of controller options may be presented for selection by the player. In other embodiments, logic executing at game cloud system 10 within game processor 301 may be configured to automatically detect a game client type and/or a controller device type for accessing a user account. For example, when accessing a user account on a game cloud system, the game client 100 may send information to the game server 300 identifying the game server itself and the connected controller device. Based on this information, the game server 300 within the game cloud system may determine appropriate content output configurations (e.g., video game content) and input parameter configurations that may be used to provide game content and other content viewing experiences that are optimized for the player's client device and controller device. These configuration and input parameters may be used to generate predetermined setup parameters. The set parameters provide information at the game client 100 to define and/or customize game controls, game objects, etc. for playing the video game. In addition to setting parameters, a social media interface (not shown) may also be provided at the game client 100 to enable social interaction with other users.
A player may request access to a video game provided on game cloud system 10 through a user interface 110 provided on a display screen 105 of game client 100. In some embodiments, the request and the player may be authenticated locally at the game client 100 before the request is forwarded to the game server 300 for further authentication and processing.
In response to the request, the game synchronizer application executes on the game processor 301 of the game server 300. The game synchronizer application includes a number of modules whose interaction and functioning will be explained in more detail below. When a request is received at the game server 300, the user access logic 350 at the game server 300 is used to detect an access request issued from a player through the game client 100 or other suitable device. In some implementations, the access request can include user account information, such as a username and a user password for the user account. In response, the user access logic 350 may communicate the user account information to the user processor 112 where the user request is verified. User processor 112 may retrieve the player's user profile information stored in gaming network user store 130 and verify the information provided in the request. Upon successful authentication of the player, the user access logic 350 may communicate the user account information to the social network manager 370 such that the social network manager 370 may request and receive contact information for social contacts associated with the player from one or more social media providers 380 via the network interface 360. Social network manager 370 may transmit the received contact information to game network user store 130 for storage alongside the player's user profile and additionally in social network data store 140 for subsequent access. The contact information may be used during the sharing of the video game or any mini-game that a player may generate during or after playing the video game provided at gaming cloud system 10.
Upon authenticating the player, the player may access services provided by game cloud system 10 via game session manager 340. The game session manager 340 may communicate the user request to the user processor 112 so that the user processor 112 may utilize the access request information to record or update the player's profile information stored in the social network user store 130.
Game session manager 340 may then interact with title indexing engine 114 to identify video game titles that may be provided to a player's user account. Title index engine 114 may interact with game title store 132 to obtain video game titles that may be provided to a player's user account. The video game titles that may be provided to the user account may include video game titles that the player previously purchased from the game cloud system, video game titles that the player previously purchased and provided at the game cloud system, video game titles that were previously played by the player, and/or free video game titles provided by the video game provider. In some embodiments, the available game titles may include game titles associated with a particular type identified from an interest expressed by the player or based on the player's previous selections of the video game. The title index engine 114 may categorize and prioritize the identified video game titles, populate a Graphical User Interface (GUI) with the identified video game titles, and return the GUI for presentation at the display screen 105 through the game session manager 340 via the network interface 360 to the game client 100 via the network 200. Alternatively, relevant data relating to the identified game title may be provided to the game client 100 to allow the game client 100 to generate and present a GUI on the display screen 105. The data presented in the GUI may include an initial image for each video game title, where the selected image is most representative of the content within the video game title. In addition, each video game may be associated with multiple mini-games. In some embodiments, a mini-game is defined for a video game by a player who has purchased the video game or has access to the video game. In other embodiments, the mini-game is defined by a video game or mini-game that the player or other user shares from one or more social contacts of the player/other user.
The player may select a video game title for the game from a GUI presented in display screen 105. In response to detecting the player's selection of a video game title, a game session is initiated by the game session manager 340. Game session manager 340 may interact with game state store 134 to obtain a saved game state (if any) for the selected video-game surface. The game state has been saved in the game state store 134 from the player's previous game session. Thus, when a player's selection of a video game for play is detected, the player's previous game state of the video game stored in game state store 134 is retrieved so that the video game can be restarted from the stop point of the previous game identified from the information provided in the game state. If no previous game state exists for the player's selected video game, then the start of the video game is identified as the starting point. Upon identifying the starting point, game session manager 340 interacts with game execution engine 116 to execute the game code of the identified video game title stored in game code store 136 from the starting point. The game code for the selected video game is executed by the game processor 301 of the game server 300. Video frames of game data from the gameplay of the selected video game are returned as streaming video data via the network interface 360 to the display screen 105 of the game client 100 for presentation. Based on the type of game client 100 and display screen 105 associated with the game client 100, the game video frames may be appropriately compressed and formatted for presentation before being forwarded to the game client 100.
During the course of the game of the video game title, user interactions provided at the game client 100 or through a game controller (not shown) are transmitted to the game server 300 to affect the outcome of the game course of the video game executing on the game cloud system 10. In response to the user interaction, game session manager 340 may communicate with game execution engine 116 to affect the outcome of the video game and may communicate with game recording engine 120 to generate a record (e.g., video, audio, etc.) of the game session as the game progresses. The game play record is stored in the video data store 138 as a pre-recorded video of the video game.
In one embodiment, along with game play records, game related metadata may also be stored in the video data store 138 and used to provide information regarding the game state of the video game. In some implementations, during the course of the game, at the time the record is to be generated, or after the course of the game, the record of the course of the game is analyzed by the game course analysis engine 124 to generate metadata detailing the course of the game. The generated metadata may identify game related telemetry information relating to or in addition to data signals targeted for the video game by, for example, a game developer. The game related telemetry information may include information relating to the occurrence of specific events, challenges, levels, available predetermined game awards, etc., data signal information provided as the video game progresses, and actions by the player to achieve goals, overcome the levels or challenges, etc. For example, the telemetry information may include when a wall appears within a particular game scene, when a fireball is thrown, when a player skips a fence or climbs over a wall, when a player is fighting against an enemy, overcoming or killing the enemy, which direction the player is moving or facing during the game. The additional information relating to the data signals provided within the video game may include information relating to the game scene to be presented at different times during the game. The metadata may also identify game-related parameters of the video game, including game levels included, game states, game objects used, and the like.
Metadata provides a rich source of information about a video game and the gameplay of the video game to identify which have occurred in the past, how the video game is currently in state, which are presented or have been presented in various game scenarios, and which levels, challenges, objects, ratings, goals, etc. are to be overcome and what is in the front. In addition, the metadata may identify the position within the game of the user avatar, the orientation and/or orientation of the player, or the position, orientation, type, gameplay speed, number of times an input service is attempted to achieve certain goals/levels or overcome a certain challenge when providing user interactions during the gameplay, the amount of time spent in the video game, the interaction pattern, and so forth. The game play captured in the record is augmented with this metadata obtained by analyzing the game play. This enhancement data for the video game provides sufficient detail to allow any portion of the video game, the actual gameplay of the video game to be recreated, and video frames corresponding to particular game scenes to be identified.
The generated metadata is associated with a video recording of the video game. In some implementations, metadata information identified during analysis by game play analysis engine 124 is stored in video data store 138 and associated with a video recording of the video game.
After a record of the game play is generated and stored in the video data store 138, the player may be interested in sharing the video game or at least a portion of the video game with other users. The player may express interest to share by providing a share button or share option at the user interface 110 during or after the game. In response to the user expressing or suggesting an interest in sharing, game session manager 340 may interact with game record engine 120 to retrieve from video data store 138 a record of the video game generated during the player's game session and forward the record to game client 100 for presentation at user interface 110. The record may include video frames of the game play and metadata related to the game play. Along with the recording, one or more options or controls may be provided at the user interface 110 of the game client 100 to allow the player to select a portion of the recording of the video game that the player wishes to share with other users.
Using the options or controls, the player may identify the portion of the video recording defined by the start point or the end point for sharing. In some embodiments, the portion defined by the start point and the end point may include a trigger event, a sequence of tasks, steps, or movements to be performed, or a challenge to be solved or overcome. The game session manager 340 receives selection data from the game client 100 and may, in conjunction with the mini-game generation engine 122, generate the identified portion of the mini-game. The mini-game generation engine 122 may interact with the game recording engine 120 to access a record of the game play of the video game from the video data store 138 and receive a start point and an end point provided at the game client 100 through the game session manager 340. Using the selection of the start point, the end point, and the information provided in the record, the mini-game generation engine 122 may generate a mini-game by identifying the selected portions of the executable code that correspond to the start point and the end point. The identified portion of executable code provides the necessary functionality (e.g., game code, game attributes, game state, etc.) to implement the gameplay of the selected portion of the video game. A mini-game is generated and the identified portion of executable code is used to define an executable portion of the mini-game. Since the mini-game is generated from a video game record, the recorded portion (e.g., video frame) associated with the specified start and end points is extracted and associated with the generated mini-game as the video portion of the mini-game.
In one embodiment, the mini-game generation engine 122 uses the game metadata retrieved from the video data store 138 to identify which portions of the game code of the entire video game are needed to define the mini-game. The video clip generator within mini-game generation engine 122 may communicate with game code store 136 directly or through game session manager 340 to obtain the game code for the video game, and may communicate with game code mapping engine 118 directly or through game session manager 340 to identify portions of the game code that relate to player-defined starting and ending points. The information obtained from game code mapping engine 118 is provided to mini-game generation engine 122 for processing and generation of the mini-game. In some implementations, code for a mini-game may be identified using a pointer or reference within the game code for the full game. These pointers and/or references may be stored in the mini-game data store 142 and referenced during the play of the mini-game. By using pointers and/or references, the need to create a new code package for each generated mini-game is reduced. Alternatively, the pointer or reference is a portion of executable code used by the mini-game generation engine 122 to identify and extract from the video game to generate the mini-game. The mini-game generation engine 122 may use the setting parameters and game attributes provided in the recorded telemetry data to, when generating the mini-game, cause the other user who selected the mini-game to play to be provided with a substantially similar gaming experience as the player whose game play was used to generate the record. The setting parameters may be defined for or by a player, for example, during the course of a game of the video game. In one embodiment, the game attributes may have been identified for the video game by the game developer.
In some embodiments, the executable portion includes code associated with events, challenges, checkpoints, tasks, and the like identified within the player-defined start and finish points, and the video portion associated with the mini-game may include a record of actions taken by the player to perform the events, overcome the challenges, pass the checkpoints, complete the tasks.
FIG. 2 illustrates an example mini-game generated by mini-game generation engine 122 using start and end points specified from a record of a player's video game play. The start and end points correspond to particular video frames in the recording. For example, a player may select a start point 201 and an end point 203 in a video recording in order to generate a mini-game for sharing. The start point 201 and the end point 203 specified in the video recording by the player are used by the mini-game generation engine 122 to identify the corresponding code of the portion of the video game and generate the mini-game. In some implementations, a player may request that more than one mini-game be generated by providing multiple start and finish points. For example, as shown in fig. 2, a first set of start and finish points (201, 203) may be specified by the player to generate mini-game 1(MG1), a second set of start and finish points (207, 209) may be specified by the player to generate mini-game 2(MG2), and so on. The mini-game generation engine 122 may obtain game code for the video game, identify corresponding executable code from the video game that encompasses the start point 201 and the end point 203 and the start point 207 and the end point 209, and define executable portions of the mini-games MG1, MG2, respectively, using the corresponding executable code. Similarly, video portions of the generated mini-games (MG1, MG2) corresponding to the first and second sets of start and end points (201, 203, and 207, 209) are identified, extracted from the video recording of the video game, and used to define the video portions of the respective mini-games MG1, MG 2. Metadata of the portion of the video game including telemetry data and data signals is used to identify the corresponding executable code and video portion when generating the mini-games MG1, MG 2. The mini-games (MG1, MG2, etc.) generated with the metadata and video recordings are stored in the mini-game data store 142 for subsequent retrieval. The generated mini-games may also be published to a game cloud system for sharing.
Fig. 3A and 3B illustrate game contents included in a mini game. FIG. 3A illustrates options provided to a player within a portion of a video game used to generate a mini-game. For example, portions of the video game may identify paths P1, P2, and P3 that may be provided to players during the course of the game. One or more of these paths may have additional sub-paths defined in the game scene. For example, as shown in fig. 3A, path P2 may have a sub-path P2' due to the existence of a bifurcation. However, during the course of the game, the player may always follow path P2 and follow this route to overcome checkpoints, challenges, such as skipping deep brillouin, jumping across canyons, attacking and defeating one or more enemies, capturing markers, and so forth. When the player decides to generate a mini-game for the game by selecting a start point and an end point (351, 353) along path P2, for example, the generated mini-game will include executable code for presenting only path P2 defined between start point 351 and end point 353. The generated mini-games may be shared to allow the user to experience the same challenges that the player encounters during his/her game.
FIG. 3B illustrates a game path that would be included in a mini-game generated from a start point 351 and an end point 353 specified by a player during or after a game of a video game in one embodiment. The mini-game includes executable code and a video portion that encompasses a path P2 between a start point 351 and an end point 353. The other paths P1, P3 and sub path P2' are not included in the generated mini-game. The executable code of the mini-game will reveal all of the levels, challenges and actions that the player encounters along path P2 between start point 351 and end point 353 during his/her game. In some embodiments, providing access to the exact path followed by the player (i.e., overcoming certain levels, challenges, etc.) may be more important than achieving the ultimate goal involved in the mini-game. In an alternative embodiment, the in-game paths that comprise the mini-games generated from the start point 351 and the end point 353 may comprise all of the paths that are available. For example, a mini-game may include all paths P1, P2, P3, and sub-path P2' to allow a user to play a portion of the video game that includes the level, challenges, and actions between the start and end points. This may be where achieving the final goal may be more important than following the path to achieve the final goal. It should again be noted that a player may select a particular section to generate a mini-game share or may provide an entire video game share.
When a player creates a mini-game from a video game title, a code and/or pointer, reference for the created mini-game may be associated with the creating player and stored in game network user storage 130. In this way, each created mini-game may be defined by its original creator, and user metrics regarding the gameplay of the mini-game may be attributed to or linked to the original creator. Additionally, the creator information may be used to manage the mini-game when it is posted to a game cloud system, game website, or social network for sharing. The mini-game includes executable code necessary to present the function or portion of the function of the video game, the executable code for creating the content of the selected portion of the video recording. Additionally, in some embodiments, the generated mini-game inherits set parameters used by the player to allow the user to select the mini-game to play to obtain a substantially similar gameplay physical examination as the player.
The content within the portion of the record used to generate the mini-game is analyzed. Based on the analysis, the video frame that best represents the content of the mini-game is identified and associated with the mini-game as its representative image. The generated mini-game is shared with other users by posting to the game cloud system, or providing links in one or more social networks associated with the player using social connection information stored in social network data 140 for the player, or using social connection information stored in a user profile within game network user store 130. The generated mini-game having executable portions, video portions, metadata and representative images is stored in mini-game data store 142.
In addition to mini-games generated using input from the player, mini-game generation engine 122 may manage mini-games stored in mini-game data store 142. The mini-game management may include, but is not limited to, a mini-game category, a mini-game ranking based on a ranking of players generating the mini-game, interactions of other users playing the mini-game in response to the publication or sharing of the mini-game, a number of views registered for the video portion, a number of game processes registered for the mini-game.
In addition to ranking and categorizing the mini-games, the content of the mini-games may be analyzed to identify user-related data and game play parameters included therein. A metric totalizer module within game process analysis engine 124 may be used by game session manager 340 to identify user-related data and game process parameters. For example, some of the identifiable game process parameters may include a game type, a level presented, a challenge, a number of enemy objects, a type of map presented, game options provided, game awards/awards that may be provided at particular points/levels, and so forth, and the user-related parameters may include the challenge encountered by the player, the level, the type and number of events, the number of times the player has overcome the challenge or level, the amount of time the player has spent overcoming the challenge or level, the number of game points or awards won by the player. These user-related data and gameplay parameters are stored as part of the metadata information within the mini-game data store 142 and are used to present the relevant information to the user during the gameplay of the mini-game.
After the mini-game is created, the mini-game may be posted to a game cloud system or to a social network via social network manager 370 in order to enable sharing with one or more social net friends of the player, or other users sharing similar interests with the player, or other general users, in response to a request for sharing received from the player. Alternatively, the mini-game created may be published to a web page in a gaming network maintained by game cloud system 10 for sharing with a player's gamenet or acquaintance or other user. In one example, in response to a sharing request received by the game session manager 340, the game session manager 340 may instruct the mini-game generation engine 122 to obtain information related to the mini-game from the mini-game data store 142 and provide the information to the social network manager 370. Game session manager 340 may then instruct or signal social network manager 370 to provide information as posts or links within social media feeds, streams, etc. at one or more social media provider websites 380 such that the mini-game may be accessed using the links/posts, the video portion viewed by the social network user, and/or the executable portion used in order to play the mini-game.
When a user wishes to view or interact with a mini-game provided in game cloud system 10, the user may send an access request to game cloud system 10 to request access to the mini-game. In some implementations, user authentication may be required to access the mini-game. In other implementations, the mini-game may be accessible without user authentication and any user is allowed access to the mini-game. In implementations requiring user authentication, the user may be verified by the user processor 112 before providing a range for the mini-game. The verified user information may be updated to the user's existing user profile stored in gaming network user store 130 or used to generate the user profile for the user. Additionally, game related parameters of the mini-game are updated in the video data store 138 to reflect the user's access to the mini-game.
The user access request is received at the user access logic 350 through the network interface 360. The user access logic 350 may interact with the user processor 112 through the gaming session manager 340 to authenticate the user and/or verify the request. In response to receiving an access request from the user access logic 350, the gaming session manager 340 initiates a gaming session for the user and continues user authentication by interacting with the user processor 112. The user processor 112 authenticates the user using user account information obtained from the gaming network user store 130, which stores user profile information for a plurality of users authorized to access video games and mini-games provided at the gaming cloud system 10. Alternatively, the user processor 112 may simply check the request to ensure that it is a valid request and is directed to content hosted or provided within the gaming cloud system. Upon authenticating the user and/or verifying the request, the user's user profile information stored in the gaming network user store 130 is updated with the access request, and the user is provided access to the mini-game identified in the request.
The user may select an option to view or play a mini-game generated and shared by the player. When the user selects a mini-game to view, the game session manager 340 interacts with the mini-game generation engine 122 to retrieve the mini-game video from the mini-game data store 142 and forwards the video record of the selected mini-game as a data stream through the network interface 360 to the game client 100 for presentation on a major portion of the display screen 105 of the game client 100. In some implementations, the video portion may be formatted at the game cloud system 10 into a format suitable for presentation at a major portion of the display screen 105 of the game client 100 prior to transmission to the game client 100.
When a user selects a mini-game for play, an instance of executable code associated with the mini-game is executed by the game session manager 340 at the game server 300, and the game process is provided to the game client 100 for presentation on a major portion of the display screen 105. It should be noted that the main portion may be less than the entire portion of the display screen. The game session manager 340 interacts with the mini-game generation engine 122 to obtain executable code associated with the mini-game from the mini-game data store 142 and instructs the game execution engine 116 to execute an instance of the executable code of the mini-game. The executable code of the mini-game allows the user to play the game. The user input provided at the game client 100 is used to influence the outcome of the mini-game executed on the game server 300.
When user input is received and the outcome of the mini-game is adjusted, game session manager 340, in conjunction with game play analysis engine 124, analyzes the game play of the user's mini-game in substantially real-time. As part of this analysis, a metric totalizer module within gameplay analysis engine 124 identifies gameplay parameters (e.g., level, challenge, route options, events, etc.) for the mini-game and determines user attributes (e.g., time spent completing the level or challenge, number of attempts to complete the level, gameplay speed, etc.) for the user. The actions and interactions provided by the user at the user interface 110 during the game are used to calculate the user's game score (e.g., game points, game prizes, etc.), and so forth.
In addition to instantiating executable portions of the mini-game and providing game processes for presentation at a main portion of a game screen associated with the game client 100, the game session manager 340 may interact with the mini-game generation engine 122 to obtain video portions of the mini-game from the mini-game data store 142. The video portion of the mini-game is then provided to the game client 100 for presentation in a second portion of the display screen 105 at the same time as the gameplay of the mini-game is presented in the main portion of the display screen 105. The video portion of the mini-game includes game play details of the player who generated the mini-game. The game session manager 340 provides video of the mini-game to the game client 100 as a data stream through the network interface 360. The second portion of the display screen 105 is less than the entire portion of the display screen. In some implementations, the second portion may be smaller than the main portion. The simultaneous presentation of the video portion of the mini-game in the second portion will allow the user to view and, in some embodiments, follow the gamer's gameplay during the gameplay of the mini-game.
The game session manager 340 may incorporate the game play analysis engine 124 to analyze the video recording of the player to be presented in the second portion to identify the user video of the player. During the gameplay of the user's mini-game, game parameters, user attributes and calculated game scores identified by gameplay analysis engine 124 associated with the mini-game, the user and/or the player are returned to game client 100 for presentation in the main or second portion of display screen 105 as gameplay statistics.
FIG. 5 shows an example embodiment in which user and/or player attributes are provided for presentation on different portions of the display screen 105 in one embodiment. As already discussed, the display screen 105 associated with the game client 100 includes a main portion 105A and a second portion 105B. Although the second portion 105B is shown within the main portion 105A, it should be noted that other variations may be employed, including presenting the second portion 105B outside and below the main portion 105A in the display screen 105, and so forth. The main portion 105A is smaller than the entire portion of the display screen 105. The second portion 105B is defined as less than the entire portion of the display screen 105 and, in some implementations, may be less than the main portion 105A. The main portion 105A is used to present the gameplay of the mini-game selected by the user. In some implementations, the second portion 105B is used to present a prerecorded video of the mini-game that captures the gameplay of the portion of the player's video game that is included in the mini-game. In other implementations, the second portion 105B is used to present a prerecorded video of the mini-game that captures the game play of the user of the mini-game. For example, a mini-game may be associated with one or more players and/or video game records of users. In such implementations, the user currently playing the mini-game may be provided several options to select a pre-recorded video of the player or another user for presentation in the second portion, and such options may be provided when the user selects the mini-game for play.
The user's game input during the game is used to determine user attributes, and information messages relating to the user attributes are generated. These information messages may relate to the user's current game statistics (i.e., the user's live statistics), which may be presented in a separate window 105C within the main portion 105A of the display screen as an information overlay. Similarly, the player attributes may be determined from telemetry data provided within metadata associated with the record of the mini-game or presented within a separate window 105D, or as an overlay within the second portion 105B. For example, a player's actions to overcome a level, fight an enemy, and the like may be identified in a pre-recorded video of a mini-game. The information messages relating to player actions may be determined and presented as an overlay in a separate window 105D within the second portion 105B, as a pre-recorded video of an event or level is presented in the second portion 105B. In addition, the game parameters may be determined and presented as an information overlay in a separate window at the main portion 105A or the second portion 105B. For example, upcoming events, challenges, and levels during the course of a game may be determined and presented in separate windows on the main portion 105A of the display screen. When telemetry data captured within the metadata of the video recording provides sufficient detail of the player's gameplay, it is easier to identify upcoming events, levels, etc. within the mini-game by analyzing the pre-recorded video of the mini-game. The overlay may exhibit a short period of time and gradually fade out to provide a clean view of the game play presented in the primary portion and the video recording presented in the secondary portion. The information message overlay provides the user with sufficient details of activities, events, challenges that have occurred or will occur during the course of the game.
Referring back to FIG. 1, the user may progress at the same speed as the player, at a slow speed, or at a fast speed, depending on the user's technology, experience, and understanding with respect to the mini-game. The game session manager 340 can intelligently sense the rate of progress of the user's gameplay and automatically adjust the speed of the player's recorded video presented in the second portion so that the game scenes presented in the second portion match the game scenes of the gameplay of the mini-game presented in the main portion. To determine when to dynamically adjust the video, in some implementations, the game session manager 340 uses the metadata and makes a time comparison to the gamer's gameplay presented in the second portion to identify progress made by the user in the gameplay of the mini-game. For example, user input provided by a user at the game client 100 during the course of a mini-game is transmitted to the game session management 340 of the game server 300 in order to affect the outcome of the mini-game. The game session management 340 may interact with the game execution engine 116 and provide user input received from the game client 100 to allow the game execution engine 116 to adjust the results of the currently executed mini-game.
The game session management 340 then performs a comparison of the game play presented in the primary portion of the display device of the game client 100 with the game record of the player presented in the secondary portion of the display screen using the game play synchronizer 126. The gameplay synchronizer 126 interacts with the game execution engine 116 to identify video frames of the game scene of the mini-game currently being presented at the main portion. The gameplay synchronizer 126 then compares the data provided within the video frames to the video frames associated with the game scenes of the player's video currently presented in the second portion to determine whether the player's video must be dynamically adjusted to match the game scenes of the player's video with the user's game scenes. For example, the gameplay synchronizer 126 may interact with the gameplay code store 136 to determine whether the context of the gameplay scene from the player's gameplay record overtakes the current gameplay presented in the main portion or thereafter. Based on the comparison, the game process synchronizer 126 sends a signal to the game session manager 340 to direct the game session manager to advance the video frame currently being streamed to the game client 100, rewind the video frame, slow down the presentation of the video frame, or pause the video frame to allow the game process to match the video scene of the video recording. The game session manager 340 and game progress synchronizer 126 may be able to perform this comparison using metadata associated with the mini-game.
Fig. 4A and 4B illustrate different embodiments in which recorded game scenarios from a player are dynamically adjusted to match the game scenarios of a user's game play. FIG. 4A shows an example embodiment where a player's video frames of a video recording presented in the second portion will dynamically rewind to match the user's gameplay presented in the main portion of the display screen. As shown, at time t1, the player's video is at the game scene represented by video frame 540, and the user is at the game scene represented by video frame 535. At time t2, the player's video is at the game scene represented by video frame 981, and the user is at the game scene represented by video frame 623. This may be the case when the user is, for example, an inexperienced user and is able to progress a mini-game at a much slower pace than a player, which may be an experienced user. Accordingly, the gameplay synchronizer 126 sends a signal to the gameplay session manager 340 to dynamically rewind the player's video recording to match the game scene of the video presented in the second portion with the game scene of the user's gameplay (represented by video frame 623) presented in the main portion. In some embodiments, the comparison may be performed periodically, and in other embodiments, the comparison may be performed dynamically as the game process progresses.
In some embodiments, when the comparison identifies that the difference in video frames is within a predetermined threshold (e.g., 50 frames or 100 frames), game process synchronizer 126 may ignore the difference and not send any signal to game session manager 340. This may be the case in FIG. 4A, where at time t1, the difference in video frames between the player's video and the user's gameplay is about 5 frames. However, when the comparison identifies a significant difference, as at t2 in FIG. 4A, the gameplay synchronizer 126 sends a signal to the gameplay manager to dynamically rewind the video back to a video frame that matches the user's gameplay scene. Based on the received signals, game session manager 340 uses the associated metadata to identify video frames of the player's video recording and dynamically adjusts the video frames of the video recording to a game scene that corresponds to the game scene of the game process currently being presented in the main section. The game session manager 340 forwards the adjusted video recording to the game client 100 so that the video can be presented in the second portion 105B of the display screen 105 starting from the adjusted video frame. In some implementations, the predetermined threshold may depend on the type of mini-game being played. For example, when the mini-game involves a high intensity video game, the predetermined threshold may be higher than the predetermined threshold for a low intensity video game. In some embodiments, video frame matching may not provide the best results, as the progress of the game process may be different for different users. Thus, in these embodiments, the gameplay synchronizer 126 can match the context of the gameplay of the video game presented in the primary portion with the content of the video game record presented in the secondary portion using the information contained in the metadata. For example, a scenario may identify a certain challenge at a certain level of a video game, and metadata may be used to match a particular scene of the gameplay of the video game with a corresponding scene in a video recording.
FIG. 4B shows another implementation in which a video frame of a game play overtakes a recording. For example, at time t1, both the player's recording of the presentation in the second portion and the user's video frame from the current gameplay presented in the main portion are shown in the game scene represented by video frame 540. At time t2, the player's recording is in the game scene represented by video frame 981, and the user's gameplay is in the game scene represented by video frame 980. However, the difference between the two video frames (the player's recording and the user's gameplay) is below a predetermined threshold (e.g., 50 video frames). Accordingly, the game process analysis engine 124 ignores this difference and does not send any signal to the game session manager 340. The game play and video recording continues to be presented in the respective portions (105A, 105B, respectively) of the display screen. At time t3, the player's recording is shown in the game scene represented by video frame 1203, while the user's gameplay is shown in the game scene represented by video frame 1350. The gameplay synchronizer 126 identifies the difference in the video frames at time t3 and determines whether this difference is above or below a predetermined threshold.
In the embodiment shown in fig. 4B, it is determined that this difference is above a predetermined threshold (e.g., 50 video frames). Thus, the gameplay synchronizer 126 sends a signal to the gameplay manager 340 to automatically advance the recorded video frames to match the video frames of the gameplay scene of the gameplay (i.e., 1350), so that when the player's video is presented in the second portion, the gameplay scene presented in the second portion matches the gameplay scene of the user's gameplay presented in the main portion of the display screen of the game client 100, and it continues to match from this time onwards. Metadata associated with the mini-game is used to identify video frames of the game scene that match the user's game play, and perform automatic adjustment of the video presented in the second portion. As mentioned previously, matching of video frames is only one way, and alternative ways of matching game scenes using the context of the gameplay content may also be employed. The game session manager 340 may perform periodic checks and automatic adjustments to ensure that the recorded game scenarios from the player match the game scenarios of the game play. Thus, the game session manager 340 intelligently performs the synchronization of the player's recording with the time shift of the user's gameplay by means of other modules of the game synchronizer application executing in the game processor 301, enabling the user to continue to view the player's gameplay while playing the mini-game.
In some implementations, as part of adjusting the video recording during the game play of the mini-game, the presentation speed of the video frames in the video recording may be dynamically adjusted to be presented slowly or quickly, depending on whether the user's game play overtakes or lags behind the player's recording of the presentation in the second portion of the game client's display screen. In these implementations, the game process synchronizer 126 can signal the game session manager 340 to reduce or increase the number of video frames to be streamed to the game client 100.
In other embodiments, when the user's gameplay is slow, the player's recorded presentation may pause to allow the user's gameplay to catch up with the player's recorded gameplay scenario at the time of the pause, and when the user's gameplay has caught up with this gameplay scenario, the player's recorded presentation may continue. In some embodiments, continuation of the player's recording may also include decreasing the presentation speed to match the rhythm of the user's gameplay. Thus, the player's record is dynamically adjusted to allow the user to follow the video recording while completing the challenges or events or tasks defined in the mini-game, based on the game skill, familiarity, and understanding of each user with respect to the mini-game.
In some embodiments, during the game play of the mini-game, the user may perform an input sequence that may cause the user to traverse a different path during the game than the path presented in the second portion. Thus, the game scenario of the game process may not match the player's recorded game scenario. In such embodiments, the player's recording may be paused, and the game session manager 340 may wait until the game scenario of the user's game play matches the game scenario in the player's recording, or scenario matching may be performed prior to presentation of the player's recording. The gaming session manager 340 may periodically perform a check to determine if a match has occurred between the user's gameplay and the player's record. After the game session manager 340 detects a match of the user's gameplay with the player's records, the game session manager may continue to stream the player's records from that point onwards to the second portion 105B of the display screen 105.
In some embodiments, the user may be provided with several options in the second portion of the display screen to specify different entry points at which to begin the game play of the mini-game. For example, several options may be provided in the second portion of the display screen during the game play of the mini-game to allow the user to select an entry point at which the user wishes to start the game play of the mini-game. The selected entry point may correspond to a different segment of the mini-game than the currently presented segment. For example, the user may have started his gameplay of a mini-game from the beginning of the mini-game. During the game of the mini-game, the user may decide that he wants to play different segments of the mini-game. The user may use several options provided in the second portion to specify an entry point within the player's record presented in the second portion of the display screen. The selected entry points correspond to different segments of the mini-game that the user wishes to start his game play. The gameplay of the mini-game continues from the selected entry point. The game process is streamed for presentation on a main portion of the display screen and a video recording of the mini-game starting from the selected entry point is provided for presentation on a second portion of the display screen.
In an alternative embodiment, the user may wish to replay a certain segment of the mini-game in order to try and see if he can make himself perform better in this segment. In such embodiments, the user may use a record of the gameplay of his previous mini-game and use several options to select the starting point of the segment he wishes to replay. In this embodiment, the user's previous game play record is presented in the second section and the user is provided with several options to select a segment from within the record.
The game session manager 340 receives the user selection and may dynamically fast forward or rewind back to the specified segment in the mini-game and start the game process from this segment. To identify a particular segment defined by a user selection, game session manager 340 may use game code mapping engine 118 to identify executable code of the mini-game that is associated with the identified segment defined by the entry point. Upon identification, game session manager 340 may send signaling to game execution engine 116 to execute the executable instructions of the mini-game from that point forward to allow the user to play the selected segment of the mini-game. Meanwhile, the game session manager 340 may interact with the game process synchronizer 126 to adjust the player's video recording to begin at the designated entry point and transmit video frames to the game client beginning at the designated entry point. If the user uses his own record of previous game play, the second part may present a record of his previous game play starting from a segment defined by the selection of the user's entry point. Video frames from the adjusted video recording are presented in the second portion of the display screen and are dynamically adjusted to match the segments of the game play presented in the main portion.
Fig. 6A-6C illustrate renditions of a game client in one embodiment of the invention, where a user is provided the option to select different segments of a mini-game for play. Fig. 6A shows the size of the second portion 105B before the user selects the "select fragment" option presented on the second portion 105B. When the user selects the select clip option to define a different entry point in the mini-game at which to start the game, the game session manager 340 may detect the user selecting the option at the second portion 105B and, in response, provide a signal to dynamically enlarge the second portion 105B of the display screen 105 to substantially cover the main portion 105A, as shown in FIG. 6B. In addition, the game session manager 340 may resize the presentation aspect ratio of the video recording to fit within the enlarged second portion. The resized video recording of the player is forwarded to the game client 100 for presentation. In addition to the player's video recording, one or more controls may be provided to select an entry point for a game process that restarts the mini-game. In some embodiments, the control allows the user to fast forward or rewind the video to a desired entry point. Alternatively, the control allows the user to move the pointer forward or backward to select a segment. In the embodiment shown in fig. 6B, the indicator moves back from position 105F to position 105F', which corresponds to the start of the segment that the user desires to display. In an alternative implementation, the control may allow the user to provide a pointer to the appropriate segment. The user chooses to adjust the mini-game starting point for the user. After the user makes his selection, the second portion may return to its original size, as shown in FIG. 6C, to allow the gameplay of the mini-game to be presented in the main portion of the display screen from the selected entry point. The player's record is returned to be presented from the selected entry point. The player's record is formatted to allow it to be presented in the resized (i.e., original size) second portion.
In some implementations, when a user is playing a mini-game, attributes of the player (such as game scores, game points, and so forth) obtained or calculated from the player's gameplay can be presented in the second portion. The game score, game points, and attributes of the player may be obtained by analyzing metadata associated with the player's record. Simultaneously or separately, the user attributes may be dynamically calculated while the user is playing the mini-game and presented in a substantial portion of the display screen during the game play of the mini-game. In some embodiments, the user attributes are used to generate a text overlay for presentation in a main portion of the display screen, and the player attributes may be provided as a text overlay for presentation in a second portion of the display screen. In other embodiments, the user attributes and player attributes are presented as informational messages in separate windows, as described with reference to FIG. 5. In some embodiments, the user attributes are compared to the player attributes, and information messages related to this comparison may be presented at the main portion 105A and/or the second portion 105B of the display screen 105. For example, the results of the comparison of the user attributes to the player attributes are generated at different times during the course of the game of the mini-game and are provided as overlays at the primary portion 105A and/or the secondary portion 105B to indicate similarities or differences in the attributes of the user and the player.
Figures 7A-7C illustrate example information messages that may be presented to a user during a game in some embodiments of the invention. The information messages provided at the game client 100 may correspond to game parameters, user attributes and game scores identified for the user or for the player of the video recording of the mini-game presented in the second portion 105B during the course of the game. In some embodiments, different portions of the display screen 105 may be used to present different information messages. For example, a main portion 105A of the display screen 105 is used to present the gameplay, a second portion 105B is used to present a prerecorded video of the player synchronized with the gameplay presented in the main portion 105A, a separate window 105C within the main portion 105A is used to present attributes of the user playing the mini-game, and a separate window 105D within the second portion 105B is used to present player-related attributes. During the course of the game, the user's game action for a particular event presented in the main portion 105 of the display screen may be compared to the player's corresponding game action. When the user's game action does not match the player's game action, or in response to the occurrence of an event, an information message indicating the action taken by the player may be presented as a scenario overlay 105E, as shown in FIG. 7A. Such overlays are presented when the primary portion 105 presents a particular event within the gameplay and the secondary portion 105B presents a prerecorded video of the player that is synchronized with the gameplay of the user. In another example, the game score of a user playing a mini game may be compared to a score achieved by the original player using the full game and/or other users playing or having played the mini game.
In an alternative implementation, as shown in FIG. 7B, the information message may provide information of an event or challenge that will come in the course of the game. In such implementations, metadata associated with the player's record can be used to identify next encountered game related parameters, such as level, challenge, event, etc., and an information message related to the parameters can be generated and presented to the user at the main portion 105A as an information overlay 105E to alert or inform the user of the next content for the game. For example, the information message may include "move left, avoid rock rolling off a hill," or "find a fire dragon," etc. Such information may help alert users so that users can adjust their gaming strategy to overcome challenges and the like.
Figure 7C illustrates an embodiment in which user attributes relating to a particular event, level or challenge may be compared to player attributes and/or other user attributes of concurrently playing a mini-game or having played a mini-game. When the user encounters or completes an event, level, or challenge during the course of the game, the results of the comparison may be provided to the game client 100 as an information message for presentation at the main portion 105A of the display screen 105. For example, when more than one user plays a mini-game simultaneously or sequentially, the game progress of each user is analyzed and the game parameters, user attributes and game scores of each user may be compared with the game parameters, user attributes and game scores of other users and players. The results of the comparison may be presented to one or more users currently playing the gameplay of the mini-game. In one implementation, the user attributes may be presented in a leaderboard format 105F to identify each user's game score or points during the game of the mini-game for a particular segment. Different formats may be employed to present the comparison results in a leaderboard. For example, the name or identifier of the current user may be highlighted to allow the user to identify his location within the leaderboard. Thus, the data provided in the metadata associated with the mini-game may be used to identify and provide various user attributes, game related parameters, results of comparisons among friends, users and players, among users.
These information messages are used to allow the user to know how they are overlaid on other users, what events occurred in the player's record, which events or challenges occurred in the future, and a comparison of the current user's performance to the player's or user's performance. Additionally, these game parameters, user attributes, and user game scores may be stored in the mini-game data store 142 and/or the gaming network user store 130 and subsequently used for comparison with other users.
It should be noted that the generated mini-game may further be shared by the user with other users through one or more social networks published to the game cloud system 10 or to the user. The users identified for sharing may be friends or social contacts identified from one or more social networks of the users, users with whom the current user interacts with the game cloud system, users sharing similar points of relevance to the current user, players who generate a mini-game, or general users. When a user selects a mini-game for game play, an executable code instance is executed on the game cloud system, and a game process is available to the user on the user game client. The player's recording associated with the mini-game is streamed to the game client 100 in real-time. The player's records may be dynamically adjusted to intelligently perform time-shift synchronization to match the user's gameplay by using metadata available for the mini-game. The user's game play may be recorded to generate a second video associated with the mini-game. The mini-game with the second video may be shared with other users identified by the current user or with all users.
Various embodiments allow a player to play a video game. The player's game play is recorded. The game play record is telemetered from the game and the data signal is provided in the game by, for example, the game developer. Telemetry data provides details of where the player stands at the time of gameplay video recording, and data signals associated with particular portions of the game to be recorded may identify portions of the data stream that are in engagement with a "final monster" (i.e., metadata), indicating that the portion of the gameplay video to be recorded is in the course of a final monster engagement.
With "smart" video, it is very likely that events that occur from time to time in the gameplay video will be determined. When a user selects a video game or mini-game generated from a video game for play, the corresponding gameplay video of the player's earlier presentation is provided for user observation during the user's gameplay. In some embodiments, the gameplay video for the player is provided in a picture-in-picture format. Thus, when the user is fighting the same monster in the game play video, the user may spend a longer time conquering/defeating/killing the monster. The system senses the delay and automatically pauses the gameplay video to be presented and awaits the user to catch up. When the system senses that the user is advancing, the system automatically continues the gameplay video for the player. If, on the other hand, the user is to advance faster than the game play video, the system senses the speed at which the user is advancing, or automatically fast advances the game play video to catch up with the user. Various embodiments also use telemetry to perform comparisons of the user's statistics to determine how each user performs compared to other users, and such comparisons may be made at some refined detail, if necessary, by making comparisons from time to time. The system will also enable playback and rewinding of the actual game play. The system can recreate the actual game play so as to allow the user to review at any time by fast forwarding or rewinding through the actual game play.
Various embodiments provide several ways to intelligently synchronize a player's game record with the user's gameplay to give the user the ability to view the player's gameplay during the user's gameplay. Providing access to mini-games allows users to preview video games in order to generate interest in the video games, which can lead to potential purchases. Allowing users to view a player's gameplay enhances user interest as it allows them to become familiar with the controls and logic of the video game, thereby increasing user interest and resulting in a satisfying gaming experience. Embodiments may be used to bring inexperienced users to their attention to different games by allowing them to view the course of an experienced player's game while at the same time getting them increasingly familiar with game controls or game logic. Various embodiments may be used by game developers to introduce updated games in a quick and efficient manner. Other advantages will be apparent to those skilled in the art.
Fig. 8A is a flow diagram illustrating an exemplary method for managing the execution and sharing of a video game through a game cloud system, according to one embodiment of the invention. The method begins at operation 610, where a selection of a video game to play is detected at a cloud server. In response to the selection, at the cloud server, the video game is executed for game play, as shown in operation 620. Execution of the video game causes a game process to be provided to the game client for presentation on a major portion of a display screen associated with the game client. In addition to providing the game process, the cloud server will provide the prerecorded video associated with the video game to the game client for presentation in the second portion of the display screen of the game client, as shown in operation 630. The pre-recorded video provided to the game client is dynamically synchronized with the gameplay of the video game currently being presented on the main portion to match the gameplay scenes of the pre-recorded video with the gameplay scenes of the gameplay presented in the main portion. Dynamic synchronization may include automatically advancing or rewinding video frames of the prerecorded video to match game scenes presented in the second portion with game scenes of the game play presented in the main portion. Alternatively, the synchronizing may include adjusting a speed of the video frames provided in the second portion to match a game speed of the user's gameplay.
FIG. 8B illustrates an alternative method of managing the execution and sharing of a video game in another embodiment of the present invention. The method begins at operation 710, where a selection of a video game to play is detected at a cloud server. In response to the selection, at the cloud server, the video game is executed for playing, as shown in operation 720. Execution of the video game causes a game process to be provided to the game client for presentation on a major portion of a display screen associated with the game client. In addition to providing the game process, the cloud server will provide the prerecorded video associated with the video game to the game client for presentation in the second portion of the display screen of the game client, as shown in operation 730. The pre-recorded video provided to the game client is dynamically synchronized with the gameplay of the video game currently being presented on the main portion to match the game scenes of the pre-recorded video with the gameplay presented in the main portion.
A second video is generated from the game process, as shown in operation 740. The second video includes all actions provided by the user during the game, game parameters, and metadata generated during the game of the video game. The second video is also associated with the video game. The second video may be used to restart the gameplay of the video game or metadata provided in the second video may be used to compare the attributes of the user with other users or players of the video game.
Fig. 9A is a flow diagram illustrating a method for managing execution and sharing of a video game through a game cloud system, according to one embodiment of the invention. The method begins at operation 810, where selection of a video game for play is detected at a cloud server. In response to the selection, at the cloud server, the video game is executed for game play, as shown in operation 820. Execution of the video game causes frames of game data to be streamed to the game client for presentation on a primary portion of a display screen associated with the game client, and a pre-recorded video associated with the video game is provided to the game client for presentation in a second portion of the display screen of the game client. The presentation of the prerecorded video is adjusted such that the game scenes presented in the second portion match the game scenes of the game play presented in the main portion. An information overlay is provided for presentation in a main portion of a display screen, as shown in operation 830. The informational overlay provides detailed messages related to events in the prerecorded video that correspond to events in the game play that are currently presented in the main portion of the display screen. Details for providing the information overlay are obtained from metadata associated with the video game.
FIG. 9B is a flow diagram illustrating a method for managing execution and sharing of a mini-game through a game cloud system, according to an alternative embodiment of the present invention. The method begins at operation 910, where selection of a mini-game for playing is detected at a cloud server. In response to the selection, at the game cloud system, executable code of the mini-game is executed to play the game, as shown in operation 920. Execution of the mini-game causes a game process to be provided to the game client for presentation on a primary portion of a display screen associated with the game client, and a pre-recorded video associated with the mini-game is provided to the game client for presentation in a second portion of the display screen of the game client. The presentation of the prerecorded video is adjusted such that the game scenes presented in the second portion match the game scenes of the game play presented in the main portion.
An information overlay is provided for presentation in a main portion of the display screen, as shown in operation 930. The information overlay provides detailed messages regarding events currently occurring in the prerecorded video currently presented in the second portion of the display screen. Details for providing information coverage are obtained from metadata associated with the mini-game. In some implementations, the information overlay can also provide details of events scheduled to occur some time after or in the future of the event currently occurring, where information for subsequent events is obtained from metadata provided within the prerecorded video. Information relating to subsequent events may be provided to allow a user playing the game to determine which challenges were present in the front and to policy their game play accordingly.
Fig. 10 illustrates an example head mounted display 100 for use as a game client according to one embodiment of this disclosure. The head mounted display 100 includes a processor 1300 for executing program instructions. The memory 1302 is provided for storage purposes and may include both volatile and non-volatile memory. A display 1304 is included to provide a visual interface viewable by a user. A battery 1306 is provided as a power source for the head mounted display 100. The motion detection module 1308 may include any of a variety of motion sensing hardware, such as magnetometer 1310, accelerometer 1312, and gyroscope 1314.
An accelerometer is a device for measuring acceleration and reaction forces due to gravity. Single axis models and multi-axis models may be provided to detect the magnitude and direction of acceleration in different directions. Accelerometers are used to sense tilt, vibration and shock. In one embodiment, three accelerometers 1312 are used to provide the direction of gravity, which gives an absolute reference for two angles (world pitch and world roll).
The magnetometer measures the strength and direction of a magnetic field in the vicinity of the head mounted display. In one embodiment, three magnetometers 1310 are used in the head mounted display, ensuring an absolute reference to the free space yaw angle. In one embodiment, the magnetometer is designed to span an earth magnetic field of ± 80 microtesla. Magnetometers are affected by metal and provide a monotonic measure of yaw relative to the actual yaw. The magnetic field may be distorted by metal in the environment, which may cause the yaw measurement to be distorted. This distortion can be calibrated using information from other sensors, such as gyroscopes or cameras, if necessary. In one embodiment, accelerometer 1312 is used with magnetometer 1310 to adjust the tilt and azimuth of head mounted display 100.
In some embodiments, the magnetometer of the head mounted display is configured to read out during the time when the electromagnet in other nearby devices fails.
A gyroscope is a device for measuring or obtaining an orientation based on the principle of angular momentum. In one embodiment, three gyroscopes 1314 provide information about movement across the respective axes (x, y, and z) based on inertial sensing. The gyroscope helps detect fast rotations. However, in the absence of an absolute reference, the gyroscope may drift over time. This requires that the gyroscope be periodically reset, which can be done using other available information, such as position and/or orientation determined based on visual tracking of objects, accelerometers, magnetometers, and the like.
A camera 1316 is provided to capture images and image streams of the desired environment. More than one camera may be included within the head mounted display 100, including a camera facing backwards (away from the user when the user is viewing the display content of the head mounted display 100) and a camera facing forwards (facing the user when the user is viewing the display content of the head mounted display 100). In addition, a depth camera 1318 may be included in the head mounted display 100 in order to sense depth information of the object in the real environment.
The head mounted display 100 includes speakers 1320 for providing audio output. Additionally, a microphone 1322 may be included for capturing audio from the display environment, including sound from the surrounding environment, speech uttered by the user, and so forth. Head mounted display 100 includes a haptic feedback module 1324 for providing haptic feedback to a user. In one embodiment, haptic feedback module 1324 is capable of causing movement and/or vibration of head mounted display 100 in order to provide haptic feedback to a user.
The LED 1326 is provided as a visual indicator of the status of the head mounted display 100. For example, an LED may indicate an amount of power, a power-on condition, and so forth. A card reader 1328 is provided to enable the head mounted display 100 to read information from and write information to a memory card. USB interface 1330 is included as an example of an interface for enabling connection to peripheral devices or to other devices, such as other portable devices, computers, etc. In various implementations of the head mounted display 100, any of a variety of interfaces may be included to enable the heel-size connectivity of the head mounted display 100.
A WiFi module 1332 is included to enable connectivity to the internet or a local area network via wireless networking technology. In addition, the head mounted display 100 includes a bluetooth module 1334 for enabling wireless connection to other devices. Communication link 1336 may also be included for enabling connections to other devices. In one embodiment, communication link 1336 utilizes infrared transmission for wireless transmission. In other embodiments, communication link 1336 may utilize any of a variety of wireless or wired transmission protocols to communicate with other devices.
Input buttons/sensors 1338 are included to provide an input interface for the user. Any of a variety of input interfaces may be included, such as buttons, touch pads, joysticks, trackballs, and the like. An ultrasound communication module 1340 may be included in the head mounted display 100 to facilitate communication with other devices via ultrasound technology.
A biosensor 1342 is included to enable detection of physiological data from the user. In one embodiment, the biosensor 1342 includes one or more dry electrodes for detecting bioelectrical signals of the user through the skin of the user.
The video input 1344 is configured to receive a video signal from a host processing computer (e.g., a host gaming console) for presentation on the HMD. In some embodiments, the video input is an HDMI input
It should be appreciated that a given video game may evolve for a particular platform and a particular associated control device, although input from different game clients or input devices may be used to access and execute. For example, a video game may have been developed for a game console and its associated controllers, and a user may access a cloud-based version of the video game from a game client (such as a personal computer utilizing a keyboard or mouse). In this scenario, the input parameters of the game client and associated controller are configured to determine a mapping of inputs to corresponding game inputs in order to affect the outcome of the video game and the format of the video recording the video game to be presented at the game client.
In another example, a user may access the cloud gaming system via a tablet computing device, a touchscreen smartphone, or other touchscreen-driven device. In this case, the game client and controller device are integrated together in the same device, with input provided by means of detected touch screen input/gestures. For such a game client, the input parameter configuration may define a particular touch screen input that corresponds to the game input for the mini-game. For example, buttons, directional pads, or other types of input elements may be displayed or overlaid during the course of a game of chance to indicate locations on the touch screen that a user may touch to generate game inputs. Gestures (such as swiping in a particular direction or particular touch movements) may also be detected as game inputs. In one embodiment, instruction may be provided to the user indicating how to provide input via the touch screen to play the game (e.g., prior to starting the gameplay of the video game) in order to adapt the user to the operation of the controls on the touch screen.
In some embodiments, the game client may serve as a connection point for the controller device. That is, the controller device communicates with the game client via a wireless or wired connection to transmit input from the controller device to the client device. The game client may then process these inputs in turn, and then transmit the input data to the game server via the network. (e.g., accessed via a local networking device, such as a router). However, in other embodiments, the controller itself may be a networked device, with the ability to communicate input directly to the game server via the network, without first communicating such input through the game client. For example, the controller may be connected to a local networked device (such as the router mentioned above) in order to send and receive data to and from the game server. Thus, when a game client may still need to receive video input from a cloud-based video game and present it on a local display, input latency may be reduced by allowing the controller to send the input directly to the cloud game server over the network, bypassing the client device.
In one embodiment, the networked controller and game client may be configured to send certain types of input directly from the controller to the game server, and other types of input via the game client. For example, input whose detection does not depend on any additional hardware or processing separate from the controller itself may be sent directly from the controller to the game server via the network, thereby bypassing the game client. Such inputs may include button inputs, joystick inputs, embedded transport detection inputs (e.g., accelerometers, magnetometers, gyroscopes), and so forth. However, input using additional hardware or requiring processing by the game client may be sent to the game server by the game client. These may include video or audio captured from the game environment, which may be processed by the game client before it is sent to the game server. Additionally, input from the motion detection hardware of the controller may be processed by the game client in conjunction with the captured video to detect the position and motion of the controller, which will then be communicated by the game client to the game server and used to generate telemetry of metadata associated with the mini-game. It should be understood that a controller device according to various embodiments may also receive data (e.g., feedback data) from a game client or directly from a game server.
Embodiments of the invention may be practiced with various computer system configurations, including hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a wired or wireless network.
It should be noted that operations in various embodiments may require multiple servers and/or execution platforms in order to enable fast access to the database and presentation of content to a user located at a remote location. The game cloud system may perform the compression operation using any number of compression techniques. The compression technique may use a standard encoder that would allow a standard decoder to be implemented on the game client to access and play the video game. Management of video games and distribution may include multiple data centers, orientation servers, quality of service testers, orientation and redirection of low latency data centers, and management of play-even demonstrations. It will also be appreciated that these operations and tasks will utilize a special purpose computer designed for streaming and low latency as the video game is executed remotely and for delivering appropriate content to the game client.
With the above embodiments in mind, it should be understood that the invention may employ various computer-implemented operations involving data stored in computer systems. The operations are those requiring physical manipulations of physical quantities. Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to an apparatus or device for performing these operations. The apparatus may be specially constructed for the required purposes, or it may be a general purpose computer selectively activated or configured by computer instructions stored in the computer. In particular, various general-purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data, which can thereafter be read by a computer system. Examples of computer readable media include hard drives, Network Attached Storage (NAS), read-only memory, random-access memory, CD-ROMs, CD-R, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. The computer readable medium can comprise a tangible computer readable medium, such computer readable medium distributed over a network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
Although the method operations are described in a particular order, it should be understood that other ancillary operations may be performed between the operations, or the operations may be adjusted such that they occur at slightly different times, or they may be distributed in the system, which may allow the processing operations to occur at various time intervals associated with the processing, so long as the processing of the overlapping operations is performed in the desired manner.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.

Claims (41)

1. A method of sharing gameplay of a video game through a game cloud system, the method comprising:
at the game cloud system, detecting a selection of the video game for play, wherein the video game is associated with a prerecorded video of a player's previous game session;
at the game cloud system, executing the video game in response to the selection, the executing causing the game process to be provided to a game client for presentation in a main portion of a display screen of the game client; and
providing the pre-recorded video associated with the video game for presentation in a second portion of the display screen and the gameplay of the video game for presentation in the main portion of the display screen, the pre-recorded video presented in the second portion being dynamically synchronized with the gameplay of the video game presented in the main portion such that gameplay of the gameplay presented in the main portion of the display screen follows gameplay of the pre-recorded video presented in the second portion,
wherein providing the pre-recorded video and dynamic synchronization are handled by the game cloud system without user input,
wherein the dynamic synchronization further comprises:
pausing the pre-recorded video presented in the second portion when the game scene presented in the main portion does not follow the game scene presented by the pre-recorded video, and
continuing to present the pre-recorded video upon detecting that the game scene presented in the main portion follows the game scene of the pre-recorded video.
2. The method of claim 1, wherein dynamically synchronizing further comprises:
adjusting a presentation speed of video frames of the pre-recorded video to match a speed of a game play, the adjustment of the presentation speed causing the game scenes of the game play to follow the game scenes of the pre-recorded video,
wherein adjusting the presentation speed is performed using metadata generated from the prerecorded video associated with the video game.
3. The method of claim 1, wherein the following of the game scene of the pre-recorded video is determined using metadata generated during the game of the video game and metadata from the acquisition of the pre-recorded video.
4. The method of claim 3, wherein continuing to present further comprises: automatically advancing or rewinding the pre-recorded video provided for presentation in the second portion so as to cause the game scenes of the game play to follow the game scenes of the pre-recorded video.
5. The method of claim 1, wherein the gameplay of the video game causes generation of a second video, the second video being associated with the video game, the second video being used to restart the gameplay.
6. The method of claim 1, further comprising providing options to identify an entry point for restarting the game process of the video game, the entry point indicating a location within the prerecorded video of the video game other than a starting location, the entry point for identifying a portion of executable code in the video game to be executed to restart the game process of the video game.
7. The method of claim 6, wherein the entry point is selected from the prerecorded video associated with the video game.
8. The method of claim 6, wherein the entry point is selected from a video presented in the second portion of the display screen, the video being one of the prerecorded video or a second video generated during play of the video game.
9. A method of sharing gameplay of a video game through a game cloud system, the method comprising:
at the game cloud system, detecting a selection of a mini-game for playing, wherein the mini-game is associated with executable code for implementing a game process for a portion of the video game contained within the mini-game and a pre-recorded video of a previous game session for the portion of the video game, the mini-game being shared in the game cloud system;
at the game cloud system, executing the executable code of the mini-game in response to the selection, the executing causing the game process to be provided to a game client for presentation in a main portion of a display screen of the game client; and
providing the pre-recorded video associated with the mini-game for presentation in a second portion of the display screen and the gameplay of the mini-game for presentation in the main portion of the display screen, the pre-recorded video presented in the second portion being dynamically synchronized with the gameplay of the mini-game presented in the main portion such that the gameplay scenes of the gameplay presented in the main portion follow the gameplay scenes of the pre-recorded video presented in the second portion,
wherein providing the pre-recorded video and dynamic synchronization are handled by the game cloud system without user input,
wherein dynamically synchronizing comprises advancing or rewinding video frames of the pre-recorded video presented in the second portion so as to allow the game scenes of the game play presented in the main portion to follow game scenes of the pre-recorded video presented in the second portion.
10. The method of claim 9, wherein dynamically synchronizing comprises: adjusting up or down a presentation speed of a video frame of the pre-recorded video currently presented in the second portion so as to allow the game scenes from the pre-recorded video presented in the second portion to be followed by the game scenes of the game play presented in the main portion of the display screen.
11. The method of claim 10, wherein adjusting comprises:
providing a signal to pause the pre-recorded video presented in the second portion when the game scene of the game play does not follow the game scene of the pre-recorded video; and
providing a signal to continue presentation of the pre-recorded video in the second portion upon detecting that the game scene of the game play follows the game scene of the pre-recorded video.
12. The method of claim 9, further comprising:
providing an option to select an entry point from the pre-recorded video of the mini-game currently presented in the second portion of the display screen, the entry point defining a starting position within the mini-game at which to start a gameplay of the mini-game.
13. The method of claim 12, wherein providing the option further comprises:
providing a signal to dynamically zoom in the second portion of the display screen that presents the pre-recorded video from an original size to substantially overlay the display screen and providing a control in the second portion to select the entry point from the pre-recorded video presented on the second portion of the display screen, wherein the signal causes the pre-recorded video to be automatically formatted for presentation in the zoomed in second portion; and
providing a second signal to dynamically resize the second portion to the original size upon detecting selection of the entry point, wherein the second signal causes the pre-recorded video to be automatically formatted for presentation at the resized second portion.
14. The method of claim 9, further comprising:
identifying attributes of a player associated with the pre-recorded video and game parameters of the mini-game, the attributes of the player and the game parameters of the mini-game being obtained from metadata associated with the mini-game, wherein the metadata is generated by analyzing the pre-recorded video of the game session; and
providing one of the player attributes, the game parameters, or a combination of player attributes and game parameters for presentation at the second portion of the display screen alongside the pre-recorded video.
15. The method of claim 9, further comprising:
identifying attributes of the user during a current gameplay of the mini-game, the attributes being dynamically determined based on game input provided by the user during the current gameplay; and
providing the attributes of the user for presentation in the main portion of the display screen alongside the gameplay currently being presented, the attributes providing live statistics of the user.
16. The method of claim 9, wherein providing the pre-recorded video further comprises:
formatting the prerecorded video to enable presentation of the prerecorded video in the second portion of the display screen.
17. The method of claim 9, further comprising:
detecting a plurality of user selections of the mini-game for play,
identifying attributes of the plurality of users currently playing the mini-game;
providing the attributes of each of the plurality of users for presentation in the main portion of the respective display screen of each of the plurality of users during presentation of a current gameplay of the mini-game.
18. The method recited in claim 17, wherein the attributes of the plurality of users are presented in a leaderboard format.
19. A method of sharing gameplay of a video game, the method comprising:
at a game cloud system, detecting a selection of the video game for play, wherein the video game is associated with a prerecorded video of a player's previous game session;
at the game cloud system, executing the video game in response to the selection, the executing causing the game process to be provided to a game client for presentation in a main portion of a display screen of the game client;
providing the prerecorded video associated with the video game for presentation in a second portion of the display screen while the gameplay of the video game is presented in the main portion of the display screen, the prerecorded video presented in the second portion being dynamically synchronized with the gameplay of the video game presented in the main portion such that gameplay scenes of the gameplay presented in the main portion of the display screen follow gameplay scenes of the video game presented in the second portion; and
generating a second video for the video game from a current game session, the second video including metadata relating to the gameplay, the second video being associated with the video game, wherein the metadata of the second video is used to restart the gameplay of the video game,
wherein providing the pre-recorded video and dynamic synchronization are handled by the game cloud system without user input, and
wherein dynamically synchronizing comprises dynamically adjusting a speed of video frames of the pre-recorded video presented in the second portion in accordance with a speed of the game play such that the game scenes of the game play presented in the main portion follow game scenes of the pre-recorded video in the second portion.
20. The method of claim 19, further comprising providing an option to restart the gameplay of the video game, wherein the restarting comprises:
providing the second video for presentation in the second portion of the display screen;
providing an option to select an entry point within the second video for restarting the gameplay of the video game, the entry point indicating a location within the video game other than a starting location; and
restarting the gameplay of the video game by the selected entry point, the restarting causing the gameplay to be provided for presentation in the main portion of the display screen and the second video to begin presentation in the second portion of the display screen from the selected entry point.
21. The method of claim 19, further comprising providing one or more attributes of a user playing the video game during a game, the user attributes being identified by analyzing a current game play of the video game.
22. A method of sharing gameplay of a video game through a game cloud system, the method comprising:
at the game cloud system, detecting a selection of the video game for play, wherein the video game is associated with a prerecorded video of a player's game session and metadata related to a previous game play session of the video game;
at the game cloud system, executing the video game in response to the selection, the executing causing the game process to be provided to a game client for presentation in a primary portion of a display screen of the game client and the pre-recorded video of the video game to be provided for presentation in a secondary portion of the display screen, the pre-recorded video presentation being adjusted to allow game scenes of the game process to follow game scenes of the pre-recorded video; and
providing an information overlay for presentation in the main portion of the display screen during a game, the information overlay including detailed messages related to events in the pre-recorded video, the events corresponding to events occurring during the game currently presented in the main portion of the display screen, the detailed content of the messages presented in the information overlay being obtained from the metadata associated with the pre-recorded video of the video game,
wherein providing the pre-recorded video and information overlay is provided by the game cloud system without user input.
23. The method of claim 22, wherein the metadata comprises telemetry data relating to the gaming session of the video game and data signals provided within the video game, the telemetry data comprising details of a gaming session of the video game captured in the pre-recorded video obtained by analysis.
24. The method of claim 22, wherein the informational message presented in the main portion of the display screen includes attributes of the user currently playing the video game, the attributes of the user relating to the event and being calculated in substantially real-time during game play using game input provided by the user, the identified attributes representing live statistics of the user.
25. The method of claim 24, wherein the attributes of the user obtained during a current game are updated to the metadata generated for the video game.
26. The method of claim 22, wherein providing the information overlay comprises:
identifying attributes of the player corresponding to the events that occurred during the game; and
presenting attributes of the player related to the event in the information overlay on the main portion of the display screen.
27. The method of claim 22, wherein providing the information overlay further comprises:
identifying other users who have played the video game;
comparing attributes of the player with attributes of other users corresponding to the event, the attributes of the player and the attributes of the other users obtained from the metadata associated with the video game, and
presenting a result of the comparison as the information overlay on the main portion of the display screen.
28. The method recited in claim 27, wherein the results of the attribute comparison are presented in a leaderboard format.
29. The method of claim 22, wherein an information message is provided for each event occurring during the game currently presented in the main portion of the display screen.
30. The method of claim 22, wherein an information message is provided for each event occurring in the pre-recorded video presented in the second portion of the display screen.
31. The method of claim 22, further comprising:
providing an option to select a segment within the pre-recorded video to restart the game process, the selection of the segment in the pre-recorded video identifying an entry point to start a game process, wherein the option is presented within the second portion of the display screen that presents the pre-recorded video.
32. The method of claim 31, wherein the selected segments comprise events of the video game.
33. The method of claim 31, further comprising:
providing a signal to dynamically enlarge the second portion of the display screen on which the prerecorded video is being presented to cover a substantial portion of the display screen during selection of the segment; and
providing a second signal to dynamically zoom out the second portion of the screen that zooms in upon completion of selection on the screen, the dynamic zoom out intended to allow the gameplay of a mini-game to be presented at the main portion of the display screen starting from a defined entry point while continuing to present the pre-recorded video at the second portion for user compliance during gameplay.
34. A method of sharing a video game on a game cloud system, the method comprising:
at the game cloud system, detecting a selection of a mini-game for play, wherein the mini-game identifies executable code for implementing a game process for a portion of the video game and includes a pre-recorded video of a game session for the portion of the video game and metadata related to content of the mini-game obtained by analyzing the pre-recorded video of the game session, the mini-game being provided at the game cloud system for sharing;
executing, at the game cloud system, the executable code for the mini-game in response to the selection, the executing causing the game play of the mini-game to be provided to a game client for presentation in a primary portion of a display screen of the game client and the pre-recorded video of the mini-game to be provided for presentation in a secondary portion of the display screen such that game scenes presented in the pre-recorded video follow game scenes of the game play of the mini-game presented in the primary portion; and
providing an information overlay for presentation in the main portion of the display screen during a game, the information overlay comprising detailed messages relating to events currently occurring in the pre-recorded video presented in the second portion, the detailed messages of the events being obtained from the metadata associated with the mini-game,
wherein providing the game play, the pre-recorded video, and the information overlay is processed by the game cloud system without user input.
35. The method of claim 34, wherein the metadata comprises telemetry data relating to the game session of the mini-game and data signals provided within the video game, the telemetry data comprising details of a game play obtained by analyzing the game session of the mini-game captured in the pre-recorded video.
36. The method of claim 34, wherein the detailed message in the information overlay includes attributes of the user currently playing the mini-game, the attributes of the user being related to the event and determined in substantially real-time during game play using game input provided by the user, the identified attributes representing live statistics of the user, the attributes of the user being updated to the metadata of the mini-game.
37. The method of claim 34, wherein the detailed message in the information overlay includes attributes of a player of a pre-recorded video presentation of the mini-game in the second portion, the attributes of the player corresponding to the event currently occurring in the pre-recorded video, the attributes of the player determined using the metadata associated with the pre-recorded video.
38. The method of claim 34, wherein the detailed message is determined for each event occurring during the course of the game of the mini-game.
39. The method of claim 34, wherein the detailed message is determined for each event occurring in the pre-recorded video presented in the second portion of the display screen for the mini-game.
40. A computer readable medium having computer readable code stored thereon, wherein the computer readable code when executed by a processor implements the steps of any of the methods of claims 1-39.
41. A computer system comprising a processor, a memory, and computer readable code stored on the memory and executable on the processor, wherein the processor when executing the computer readable code implements the steps of any of the methods of claims 1-39.
CN201610871813.7A 2015-09-30 2016-09-30 System and method for providing time-shifted intelligent synchronized gaming video Active CN107096221B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110060530.5A CN112755521A (en) 2015-09-30 2016-09-30 System and method for providing time-shifted intelligent synchronized gaming video

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201562235559P 2015-09-30 2015-09-30
US201562235521P 2015-09-30 2015-09-30
US62/235,521 2015-09-30
US62/235,559 2015-09-30
US15/268,491 2016-09-16
US15/268,493 2016-09-16
US15/268,491 US10549203B2 (en) 2015-09-30 2016-09-16 Systems and methods for providing time-shifted intelligently synchronized game video
US15/268,493 US10549204B2 (en) 2015-09-30 2016-09-16 Systems and methods for providing augmented data-feed for game play re-creation and dynamic replay entry points

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110060530.5A Division CN112755521A (en) 2015-09-30 2016-09-30 System and method for providing time-shifted intelligent synchronized gaming video

Publications (2)

Publication Number Publication Date
CN107096221A CN107096221A (en) 2017-08-29
CN107096221B true CN107096221B (en) 2021-02-02

Family

ID=58427321

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110060530.5A Pending CN112755521A (en) 2015-09-30 2016-09-30 System and method for providing time-shifted intelligent synchronized gaming video
CN201610871813.7A Active CN107096221B (en) 2015-09-30 2016-09-30 System and method for providing time-shifted intelligent synchronized gaming video

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110060530.5A Pending CN112755521A (en) 2015-09-30 2016-09-30 System and method for providing time-shifted intelligent synchronized gaming video

Country Status (2)

Country Link
CN (2) CN112755521A (en)
WO (1) WO2017058951A1 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10972203B2 (en) 2017-06-12 2021-04-06 Gracenote, Inc. Detecting and responding to rendering of interactive video content
CN108449640B (en) * 2018-03-26 2021-05-07 广州虎牙信息科技有限公司 Live video output control method and device, storage medium and terminal
CN112074330B (en) * 2018-04-02 2022-07-08 谷歌有限责任公司 Method, equipment and system for interactive cloud game
AU2019247957A1 (en) * 2018-04-06 2020-11-19 Novi Digital Entertainment Private Limited Synchronization of online gaming environment with video streaming of a live event
CN108600388B (en) * 2018-05-09 2021-06-22 福建星网视易信息系统有限公司 Method and system for realizing remote real-time multiplayer game
US10559281B2 (en) 2018-05-31 2020-02-11 Sony Interactive Entertainment LLC Challenge game system
CN111514580B (en) * 2019-02-01 2023-05-05 网易(杭州)网络有限公司 Game video file generation method, playing method and device
KR20200097012A (en) * 2019-02-07 2020-08-18 주식회사 엔씨소프트 System and method for terminal device control
US11325044B2 (en) * 2019-03-07 2022-05-10 Sony Interactive Entertainment LLC Video game guidance system
CN110381267B (en) * 2019-08-21 2021-08-20 成都索贝数码科技股份有限公司 Method for realizing large-format multilayer real-time editing based on intra-frame segmentation clustering
US11395968B2 (en) * 2020-03-06 2022-07-26 Sony Interactive Entertainment Inc. Surfacing prerecorded gameplay video for in-game player assistance
CN111459626B (en) * 2020-03-11 2021-06-01 完美世界(北京)软件科技发展有限公司 Method and device for realizing non-branching seamless game world
CN111935291B (en) * 2020-08-14 2023-04-18 腾讯科技(深圳)有限公司 Game pushing method, device, equipment and computer-readable storage medium
CN112672200B (en) * 2020-12-14 2023-10-24 完美世界征奇(上海)多媒体科技有限公司 Video generation method and device, electronic equipment and storage medium
US11724187B2 (en) 2021-09-23 2023-08-15 Sony Interactive Entertainment Inc. Ghost comparison mode
CN114100145B (en) * 2021-12-08 2024-02-13 抖音视界有限公司 Cloud game interaction method, device, equipment and medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336891B1 (en) * 1997-12-08 2002-01-08 Real Vision Corporation Interactive exercise pad system
CN103886009A (en) * 2012-12-21 2014-06-25 索尼电脑娱乐美国公司 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
CN103902804A (en) * 2012-12-27 2014-07-02 索尼电脑娱乐美国公司 Shadow type video game system and method based on previous game player

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110126255A1 (en) * 2002-12-10 2011-05-26 Onlive, Inc. System and method for remote-hosted video effects
CN100502988C (en) * 2004-03-30 2009-06-24 深圳华强智能技术有限公司 Hitting game apparatus
US7297060B2 (en) * 2004-05-12 2007-11-20 Mattel, Inc. Transportable apparatus for a game system
CN101239240B (en) * 2007-02-07 2011-06-22 盛趣信息技术(上海)有限公司 Control method of non-player role
US9233309B2 (en) * 2012-12-27 2016-01-12 Sony Computer Entertainment America Llc Systems and methods for enabling shadow play for video games based on prior user plays
JP6110704B2 (en) * 2013-03-29 2017-04-05 任天堂株式会社 Program, information processing apparatus, information processing method, and information processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336891B1 (en) * 1997-12-08 2002-01-08 Real Vision Corporation Interactive exercise pad system
CN103886009A (en) * 2012-12-21 2014-06-25 索尼电脑娱乐美国公司 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
CN103902804A (en) * 2012-12-27 2014-07-02 索尼电脑娱乐美国公司 Shadow type video game system and method based on previous game player

Also Published As

Publication number Publication date
CN112755521A (en) 2021-05-07
CN107096221A (en) 2017-08-29
WO2017058951A1 (en) 2017-04-06

Similar Documents

Publication Publication Date Title
CN107096221B (en) System and method for providing time-shifted intelligent synchronized gaming video
US11154787B2 (en) Systems and methods for providing time-shifted intelligently synchronized game video
US10549204B2 (en) Systems and methods for providing augmented data-feed for game play re-creation and dynamic replay entry points
US11266916B2 (en) Method and system for accessing previously stored game play via video recording as executed on a game cloud system
JP7299231B2 (en) Real-time connection to expert help for players during game application gameplay
CN109314801B (en) Method for browsing game world, game cloud system and method for previewing game world
CN107029429B (en) System, method, and readable medium for implementing time-shifting tutoring for cloud gaming systems
US20220297016A1 (en) A marker in a message providing access to a full version of a video game
US11724204B2 (en) In-game location based game play companion application
JP7339318B2 (en) In-game location-based gameplay companion application
EP3469801B1 (en) Generating challenges using a location based game play companion applicaiton

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant