Method and system for saving snapshots of game play and for starting later execution of any user's ongoing game play when executed on a game cloud system

By generating and storing game snapshots, providing timelines and node charts, the problem of users struggling to avoid dead ends in cloud games is solved, enabling quick access to and preview of parts of the game of interest, and improving the utilization efficiency of game servers.

CN114177611BActive Publication Date: 2025-11-04SONY INTERACTIVE ENTERTAINMENT AMERICA LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111213897.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-01-20
Filing Date
2017-05-12
Publication Date
2025-11-04
Estimated Expiration
2037-05-12

AI Technical Summary

Technical Problem

In cloud-based gaming systems, users in video games often find it difficult to avoid dead ends and need to try all possible directions to find a suitable path for game progression.

Method used

By generating and storing game snapshots of multiple users, the system provides timelines and node charts, allowing users to preview and jump to specific game points, instantiate games using snapshot information, skip the initialization sequence, and start the game directly from the midpoint.

Benefits of technology

Users can preview and experience other users' game progress without affecting their own game, quickly access parts of interest, improve game server utilization efficiency, and reduce repetitive initialization time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114177611B_ABST
    Figure CN114177611B_ABST
Patent Text Reader

Abstract

A method for browsing a game world, comprising: capturing a plurality of snapshots generated from an instance of a video game; generating a timeline of a first user playing the video game for display, wherein the timeline includes snapshot images of at least one user progressing through the video game, the snapshot images displayed in relation to a current rendering image, the current rendering image displayed in association with the first user; generating a thumbnail for display in the timeline, the thumbnail including a first snapshot image associated with the first user, wherein the first snapshot demonstrates past progression of the first user compared to the current rendering image; and generating a second thumbnail for display in the timeline, the second thumbnail including a second snapshot image associated with a second user, wherein the second snapshot image demonstrates progression of the second user at a point in the video game after the current rendering image.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the patent application with application number 201780036845.8, application date 12 / 05 / 2017, and invention name "Method of browsing game worlds and game cloud system, method of previewing game worlds". BACKGROUND

[0002] Cloud-based systems use computing resources (hardware and software) to deliver services via a network (e.g. the Internet). The services enable content to be streamed to remote clients in the context of games, where most of the processing is done on servers, which can be distributed. Input provided at the remote clients will in turn drive the execution of a video game, without the need for dedicated gaming hardware at the location of the clients. Cloud-based gaming is therefore increasingly popular, as users find it easier to access more video game titles without the constraints of complex hardware, and game providers find it easier to manage game code from a central location.

[0003] As a user is progressing through a game play of a video game, the video game can present multiple options that give different outcomes, and it can be difficult to decide in which direction to direct the game play. For example, although a user can want to avoid a direction in the game play that does not provide any apparent progress, without prior knowledge obtained through external sources, the user cannot avoid a particular direction that leads to a dead end. In some cases, the user can try all possible directions that the video game can present in a certain part of the game before finding a proper direction that gives an outcome that advances the game play. It can be desirable to avoid playing all possible directions in a video game.

[0004] Embodiments of the present disclosure arise in this context. SUMMARY

[0005] Embodiments of the present disclosure relate to a system and method for saving snapshots generated at various points during a game play by multiple users of a video game, generating a timeline that can be displayed to a user during a game play of a video game, and wherein the snapshots are used to jump to a game play by the same or another user that starts at a point corresponding to a selected snapshot. Several inventive embodiments of the present disclosure are described below.

[0006] In one embodiment, a method for browsing a game world is disclosed. The method includes capturing a plurality of snapshots generated from a plurality of instances of a video game executed in association with a plurality of users. The method also includes displaying a first timeline of a first user playing the video game, wherein the first timeline includes snapshot images of at least one user progressing through the video game, the snapshot images related to a current rendered image of a first instance of the video game executed in association with the first user. The method also includes displaying a plurality of first snapshot images associated with the first user in a plurality of first thumbnails in the first timeline, wherein the plurality of first snapshots includes at least one rendered image showing past progression of the first user compared to the current rendered image. The method also includes displaying a plurality of second snapshots associated with a second user in a plurality of second thumbnails, wherein the plurality of second snapshots includes at least one rendered image showing progression of the second user at a point in the video game after the current rendered image.

[0007] In another embodiment, a method for browsing a game world is disclosed. The method includes executing a first instance of a video game on a game cloud system in association with a first user playing the video game. The method includes capturing a plurality of first snapshots of a first plurality of rendered images generated in association with execution of the first instance of the video game, wherein each of the first snapshots is associated with a unique point of progress in the video game. The method also includes capturing a plurality of second snapshots of a second plurality of rendered images generated in association with execution of a second instance of the video game, the execution being in association with a second user playing the video game. The method also includes displaying a timeline showing progress of the first user and the second user playing the video game, the timeline being displayed contemporaneously with a current rendered image generated by execution of the first instance.

[0008] In yet another embodiment, a game cloud system is disclosed, configured to browse game worlds. The game cloud system includes a game server configured to manage multiple virtual game engines, which are configured to execute multiple instances of the video game in association with multiple users playing the video game. The virtual game engines are configured to capture multiple snapshots of reproduced images generated by executing the multiple instances, wherein corresponding snapshots enable the execution of an instance of the video game to begin from the corresponding snapshot. The game cloud system includes a snapshot data storage for storing the multiple snapshots. The game cloud system includes a first virtual game engine configured to execute a first instance of the video game associated with a first user, wherein the first virtual game engine is configured to generate a first timeline for the first user playing the video game, wherein the first timeline includes: a plurality of first snapshot images, the plurality of first snapshot images including at least one replay image, the at least one replay image showing the first user's past progress compared to a current replay image of the first instance; and a plurality of second snapshots associated with a second user, wherein the plurality of second snapshots includes at least one replay image, the at least one replay image showing the second user's progress in the video game at a point after the current replay image.

[0009] In another embodiment, a method for browsing a game world is disclosed. The method includes executing a video game via a streaming game service, the video game being reproduced on a display of a user device communicating over a network, the user device being associated with a first user. The method includes generating multiple scenes of the video game for the display of the user device, the scenes progressing through different paths in the video game. The method includes generating a timeline for display alongside the currently reproduced scenes, wherein the timeline includes multiple first thumbnails displaying snapshot images associated with the first user's progress through the video game, wherein the timeline includes multiple second thumbnails displaying snapshot images associated with a second user's future progress through the video game, wherein selection of a first thumbnail from the multiple second thumbnails enables jumping to a future state of the video game reproduced for the second user.

[0010] Other aspects of this disclosure will become apparent from the following detailed description taken in conjunction with the accompanying drawings, which illustrate the principles of this disclosure by way of example. Attached Figure Description

[0011] This disclosure is best understood by referring to the following description taken in conjunction with the accompanying drawings, in which:

[0012] Figure 1 A system for saving snapshots generated during game play of a plurality of users' video games executed via a cloud gaming network is shown in accordance with one embodiment of the present disclosure.

[0013] Figure 2 A system diagram for enabling access to and playing of a video game stored in a game cloud system (GCS), storing snapshots generated in association with game play, previewing stored game play via snapshots, browsing a video game via snapshots, and jumping to stored game play via snapshots is shown in accordance with one embodiment of the present disclosure.

[0014] Figure 3A A diagram of a timeline displayed during game play of a video game by a user in accordance with one embodiment of the present disclosure, wherein the timeline exhibits snapshot images of game play of the user and game play of another user.

[0015] Figure 3B A diagram of one or more timelines displayed during game play of a video game by a user in accordance with one embodiment of the present disclosure, wherein the timeline exhibits snapshot images of game play of one or more users of the video game.

[0016] Figure 4A A diagram of a timeline exhibiting snapshot images of game play of at least one user of a video game in accordance with one embodiment of the present disclosure, wherein selection of a snapshot enables a zoomed view of the snapshot image.

[0017] Figure 4B A diagram of one or timelines each exhibiting snapshot images of game play of at least one user of a video game in accordance with one embodiment of the present disclosure, wherein selection of a snapshot enables a zoomed view of the snapshot image.

[0018] Figure 5A A diagram of a node graph of game play of a video game in accordance with one embodiment of the present disclosure, wherein the node graph is displayed with a timeline during game play of the video game by a user, wherein the timeline exhibits snapshot images of game play of the user and snapshot images of game play of another user.

[0019] Figure 5B A diagram of a generic node graph or node tree exhibiting all possible paths available in a video game in accordance with one embodiment of the present disclosure.

[0020] Figure 5Cis an illustration of a node graph showing a hierarchy of nodes generated in association with snapshots captured during gameplay of a video game, in accordance with one embodiment of the present disclosure, wherein the node graph is displayed with a timeline during gameplay of the video game by a user, wherein the timeline shows snapshot images of the user's gameplay and snapshot images of another user's gameplay.

[0021] Figure 5D is an expanded illustration of a node graph showing a hierarchy of snapshot nodes generated in association with snapshots captured during gameplay of a video game having a non-linear progression portion, in accordance with one embodiment of the present disclosure.

[0022] Figure 6A is an illustration of a set of snapshot nodes closely and linearly aligned with a selected snapshot node, in accordance with one embodiment of the present disclosure, wherein the snapshot nodes can be selected through a timeline or a node graph.

[0023] Figure 6B is an illustration of a set of snapshot nodes closely and non-linearly aligned with a selected snapshot node, in accordance with one embodiment of the present disclosure, wherein the snapshot nodes can be selected through a timeline or a node graph.

[0024] Figures 6C-6F is an illustration of snapshot images corresponding to a set of snapshot nodes closely aligned with a selected snapshot node, in accordance with one embodiment of the present disclosure.

[0025] Figure 7 is an illustration of snapshots captured during gameplay of a video game, and storing each of the snapshots in one or more master files of a snapshot database, in accordance with one embodiment of the present disclosure.

[0026] Figure 8 is an illustration of multiple segments of a user's gameplay of a video game including mediated jumps into separate jump gameplay by the user based on snapshots captured during another gameplay of the video game by the same or another user, in accordance with one embodiment of the present disclosure.

[0027] Figure 9 is a flowchart showing steps in a method for navigating a game world, in accordance with one embodiment of the present disclosure.

[0028] Figure 10 is a diagram showing components of a head-mounted display, in accordance with one embodiment of the present disclosure.

[0029] Figure 11is a block diagram of a game system in accordance with various embodiments of the present invention. The game system is configured to provide video streams to one or more clients over a network. DETAILED DESCRIPTION

[0030] While the following detailed description contains many specific details for the purpose of providing a thorough understanding of the various embodiments of the present invention, those of ordinary skill in the art will appreciate that many variations and alterations in the details are possible without departing from the scope of the present invention. Accordingly, the appended claims and their equivalents do not limit the present invention to the described embodiments, and are intended to include all changes to the present invention that fall within the scope of the claims.

[0031] In general, various embodiments of the present disclosure describe systems and methods that provide for saving snapshots generated during game play of a video game by a plurality of users, browsing the video game, previewing the video game, and jumping to a selected point in the video game to experience another user's game play, particularly when executed on a cloud-based game system. The snapshots can be displayed in a timeline for the user playing the video game. A selected snapshot in the timeline contains metadata and / or information that enables instantiation of an instance of the video game at a jump point in the video game corresponding to the selected snapshot. The instance of the video game started at the jump point is executed in association with the original user that generated the selected snapshot in a previously executed game play, although the requesting user can be different from the original user. Embodiments of the present disclosure provide a way to load and execute an instance of the same or another user's video game that was not previously available. In this manner, a user can proactively preview other users' game play without interfering with his or her own game play. In addition, a user can proactively preview his or her own previous game play without interfering with his or her current game play. Embodiments of the present disclosure arise in this context.

[0032] Accordingly, embodiments of the present disclosure provide additional uses of game applications. For example, embodiments of the present disclosure provide for a user to jump into any portion of a game application based on previous game play of the game application. For example, in some embodiments, through selection of a snapshot image (e.g., a screen shot), corresponding snapshot information is accessed to enable jumping into the game application. In this manner, a user can quickly play a tiny portion of a game application for fun, or can discover how to successfully navigate a difficult portion of a game application. Access to the tiny portion is achieved without the user having to use an initial startup sequence to load the game application. Moreover, older applications that are no longer popular will generate new interest, as a user does not need to play through an entire game to reach a portion of interest (e.g., a monster of a battle level, or the ultimate monster), but can go directly to those portions of interest in order to play the game immediately. Still other embodiments provide the above benefits, and provide additional benefits and advantages, including better utilization of game servers, as the game servers need only execute the game application directly from an intermediate or jump point, rather than from the beginning executing an initialization sequence (e.g., when a user first loads a game application from the beginning). Thus, by directly uploading code necessary to start a game from a selected jump point, the game server skips the initialization sequence, and any additional executable sequences to navigate to the jump point in the game application.

[0033] With the above general understanding of the various embodiments, exemplary details of the embodiments will now be described with reference to the various drawings.

[0034] Throughout this specification, reference to a "video game" is intended to mean any type of interactive application that is directed by execution of input commands. For purposes of illustration only, interactive applications include applications for gaming, word processing, video processing, video game processing, etc. Moreover, the terms video game and game application are interchangeable.

[0035] Figure 1 A system is shown for saving snapshots generated during game play of a plurality of users' video games executed via a cloud gaming network, previewing game play of one or more users' video games, navigating through the video games, and jumping to a selected point in the video games to experience game play of the same or another user, in accordance with one embodiment of the present disclosure.

[0036] In some embodiments, the cloud gaming network can include a plurality of virtual machines (VMs) running on a hypervisor of a host, with one or more of the virtual machines configured to execute a game processor module with hardware resources available to the hypervisor of the host to support a single-player or multi-player video game. In other embodiments, the cloud gaming network is configured to support a plurality of local computing devices that support a plurality of users, with each local computing device executable to execute an instance of a video game, such as in a single-player or multi-player video game. For example, in a multi-player mode, the cloud gaming network simultaneously receives information (e.g., game state data) from each local computing device as the video game is being locally executed, and thus distributes the information throughout one or more of the local computing devices so that each user is able to interact with other users in the game environment of the multi-player video game (e.g., through a corresponding character in the video game). In this manner, the cloud gaming network coordinates and combines the game play for each of the users within the multi-player game environment.

[0037] As shown, the system 10 includes a game server 205 that executes a game processor module 210 that provides access to a plurality of interactive video games. The game server 205 can be any type of server computing device available in the cloud, and can be configured as one or more virtual machines executing on one or more hosts. For example, the game server 205 can manage a virtual machine that supports the game processor 210.

[0038] The client device 100 is configured for requesting access to a video game via a network 150, such as the Internet, and for rendering an instance of the video game executed by the game server 205 and delivered to a display device 12 associated with the user 5. For example, the user 5 can interact with an instance of a video game executing on the game processor 210 through the client device 100. The client device 100 can also include a game execution engine 111 configured for local execution of the video game. The client device 100 can receive input from various types of input devices, such as a game controller 6, a tablet 11, a keyboard, gestures captured by a video camera, a mouse, a touchpad, etc. The client device 100 can be any type of computing device having at least a memory and a processor module capable of connecting to the game server 205 via the network 150. Some instances of the client device 100 include a personal computer (PC), a game console, a home theater device, a general purpose computer, a mobile computing device, a tablet, a phone, or any other type of computing device that can interact with the game server 205 to execute an instance of a video game.

[0039] The client device 100 is configured for receiving a rendered image delivered by the game server 205 or delivered locally by the game execution engine 111 and for displaying the rendered image on the display 12. For example, the rendered image can be associated with an instance of a video game being executed on the game execution engine 211 of the game server 205 in association with the game play of the user 5. In particular, the client device 100 is configured to interact with the instance of the video game, such as by input commands used to drive the game play, in association with the game play of the user 5.

[0040] Further, the client device 100 is configured to interact with the game server 205 to capture and store snapshots of the game play of the user 5 while playing the video game. In addition, the client device 100 is configured to interact with the game server 205 to display a timeline including snapshots of the game play of the user 5 and snapshots of saved game plays of other users playing the same video game. Each snapshot enables the user 5 to jump into the saved game play in the video game at a jump point corresponding to the selected snapshot, where in one embodiment the saved game play can be associated with another user different from the user 5.

[0041] More particularly, the game processor 210 of the game server 205 is configured to generate snapshots of the game play of the user 5 while playing the video game. Other game processors of the game server 205 associated with other virtual machines are configured to execute instances of the video game in association with game plays of other users and to capture snapshots during those game plays. As introduced earlier, the instance of the video game is being executed on the game execution engine 211 in association with the game play of the user 5.

[0042] The snapshot generator 212 is configured to capture a plurality of snapshots generated from the game play of the user 5. Each snapshot provides information enabling execution of an instance of the video game starting from a point in the video game associated with the corresponding snapshot. The snapshots are generated automatically during the game play of the user 5 of the video game. In an embodiment, portions of each of the snapshots are stored in a related database configured independently or under the data store 140. In another embodiment, the snapshots can be generated manually by the user 5 by instruction. In that manner, any user can jump into the game play of the user 5 in the video game at a point associated with the corresponding snapshot by selecting the corresponding snapshot. The game processor 210 is configured to access the information in the database 140 in order to enable jumping into the saved game play of any user based on the corresponding snapshot. That is, a requesting user can use a game character of the original user that generated and saved the snapshot to start playing the video game at a jump point corresponding to the selected snapshot.

[0043] In particular, each snapshot includes metadata and / or information to enable execution of an instance of the video game from the point in the video game corresponding to the snapshot. For example, in the game play of user 5, a snapshot can be generated at a particular point in the progress of the video game, such as in the middle of a level. The relevant snapshot information is stored in one or more databases of database 140. Pointers can be used to link the information in each database corresponding to a particular snapshot. In this manner, another user who wishes to experience the game play of user 5 can select a snapshot corresponding to a point in the video game of interest.

[0044] The snapshot includes a snapshot image of the scene reproduced at the point. The snapshot image is stored in snapshot image database 146. Snapshot images presented in the form of thumbnails in a timeline provide a view of the game play of the user at the corresponding point in the progress of the video game.

[0045] The snapshot also includes game state data defining the state of the game at the point. For example, the game state data can include game characters, game objects, game object attributes, game attributes, game object states, graphical overlays, etc. In this manner, the game state data allows generation of the game environment existing at the corresponding point in the video game. The game state data can also include the state of each device used to reproduce the game play, such as the state of the CPU, GPU, memory, register values, program counter values, programmable DMA state, buffered data for DMA, audio chip state, CD-ROM state, etc. The game state data can also identify which portions of executable code need to be loaded to execute the video game from the point corresponding to the snapshot. It is not necessary to capture and store all of the game state data, but only that which is sufficient to enable the executable code to start the game at the point corresponding to the snapshot. The game state data is stored in game state database 145.

[0046] The snapshot also includes user saved data. In general, the user saved data includes information that personalizes the video game for the corresponding user. This includes information associated with the user's character so that the video game is reproduced with a character that can be unique to the user (e.g., shape, appearance, clothing, weapons, etc.). In this manner, the user saved data enables generation of a character for the game play of the corresponding user with the character having a state corresponding to the point in the video game associated with the snapshot. For example, the user saved data can include the game difficulty, game level, character attributes, character position, number of lives remaining, total number of lives that can be available, armor, awards, time counter values, etc. that user 5 selected when playing the game. The user saved data can also include user profile data identifying user 5, for example. The user saved data is stored in database 141.

[0047] In addition, the snapshots also include random seed data generated by an artificial intelligence (AI) module 215. The random seed data can not be part of the original game code, but can be added in the overlay to make the game environment appear more realistic and / or engaging to the user. That is, the random seed data provides additional features to the game environment that exist at corresponding points in the user's game play. For example, AI characters can be randomly generated and provided in the overlay. The AI characters are not associated with any user playing the game, but are placed into the game environment to enhance the user's experience. By way of illustration, these AI characters can be randomly walking down the street in a city scene. In addition, other objects can be generated and presented in the overlay. For example, clouds in the background and birds flying in the sky can be generated and presented in the overlay. The random seed data is stored in a random seed database 143.

[0048] In this manner, another user who wishes to experience the game play of the user 5 can select a snapshot corresponding to one of the points in the video game of interest. For example, the user's selection of a snapshot image presented in the timeline or a node in the node graph enables the jump execution engine 216 of the game processor 210 to access the corresponding snapshot, instantiate another instance of the video game based on the snapshot, and execute the video game from the point in the video game corresponding to the snapshot. In this manner, the snapshot enables the requesting user to jump into the game play of the user 5 at the point corresponding to the snapshot.

[0049] The game processor 210 includes a timeline generator 213 that displays a timeline of the user 5 playing the video game. The timeline includes snapshot images of at least one user (e.g., the user 5 and / or other users) progressing through the video game, where the snapshot images are presented with respect to a current rendition image of an instance of the video game executed in association with the user 5. Each snapshot image corresponds to a particular snapshot captured at a particular point in the progress of the video game by the user 5. For example, the snapshots and snapshot images generated in association with the game play of the user 5 correspond to points in the video game that occurred prior to the current rendition image of the instance of the video game executed in association with the game play of the user 5. That is, the user 5 previously played through those points in the video game and a plurality of snapshots and snapshot images were generated corresponding to those points.

[0050] Additionally, the snapshots generated in association with the game play of the second user and the corresponding snapshot images of the snapshots can correspond to points in the video game that occur before or after the current rendered image of the game play of user 5. That is, while playing the video game, the second user can have progressed further than user 5. Thus, the snapshots corresponding to the game play of the second user can occur at points in the video game that precede the current rendered image associated with the game play of user 5, or can occur at points that follow the current rendered image. The timeline can include snapshot images corresponding to points in the video game that occur after the current rendered image, and / or can include snapshot images corresponding to points in the video game that occur before the current rendered image.

[0051] In one embodiment, the snapshots presented in the timeline can be used by user 5 to access the game play of other users. That is, selection of a selected snapshot in the timeline enables user 5 to jump into the game play of another user at the point corresponding to the snapshot. For example, the jump game execution engine 216 gathers the snapshots (e.g., metadata and / or information) from the various databases (e.g., from database 140) to begin executing the video game at the point corresponding to the selected snapshot. In one embodiment, jumping into the game play of another user does not affect the game play of user 5.

[0052] In another embodiment, the snapshots presented in the timeline can be used by user 5 to access points in the user's own game play that precede the current rendered image. For example, a snapshot can be generated in the game play of user 5 and presented in the timeline. Selection of the snapshot by user 5 enables the execution engine 216 to gather the snapshot (e.g., metadata and / or information) from the various databases (e.g., from database 140) to begin executing the video game at the previous point corresponding to the selected snapshot. In this manner, user 5 can go back and replay certain portions of the video (e.g., previous levels). In one embodiment, jumping into the previous game play of the same user does not affect the current game play of user 5.

[0053] The game processor 210 also includes a node graph generator 214. As the user 5 progresses through the video game, a path through the video game is generated. Another user can generate a different path through the video game, especially in the case of a complex video game. The path can be a portion of a general logical path established by the video game, where the general logical path includes all paths that can be taken by any user playing the video game. Thus, the path associated with the game play of the user 5 can be a subset of the general logical path and defines the progress of the user 5 through the video game. Logical nodes can be defined at various points in the general logical path. For example, by way of illustration, nodes can be established at the start of the game, the start of a level, the end of the game, the end of a level, a fork that allows the user to choose between two or more optional paths, a key point in the video game, and the like.

[0054] Additionally, nodes can be defined at various points in the path associated with the game play of the user 5, or more generally, in the path associated with the game play of any user. For example, nodes can be defined in association with snapshots. These nodes can be defined at periodic intervals (e.g., every minute, every 5 minutes, every 10 minutes, etc.). Additionally, these nodes can be defined manually by a user. To illustrate, these nodes can also be established at the start of the game, the start of a level, the end of the game, the end of a level, a fork that allows the user to choose between two or more optional paths, a key point in the video game, and the like.

[0055] Figure 2 A system diagram 200 for enabling access to and playing of a video game stored in a game cloud system (GCS) 201 is shown in accordance with one embodiment of the present disclosure. In general, the game cloud system GCS 201 can be a cloud computing system that operates via a network 220 to support a plurality of users. Additionally, the GCS 201 is configured to hold snapshots generated during game play of the video game of the plurality of users, where the snapshots can be used to launch an instance of the video game for a requesting user from a point in the video game corresponding to the snapshot. Additionally, the GCS 201 enables a user to navigate through the video game and preview past and future scenarios of the video game using the snapshots. Moreover, the snapshots enable the requesting user to jump to a selected point in the video game through the corresponding snapshot to experience the game play of another user. Specifically, the system 200 includes the GCS 201, one or more social media providers 240, and user devices 230, all connected via the network 220 (e.g., the Internet). One or more user devices can connect to the network 220 to access the services provided by the GCS 201 and the social media providers 240.

[0056] In one embodiment, the game cloud system 201 includes a game server 205, a video recorder 271, a tag processor 273, and an account manager 274 including a user profile manager, a game selection engine 275, a game session manager 285, user access logic 280, a network interface 290, and a social media manager 295. The GCS 201 can also include a plurality of game storage systems, such as game state storage, random seed storage, user saved data storage, snapshot storage, which can be generally stored in the data store 140. Other game storage systems can include game code storage 261, recorded game storage 262, tag data storage 263, video game data storage 264, and game network user storage 265. In one embodiment, the GCS 201 is a system that can provide game applications, services, game related digital content, and interconnectivity between systems, applications, users, and social networks. The GCS 201 can communicate with the user device 230 and social media providers 240 via the network interface 290 through the social media manager 295. The social media manager 295 can be configured to link one or more friends. In one embodiment, each social media provider 240 includes at least one social graph 245 that illustrates social network relationships of users.

[0057] A user U0 can access services provided by the GCS 201 via the game session manager 285, where the user U0 can represent a user 5 of Figure 1 For example, the account manager 274 implements authentication of the user U0 and access to the GCS 201. The account manager 274 stores information about member users. For example, a user profile for each member user can be managed by the account manager 274. In this manner, member information can be used by the account manager 274 for authentication purposes. For example, the account manager 2274 can be used to update and manage user information related to member users. Additionally, game names owned by member users can be managed by the account manager 274. In this manner, video games stored in the data store 264 can be made available to any member user that owns the video game.

[0058] In one embodiment, a user (e.g., user U0) can access services provided by GCS 201 and social media provider 240 through a connection via network 220, through user device 230. User device 230 can include any type of device having a processor and memory, whether wired or wireless, portable or non-portable. In one embodiment, user device 230 can take the form of a smart phone, tablet computer, or hybrid device that provides touchscreen functionality in a portable form factor. One exemplary device can include a portable telephone device that runs an operating system and has the ability to access various applications (apps) that can be obtained via network 220 and executed on the local portable device (e.g., smart phone, tablet computer, laptop computer, desktop computer, etc.).

[0059] User device 230 includes a display 232 that serves as an interface for user U0 to send input commands 236 and display data and / or information 235 received from GCS 201 and social media provider 240. Display 232 can be configured as a touchscreen, or a display generally provided by a flat panel display, cathode ray tube (CRT), or other device capable of rendering a display. Alternatively, user device 230 can have its display 232 separate from the device, similar to a desktop or laptop computer.

[0060] In one embodiment, user device 130 is configured to communicate with GCS 201 to enable user U0 to play a video game. In some embodiments, GCS 201 can include a plurality of virtual machines (VMs) running on a hypervisor of a host computer, with one or more of the virtual machines configured to execute a game processor module with hardware resources available to the hypervisor of the host computer. For example, user U0 can select (e.g., by game name, etc.) a video game available in video game data store 264 via game selection engine 275. The video game can be played in a single-player game environment or in a multi-player game environment. In this manner, the selected video game is enabled and loaded for execution on GCS 201 by game server 205. In one embodiment, game play is primarily executed in GCS 201 such that user device 230 will receive a stream of game video frames 235 from GCS 201, and user input commands 236 for driving game play are transmitted back to GCS 201. Received video frames 235 from the streaming game play are shown in display 232 of user device 230. In other embodiments, GCS 201 is configured to support multiple local computing devices that support multiple users, with each local computing device executable to execute an instance of a video game, such as in a single-player video game or a multi-player video game. For example, in a multi-player game environment, the cloud gaming network simultaneously receives information (e.g., game state data) from each local computing device when the video game is locally executed, and thus distributes the information across one or more of the local computing devices such that each user is able to interact with other users in the game environment of the multi-player video game (e.g., through corresponding characters in the video game). In this manner, the cloud gaming network coordinates and combines game play for each of the users within the multi-player game environment.

[0061] In one embodiment, after user U0 selects an available game name to play, user U0 can initiate a game session for the selected game name through game session manager 285. Game session manager 285 first accesses game state store in data store 140 to retrieve a saved game state (if any) of the last session played by user U0 (for the selected game) so that user U0 can resume game play from a previous game play stop point. Once a resume point or start point is identified, game session manager 285 can instruct game execution engine in game processor 210 to execute game code for the selected game name from game code store 261. After the game session is initiated, game session manager 285 can transmit game video frames 235 (i.e., streaming video data) to a user device (e.g., user device 230) through network interface 290.

[0062] During game play, game session manager 285 can communicate with game processor 210, recording engine 271, and tag processor 273 to generate or save a recording (e.g., video) of the game play or game play session. In one embodiment, the video recording of the game play can include tag content and other game related metadata input or provided during the game play. The tag content can also be saved through snapshots. The video recording of the game play, along with any game metrics corresponding to the game play, can be saved in recorded game storage 262. Any tag content can be saved in tag data storage 263.

[0063] During game play, game session manager 285 can communicate with game processor 204 to deliver and obtain user input commands 236 used to affect the outcome of the corresponding game play of the video game. Input commands 236 entered by user U0 can be transmitted from user device 230 to game session manager 285 of GCS 201. Input commands 236, including input commands used to drive game play, can include user interactive input such as including tag content (e.g., text, images, video recording clips, etc.). Game input commands, as well as any user play metrics (how long the user played the game, etc.), can be stored in game network user storage. Information selected in relation to game play of the video game can be used to enable a number of features that can be available to the user.

[0064] Because game play is performed by multiple users on GCS 201, information generated and stored from the game play enables any requesting user to experience game play of other users, especially when the game play is performed on GCS 201. In particular, GCS 201 is configured to save snapshots of game play generated by users playing the video game through GCS 201. In the case of user U0, the user device provides an interface that allows user U0 to engage with the video game during game play. Snapshots of game play by user U0 are generated and saved on GCS 201.

[0065] Additionally, the user device 130 is configured to provide an interface that allows the user U0 to preview the video game using the snapshots. For example, by viewing the game play or the snapshot images of one or more users, the user U0 is able to preview one or more portions of the video game at any point in the video game, as long as another user has played through that point and generated a snapshot. Moreover, as will be described in greater detail below, the snapshots and / or snapshot images presented in the timeline can provide the user with a preview of the video game at various points without having to play the video game at those points. For example, by viewing the snapshots and / or snapshot images, the timeline can illustrate which direction the video game will follow at one or more particular points in the video game. If the direction leads to a dead end or a result that the user does not desire, the user can choose to avoid taking the path in the video game that leads to those points corresponding to the snapshots. On the other hand, if the direction leads to a desired result (e.g., a prize, an interesting battle or interaction, etc.), the user can choose to take the path in the video game that leads to those points corresponding to the snapshots. Additionally, the user device 130 is configured to provide an interface that allows the user U0 to browse the video game. For example, as will be described in greater detail below, the snapshots can be used to generate a node chart that illustrates the paths taken by one or more users progressing through the video game. The user can interface with the node chart to display snapshots and / or snapshot images at selected nodes in the node chart, which provides the user with a preview of the video game at various nodes of the video game without having to play the video game at those points. If the direction in the node chart leads to a dead end or a result that the user does not desire, the user can choose to avoid taking the node path in the video game that leads to those points corresponding to the nodes. On the other hand, if the direction in the node chart leads to a desired result, the user can choose to take the node path in the video game that leads to those points corresponding to the nodes.

[0066] Moreover, the user device 130 is configured to provide an interface that enables jumping to selected points in the video game using snapshots generated in the game play of the user U0 or another user. In this manner, the user U0 is able to experience the game play of any other user, or go back and review and / or replay his or her own game play. That is, the user is requested to play the video game using the character used in and corresponding to the game play of the corresponding game play through the snapshots of the corresponding game play.

[0067] FIGS. 3-8 are described in the context of a user playing a video game. In general, the video game can be any interactive game that is responsive to user input. For purposes of illustration only, the video game described with respect to FIGS. 3-8 can be an adventure game in which a character encounters various obstacles and challenges as the character travels through a world. The character can travel on foot or by any mechanized means in the video game. Additionally, as the video game is advanced from start to finish, the character can encounter one or more challenges that can cause a delay.

[0068] Throughout this specification, the use of time in one or more timelines of FIGS. 3-8 is intended to illustrate the progress through the video game and not necessarily a measure of how long the user has played the video game.

[0069] Figure 3A FIG. 3 is an illustration of a timeline 310a displayed during game play of a video game by a user in accordance with one embodiment of the present disclosure, in which the timeline shows a snapshot image of the game play by the user as well as a snapshot image of the game play by another user. Further, in one embodiment, the timeline 310a is generated by a timeline generator 213 of a game processor 210 of a game server 205 of a GCS 201. The timeline 310a can be used to quickly preview previous game play by the user as well as game play by one or more other users.

[0070] The display window 350a and the timeline 310a are displayed when the game execution engine 211 of the game processor 210 instantiates an instance of the video game. For example, the window 300 presents the rendered image 305 during the user's game play for a particular video game. The rendered image is associated with the current point in the user's progress through the video game. As shown, in the rendered image 305, the character 306 representing the user in the game play is on a motorcycle. The character 306 is riding on a road through the mountains, but has encountered a rock fall 307. In the user's game play, the character is selected to be a male with a buzz cut, as shown in the rendered image 305. At this point, the user can be stumped in the user's progress through the video game, and can want to explore ways to get around the rock fall. For example, the user can want to preview other users' game plays to explore solutions that allow the user to get past the rock fall, and to explore future experiences in the video game at points after the user's current progress as represented by the rendered image 305. Exploration of these other game plays can be accomplished through the timeline 310a, and more specifically through the snapshot images displayed in the timeline 310a and their corresponding snapshots. As introduced earlier, a snapshot enables execution of an instance of the corresponding video game starting from the point in the video game associated with the corresponding snapshot. Specifically, further selection by the user of a snapshot image presented in the timeline or a node in the node graph enables the jump execution engine 216 of the game processor 210 to access the corresponding snapshot, instantiate another instance of the video game based on the snapshot, and execute the video game starting from the point in the video game corresponding to the snapshot.

[0071] The timeline 310a is displayed in the window 350a. In general, multiple timelines can be displayed in the window 350a, including snapshot images of one or more game plays of one or more users. As Figure 3A shown in FIG. 3B, the window 350a can display a single timeline 310a, where the timeline 310a includes snapshot images of the user's game play and snapshot images of another user's game play. The snapshot images are presented in thumbnails and / or windows, and are displayed in relation to the current rendered image of the video game in the user's game play. For example, snapshot images that occur before the point in the video game represented by the current rendered image 305 can be displayed to the left of the blank thumbnail 340c, and snapshot images that occur after the point can be displayed to the right of the thumbnail 340c. The window 350a can also display additional timelines that include snapshot images of one or more game plays of one or more users, as will be further described with respect to FIG. 4. Figure 3B The timeline presents progress through the video game, without necessarily showing a measure of how long the user has played the video game.

[0072] In particular, timeline 310a includes snapshot images for the user's ongoing game play. For example, a plurality of snapshot images (e.g., images 340a, 340b,...) corresponding to snapshots captured during the user's ongoing game play are displayed in thumbnail and / or windowed fashion in timeline 310a. Collectively, the snapshot images give a quick history of the user's game play. For example, snapshot image 340a shows character 306 jumping off a ramp or cliff on a motorcycle. At this point in the game, character 306 has 2 possible lives, as indicated by the two circles in the upper left corner of snapshot image 340a. Thereafter, in the user's progress through the video game, snapshot image 340b shows character 306 (still with two possible lives) on a motorcycle traversing a forest and approaching a mountain. Current rendered image 305 shown in window 300 shows that character 306 has reached the mountain and is approaching a rockfall 307. At this point, character 306 has two possible lives.

[0073] Because rendered image 305 is currently displayed, and represents the user's progress through the video game, only snapshot images representing the user's previous game play are displayed. These snapshot images generally represent points in the game that occur before the point represented by the currently displayed rendered image 305. For purposes of illustration only, the total number of possible lives for the character gives a rough estimate of the user's progress through the video game. However, some video games can allow the user to go back and forth as the user plays the video game. In one embodiment, in any case, only snapshot images corresponding to previous rendered images can be displayed in the timeline 310a for the user. These snapshot images are displayed in timeline 310a with respect to current rendered image 305, which is represented by blank thumbnail 340c. For example, snapshot images can be displayed to the left of blank thumbnail 340c. Further ordering between two snapshot images can be achieved by displaying a first snapshot image captured at a first point in the video game to the left of a second snapshot image occurring at a second point that occurs after the first point in the user's general progress through the video game. In another implementation, thumbnail 340c can be populated by rendered image 305 to show the user's current progress in timeline 310a.

[0074] Snapshot images representing points in the video game that occur before the current replay image 305 can be displayed in a way that distinguishes them from snapshot images representing points in the video game that occur after the current replay image 305 (i.e., future points). In one embodiment, the snapshot images can be grayed out. That is, snapshot images corresponding to points occurring before the current replay image 305 are displayed with lower intensity and / or resolution compared to snapshot images corresponding to points occurring later in the progression of the video game. Other embodiments are supported, such as displaying snapshot images with crosshairs or blurring them.

[0075] Furthermore, timeline 310a includes snapshot images of another user's gaming entertainment. In one implementation, this other user can be a friend discovered through social media manager 295. The snapshot images can also correspond to the gaming entertainment of a random user or a user of particular interest (such as a user with a high score in a video game). For illustrative purposes only, in the examples provided with respect to Figures 3-8, these other users are referred to as the current user's friends, such as first friend F1, second friend F2, and third friend F3. First friend F1 is playing a character 308 depicted as a woman with long hair. Second friend F2 is playing a character 309 depicted as a man with thick hair. Third friend F3 is playing a character 303 depicted as a bald man.

[0076] Specifically, timeline 310a includes snapshot images of gameplay for a second user (e.g., friend F1 playing the female character 308). For example, multiple snapshot images (e.g., images 360d, 360e, 360f, ...) corresponding to snapshots captured during gameplay for the second user are displayed in timeline 310a as thumbnails and / or windows. These snapshot images are displayed with respect to the currently replayed image 305. For example, snapshot images 360d, 360e, and 360f, displayed to the right of a blank thumbnail 340c, occur at points in the video game after the currently replayed image 305. Although not shown in timeline 310a, snapshot images (e.g., snapshot images 360a, 360b, and 360c) occurring in the video game at points near or before the currently replayed image may optionally be displayed with respect to the points displayed in the video game. Figure 3B The timeline 310b in window 350b further describes the snapshot image.

[0077] Taken together, the snapshot images give a quick history of the game play of a second user (e.g., friend Fl) that occurred at points in the future after the current rendered image 305. For example, the snapshot image 360d shows the character 308 thinking about how to cross the river and has three possible lives. Further ahead in the video game, in snapshot image 360e, the character 308, now with four possible lives, is fighting a bear. Still further ahead in the video game, in snapshot image 360f, the character 308, now with five possible lives, is driving a car through the desert.

[0078] In one embodiment, the timeline can be modified according to the user's progress through the video game and available snapshot images. For example, snapshot images can not be displayed that are too far in the past (e.g., for the user or other users) and can also not be displayed that are too far in the future (e.g., for other users) from the current rendered image 305. In addition, when other users are changed and / or replaced, the corresponding snapshot images are updated in the timeline.

[0079] Figure 3B is an illustration of multiple timelines displayed during game play of a video game by a user in accordance with one embodiment of the disclosure, where the timelines show snapshot images of game play of one or more users of the video game. The timelines are displayed in a window 350b. In one embodiment, the window 350b is displayed with the current rendered image 305 in the user's game play. For example, in one embodiment, the timelines 310b, 320, and 330 are displayed in the window 350b and are generated by a timeline generator 213 of the game processor 210 of the game server 205 of the GCS 201. The timelines can be used to quickly preview previous game play by the user and game play of one or more other users (e.g., friends, random users, users of interest, etc.).

[0080] As shown, the timeline 310b includes snapshot images (e.g., 340a, 340b,...) of the game play by the user, as previously discussed with respect to Figure 3A These snapshot images can be displayed as thumbnails, as shown in Figure 3B and arranged with respect to the current rendered image 305. For example, the snapshot images are displayed to the left of the current rendered image 305 and are generally arranged with the first snapshot image to the left of the later occurring snapshot images, as previously described.

[0081] Further, the timeline 310b includes a plurality of snapshot images (360a, 360b, 360c, 360d, 360e, 360f,...) corresponding to snapshots captured during the game play by the second user (e.g., the first friend Fl playing the female character 308). These snapshot images are displayed in thumbnail in the timeline 310b and are arranged with respect to the current rendering image 305 as previously described. More specifically, the snapshot images (e.g., snapshot images 360a, 360b, and 360c) occurring in the video game at a point near or before the current rendering image can also be optionally included under the snapshot images (e.g., 340a, 340b,...) of the user. Snapshot images (e.g., 360a, 360b,...) occurring at a point in the video game progression before the current rendering image can be arranged to the left of the blank thumbnail 340c. As an indication of the game progression, the snapshot images 360a-c show the character with two possible lives. Snapshot image 360c occurs at approximately the same point through the progression of the video game as the current rendering image 305 and is located approximately below the blank thumbnail 340c. For example, both snapshot image 360c and the current rendering image 305 show the respective characters each with two possible lives. Further, the snapshot images in the timeline 310b can be generally arranged such that a first snapshot image is to the left of a later occurring snapshot image, as previously described. An arrow 399 can link the snapshot images associated with the second user (friend Fl).

[0082] Taken together, the snapshot images give a quick history of the game play of the first friend Fl. For example, in snapshot image 360a, the character 308 of friend Fl is first shown riding a motorcycle on a city street. Thereafter, as friend Fl progresses through the video game, snapshot image 360b shows the character 308 (with two possible lives) riding the motorcycle through a forest and approaching a mountain. Further ahead in the video game, the character 308 is riding the motorcycle on a mountain road in snapshot image 360c. For example, the character 308 of friend Fl can have bypassed the rock fall that the character 306 of the user is currently encountering in the rendering image 305. Later, the character 308 (with three possible lives) is shown approaching a river in snapshot image 360d. Still further ahead, the character 308 (with four possible lives) is fighting a bear in snapshot image 360e, and then the character 308 (with five possible lives) is shown driving a car through a desert in snapshot image 360f.

[0083] Window 350b displays another timeline 320 associated with game play of another user, such as second friend F2. As shown, timeline 320 includes snapshot images (370a, 370b, 370c, 370d, 370e,...) of game play by friend F2. In one embodiment, these snapshot images can be displayed as thumbnails and arranged with respect to current rendered image 305. For example, snapshot images that occur at points in the video game progression prior to the current rendered image (e.g., 370a, 370b,...) are arranged generally to the left of blank thumbnail 340c. These snapshot images can be easily identified by graying out the display content, as previously described. Snapshot image 370c occurs at the same point in the progression through the video game as current rendered image 305 and is generally located below blank thumbnail 340c. Snapshot images that occur at points in the video game progression after the current rendered image (e.g., 370d, 370e,...) are arranged generally to the right of blank thumbnail 340c. In addition, the snapshot images in timeline 320 can be generally arranged such that the first snapshot image is to the left of the later occurring snapshot images, as previously described.

[0084] Taken together, the snapshot images give a quick history of game play by second friend F2. For example, first in snapshot image 370a, friend F2's character 309 (with two possible lives) is shown wading through a river. Thereafter, in snapshot image 370b, character 309 is shown walking through a forest and approaching a series of higher mountain peaks in the progression through the video game by friend F2. Further ahead in the progression, in snapshot image 370c, character 309 (with two possible lives) is shown climbing the wrong mountain peak. Still later, in snapshot image 370d, character 309 (with four possible lives) is shown free climbing a mountain wall, and then in snapshot image 370e, character 309 is shown crossing a lake by boat.

[0085] Window 350b displays another timeline 330 associated with game play of another user, such as third friend F3. As shown, timeline 330 includes snapshot images (380a, 380b, 380c, 380d, 380e, 380f,...) of game play by friend F3. In one embodiment, these snapshot images can be displayed as thumbnails and arranged with respect to current rendered image 305. For example, snapshot images occurring at points in the progression through the video game prior to the current rendered image (e.g., 380a, 380b,...) are arranged generally to the left of blank thumbnail 340c. These snapshot images can be readily identified by graying out the display content, as previously described. Snapshot image 380c occurs at the same point in the progression through the video game as current rendered image 305 and is generally located below blank thumbnail 340c. Snapshot images occurring at points in the progression through the video game subsequent to the current rendered image (e.g., 380d, 380e, 380f,...) are arranged generally to the right of blank thumbnail 340c. Further, the snapshot images in timeline 320 can be generally arranged such that a first snapshot image is to the left of a later occurring snapshot image, as previously described.

[0086] Taken together, the snapshot images give a quick history of game play by third friend F3. For example, character 303 of friend F3 is first shown riding a motorcycle through a forest in snapshot image 380a. Thereafter, as friend F3 progresses through the video game, snapshot image 380b shows character 303 (with two possible lives) wading through a river. Further along in the progression, snapshot image 380c shows character 3039 (with three possible lives) paddling a kayak down a waterfall. Still later, snapshot image 380d shows character 303 riding a jet ski across a lake, and then snapshot image 390e shows character 303 docking the boat at a pier. Even later in the progression, snapshot image 380f shows character 303 (with five possible lives) flying to the next destination in an airplane.

[0087] Although referred to as different timelines, all of the timelines in the window can be referred to as belonging to one timeline of the user playing the video game. In addition, in one embodiment, the timelines associated with other users (e.g., portions of timelines 320, 330, and 310) can be replaced with a timeline of a new user. In this manner, the user can be shown a rotating snapshot image of the user. In another embodiment, more timelines can be shown, or for clarity, a smaller number of timelines can be shown.

[0088] In yet another embodiment, the timeline in window 350a or 350b can display snapshot images associated with a completely different game or content. For example, the timeline can be presented to entice a user to preview and try another video game or to view other content. In another embodiment, one or more timelines of one or more users can be presented to a new user who is interested in playing a video game. The new user can not necessarily be playing the video game, but can be interested in previewing the game play of others who are playing the video game. In other cases, the new user can just be starting the video game. By way of illustration, a method for previewing a game world can be implemented in a video game having linear or non-linear progression in accordance with one embodiment of the present disclosure. Specifically, the method includes capturing a plurality of snapshots generated from a plurality of game plays of a plurality of users playing the video game. As previously described, each snapshot enables an instance of the video game to be executed from a point in the video game corresponding to that snapshot, such as a point in the video game at which the snapshot was captured. The method includes generating a first timeline of a first user for display, where the first timeline includes a plurality of first thumbnails including a plurality of first snapshot images of the game play of the first user progressing through the video game. The method can include presenting other timelines. For example, the method can include generating a second timeline of a second user for display, where the second timeline includes a plurality of second thumbnails including a plurality of second snapshot images of the game play of the second user progressing through the video game.

[0089] In embodiments, the timeline generated for one or more users can be associated with a video game having linear progression, multiple linear progressions, non-linear progression, or a combination thereof. For example, in a video game having linear progression, points in the video game can occur linearly with respect to each other, such that a first point precedes a second point in the corresponding linear progression. A split can present two or more linear extensions, each of which is associated with its own linear progression. In other embodiments, in a video game having non-linear progression, points in the video game can have no relationship with each other due to the non-linearity in progressing through the video game. For example, a non-linear video game can have multiple storylines operating in parallel with no relationship to each other, such as a video game exploring different parts of a world or different universes, and can or can not have a primary objective. In that case, the timeline displayed for a particular user can correspond to the same storyline the user is involved in, or can correspond to other storylines. Further, the storylines can operate with no relationship to each other, such that the corresponding storylines can be generated in a non-linear manner even in the parts of the world being explored or the universes being explored. In the case of a non-linear video game, a snapshot displayed in a particular timeline for another player can be arbitrarily arranged with respect to the current rendering image for the user, the timeline for the user, or the timeline for the other player. In still other embodiments, a video game can include both linear and non-linear portions. For example, in the case of a video game exploring different parts of a world or different universes in a non-linear manner, exploration within a particular part of the world or one universe can follow a linear progression.

[0090] Figure 4A is a diagram of a timeline 310a presented in window 350a in accordance with an embodiment of the present disclosure, where the timeline 310a has first been presented in Figure 3A presented in FIG. 3A, which displays snapshot images of game play of a video game of at least one user, where selection of a snapshot enables a zoomed view of the snapshot image. As previously described, window 300 displays a current rendering image 305 of game play of a video game by a user. Timeline 310a includes snapshot images (340a, 340b,...) of game play by the user (playing character 306) at points occurring before the current rendering image 305 in progression through the video game. Timeline 310 also includes snapshot images (360d, 360e, 360f,...) of game play by another user (e.g., friend Fl playing character 308) at points occurring after the current rendering image 305 in progression through the video game.

[0091] More specifically, the snapshot images are presented in timeline 310a through thumbnails. As such, depending on the size of the thumbnails, the reproduced images can be too small to exhibit much detail. The user can select a snapshot for zooming. For example, in one embodiment, the user can move cursor 490a over a thumbnail presenting snapshot image 360e. Other methods are supported for selecting a snapshot image for zooming, such as touching the displayed snapshot image on a touch screen. Window 410 is generated and displayed in approximately the same area as the selected thumbnail. Window 410 displays the reproduced snapshot image 360e, where window 410 is of sufficient size to give the user a better view of snapshot image 360e.

[0092] For purposes of clarity, an enlarged view of snapshot image 360e is presented in block 420. However, in one embodiment, block 420 can be displayed as a window that exhibits an even larger snapshot image 360e than the snapshot image 360e presented in window 410, through further selection of window 410 and / or snapshot image 360e. As previously described, snapshot image 360e is associated with the game play of another user (e.g., friend Fl playing female character 308), and exhibits character 308 encountering a bear. By scrolling through the snapshot images presented in timeline 310a and viewing the enlarged images, the user can preview the game play of friend Fl. In this manner, further selection by the user of a selected snapshot image presented in timeline 310a or a node in a node graph (described below) enables jump execution engine 216 of game processor 210 to access the corresponding snapshot, instantiate another instance of the video game based on the snapshot, and execute the video game from the point in the video game corresponding to the snapshot. For example, the user can experience the game play of another user (e.g., friend Fl), or go back and re-experience and / or replay his or her own game play.

[0093] Figure 4B is an illustration of one or more timelines presented in window 350b, each of the timelines exhibiting snapshot images of game play of a video game of at least one user, where selection of a snapshot enables an enlarged view of the snapshot image, according to one embodiment of the disclosure. Figure 4B The timelines shown in FIG. 3B have been previously described with respect to Figure 3Bare described, and include timelines 310b, 320, and 330. In particular, timeline 310b includes snapshot images of game play by the user playing character 306 at points occurring before the current rendered image 305 in the progression through the video game. Timeline 310b also includes snapshot images corresponding to snapshots captured during game play by friend Fl playing character 308 at points occurring before, approximately contemporaneous with, and after the current rendered image 305 in the progression through the video game. In one embodiment, the snapshot images are presented as thumbnails. Timeline 320 includes snapshot images (370a, 370b, 370c, 370d, 370e,...) corresponding to snapshots captured during game play by friend F2 playing character 309 at points occurring before, approximately contemporaneous with, and after the current rendered image 305 in the progression through the video game. Timeline 330 includes snapshot images corresponding to snapshots captured during game play by friend F3 playing character 303 at points occurring before, approximately contemporaneous with, and after the current rendered image 305 in the progression through the video game. As Figure 4B Interaction with the snapshot images of timeline 320 is further described, and thus the snapshot images in unmarked timelines 310b and 330 are facilitated to be understood, as shown in FIG. 4B.

[0094] More specifically, the snapshot images are presented in timelines 310b, 320, and 330 as thumbnails. Thus, depending on the size of the thumbnails, the rendered images can be too small to exhibit much detail. The user can select a snapshot in any of the timelines for magnification. While Figure 4A Selection of a snapshot image in a timeline associated with the user is shown, but Figure 4B Selection of a snapshot image in one of the timelines corresponding to a friend is shown for magnification. For example, in one embodiment, the user can move cursor 490b over the thumbnail presenting snapshot image 370d in timeline 320. Other methods are supported to select a snapshot image for magnification, such as touching the displayed snapshot image on a touch screen. A magnified window 460 is generated and displayed in approximately the same area as the selected thumbnail. Window 460 displays the rendered snapshot image 370d, where window 460 is of sufficient size (e.g., larger than the corresponding thumbnail) to give the user a better view of snapshot image 370d.

[0095] For purposes of clarity and understanding, an enlarged view of the snapshot image 370d is presented in block 465. However, in one embodiment, block 465 can be displayed as a window that showcases an even larger snapshot image 370d than the snapshot image 370d presented in window 460 by further selection of window 460 and / or snapshot image 370d. As previously described, the snapshot image 370d is associated with the game play of friend F2 and showcases the character 309 free climbing a steep rock wall. By scrolling through the snapshot images presented in the timelines 320 and viewing the enlarged image, the user can preview the game play of friend F2. In this manner, further selection of a selected snapshot image presented in the timelines 320 or a node in a corresponding node graph (described in greater detail below) by the user enables the jump execution engine 216 of the game processor 210 to access the corresponding snapshot, instantiate another instance of the video game based on the selected snapshot, and execute the video game from the point in the video game corresponding to the selected snapshot.

[0096] Figure 5A is a diagram of a node graph 530 of game play of a video game, where the node graph is displayed with timelines 310b, 320, and 330 in window 350b during game play of the video game by a user, the timelines 310b, 320, and 330 having been first displayed in Figure 3B described above. In particular, the timeline 310b showcases snapshot images of game play of the user playing the character 306 at various points, as well as snapshot images of game play of another user (e.g., friend Fl playing the character 308), the timeline 320 showcases snapshot images of game play of friend F2 playing the character 309, and the timeline 330 showcases snapshot images of game play of friend F3 playing the character 303. The snapshot images in each of the timelines are presented in relation to the current rendered image 305 (e.g., as represented by the blank thumbnail 340c), as previously described. The window 300 also showcases the current rendered image 305 of the game play of the video game by the user.

[0097] As shown in Figure 5A In one embodiment, the user can move the cursor 590a over the thumbnail presenting the snapshot image 360e in the timeline 310b. Other methods of selecting a snapshot image for enlargement are supported, such as touching the displayed snapshot image on a touch screen. The window 410 showcases the enlarged snapshot image 360e, as previously described.

[0098] In addition, a node graph 530 is presented in window 510. In one embodiment, node graph 530 includes a plurality of nodes that correspond to various paths that a character can select as the user progresses through the video game. In one embodiment, node graph 530 can be presented in window 510 as a general graph that exhibits all of the nodes of the video game, as will be further described in Figure 5B In one embodiment, node graph 530 can be presented to include a subset of the nodes of the general graph that exhibit nodes of particular interest, as will be further described in Figure 5C For example, the subset of nodes can correspond to the snapshot images displayed in one or more timelines.

[0099] While window 510 is shown in the lower right corner, it should be understood that window 510 can be located anywhere in window 300. In addition, window 510 can be of sufficient size to provide information suitable for viewing. Further selection can display window 510 as a magnified window within window 300, or display window 510 on a full screen.

[0100] As shown, node 572 in node graph 530 can be automatically highlighted (e.g., bolded, enlarged, colored, etc.) in response to the user selecting snapshot image 360e in timeline 310a for magnification. Node 572 generally corresponds to the location of snapshot image 360e, and gives the context within the universe of the video game for snapshot image 360e. That is, because the user is interested in snapshot image 360e, by selecting snapshot image 360e in timeline 310b, window 410 is presented that exhibits a larger view of snapshot image 360e, and node 572 is highlighted in node graph 530. Node 572 can also be highlighted by the user manually selecting the node in node graph 530.

[0101] In general, node graph 530 can be presented in window 510 automatically or in response to a user request, where node graph 530 includes a subset of nodes that correspond to snapshot images presented in timeline 310a. In addition, node 572 can be presented and highlighted, where node 572 exhibits the general location in the game play of the video game that corresponds to snapshot image 360e. Further, snapshot image 360e corresponding to node 372 can be presented in window 520, where window 520 is larger than window 410, and can exhibit an even larger view of snapshot image 360e.

[0102] In this manner, a multi-dimensional view of the video game is presented to the user. For example, the user is presented with a current view of his or her own game play through the rendered image 305. The user's game play (e.g., through the rendered image 305 and the snapshot images in the user's timeline) is also presented side-by-side with one or more timelines of one or more users, which show quick previews of the game play of the other users at various points of progress through the video game. The snapshot images can be presented with a node graph that shows the path through the video game associated with the snapshot images in the timeline, or all possible paths in the video game.

[0103] Figure 5B is an illustration of a generic node graph 550 or node tree that shows all possible paths available in a video game, according to one embodiment of the disclosure. The generic node graph 550 can be displayed in the window 510 of Figure 5A . For example, the video game can include a start point as indicated by node 551, and an end point as indicated by node 552. While one end point is shown, the generic node graph can generally have one or more end points, representing one or more options to complete the video game. In addition, the video game can have one or more start points represented in the corresponding generic node graph.

[0104] The generic node graph 550 includes a plurality of nodes (e.g., logical nodes) that define various logical paths (also referred to as "paths" in this specification) that can be selected by a character as the user progresses through the video game. For example, a logical path 511 is defined between nodes 502 and 503. In addition, the generic node graph 550 can also include a subset of nodes. For example, the node graph 530, which is a subset of the generic node graph 550, includes nodes and paths corresponding to the snapshot images displayed in the timeline 310b of Figure 5B . The node graph 530 also shows in the window 510 of Figure 5A .

[0105] The plurality of logical paths can be configured to progress through the generic graph 550 in a linear fashion from node to node. For example, the user moves through the node graph 530 in a linear fashion (e.g., from node 510 to node 502, and then to node 503) along logical paths 514 and 511 between nodes 501 to 503. That is, no other logical paths can be taken when passing between node 501 and node 503.

[0106] Additionally, multiple logical paths can be configured to progress from node to node in a non-linear fashion. For example, the user moves through the node graph 550 in a non-linear fashion when reaching node 503 along logical path 511. Specifically, at node 503, two options are available, where in a first option the character can take path 512, and in a second option the character can take path 513. Different outcomes can result from taking the two different paths.

[0107] The progression through the video game can generally be defined by a universal timeline 529, which begins at a time or marker 521 associated with a start point 551 and ends at a time or marker 522 associated with an end point 552. The use of time in the timeline 529 is intended to show progression through the video game, and is not necessarily a measure of how long the user has played the video game. As the user moves from node to node through the universal node graph 530, representative times or markers can be located on the timeline 529. For example, node 501 can be represented as marker 523 and node 503 can be represented as marker 524 in the timeline 529. Progression can be measured from left to right along the timeline 529. As an illustration, node 501 occurs before node 503 in the progression through the video game. Thus, the marker 523 representing node 501 is displayed to the left of the marker 524 representing node 503. Furthermore, the progression can be further illustrated in association with the timeline 529 and the node graph 550 by various character values associated with the user, as previously described. For example, the progression can be measured by how many possible lives are available to the character, or how many points or cash the character has accumulated.

[0108] Figure 5C is an expanded illustration of the node graph 530 first introduced in Figure 5A , which shows the hierarchy of snapshot nodes generated in association with snapshots captured during game play of the video game. In one embodiment, the node graph 530 is displayed during game play of the video game by the user along with one or more timelines (e.g., timelines 310b, 320, and 330). For example, the node graph 530 can be displayed in the window 510 of Figure 5A , or can be displayed in an even larger window. To illustrate, an expanded view of the node graph 530 displayed in the window 510 is shown in Figure 5C . The outline of the window 350b is presented in Figure 5C for reference to the corresponding snapshot nodes in the snapshot image and node graph 530.

[0109] In particular, the snapshot nodes correspond to points in the game play of the video game at which a snapshot was captured. Generally, the snapshots can be captured at nodes of the universal node graph 550. As such, the snapshot nodes can align with the nodes in the universal node graph 550. However, some snapshot nodes can not align with nodes in the universal graph 550, such as when a snapshot was captured between two nodes of the universal graph (e.g., in the middle of a logical path). For example, snapshot node 561 can be captured between two nodes in the universal node graph 550 (corresponding to nodes 560 and 562).

[0110] The node graph 530 includes a plurality of snapshot nodes that define various actual paths that the character has taken during the game play of the corresponding user. For example, a path 579 is defined between snapshot nodes 560 and 561. The path 579 is shown as having been taken in the game play of the user as well as the game play of friend Fl. The node graph 530 can show one or both of linear and non-linear paths as defined in the game play of one or more users.

[0111] In one embodiment, the node graph 530 corresponds to the snapshot images shown in timelines 310b, 320, and 330 displayed in window 350. For example, snapshot node 562 corresponds to box 340c representing the current rendered image 305 of the user, snapshot node 507 corresponds to snapshot image 360e of friend Fl, snapshot node 595 corresponds to snapshot image 370a of friend F2, and snapshot node 565 corresponds to snapshot image 380d of friend F3. In this manner, the user is presented with at least two or more related views of the video game, such as the snapshot images and the current rendered image in the timelines and the snapshot nodes in the node graph 530. By interacting with the current rendered image 305 (as well as their locations in the node graph 530) and the other snapshot images (and their locations in the node graph 530), the user is able to understand which paths are available to the user near the point in the video game associated with the current rendered image. As such, the user is able to orient the character 306 within the universal node graph 550 and the node graph 530 of the video game. In this manner, the user is able to navigate from one point to another in the game. In one embodiment, although the snapshot nodes are shown in the node graph 530, the node graph 530 can include nodes that define logical paths as defined by the universal node graph 550. Figure 5C

[0112] ​More specifically, the path taken by the user playing the role 306 is illustrated by dashed line A with a fine resolution. For example, the user has traveled between snapshot nodes 560, 561, and 562. From snapshot node 562, the user's role 306 has taken a first route that travels upward from snapshot node 562 through snapshot nodes 563 and 564, and a second route that travels downward from snapshot node 562 through snapshot nodes 565 to 569 (e.g., from node 565 to node 566 to node 567 to node 568 and to node 569). The path taken by the role 308 of friend Fl is illustrated by solid line B. For example, the role 308 of friend Fl has traveled along a path defined by snapshot nodes 560, 561, 562, 565, 570, 571, 572, 573, and 574. In addition, the path taken by the role 308 of friend F2 is illustrated by dashed line C with a coarse resolution. For example, the role 308 of friend F2 has traveled along a path defined by snapshot nodes 595, 596, 597, 598, 599, and 569. The path taken by the role 303 of friend F3 is illustrated by line D, and shows that the role 303 has traveled along a path defined by snapshot nodes 560, 581, 582, 583, 565, 584, 585, and 568.

[0113] In the progress of the video game, the user has taken a path that occurs after or future to snapshot node 562, which corresponds to the point in the video game associated with the current rendered image 305, but has adjusted back to snapshot node 562. For example, the first route taken after snapshot node 562 and ending at snapshot node 564 can have reached a dead end. In addition, the second route taken after snapshot node 562 and ending at node 569 can not have been satisfactory to the user. Snapshot images corresponding to snapshot nodes that occur after the current rendered image 305 associated with the user is not illustrated in timeline 310b, but can be illustrated in other embodiments.

[0114] The user has returned to node 562 in the game progression because the user can have heard rumors in this area about an exciting part of the video game (encountering a bear), but has missed the action so far. The user believes that the exciting part can be reached somehow through node 562. Embodiments of the present disclosure provide a way for the user to discover alternative paths through the video game by previewing other users' game play, and arranging a possible route to take in the video game to reach the exciting part of the video game. For example, the user can preview a snapshot image of friend Fl playing character 308 in timeline 310b, and discover that encountering a bear occurred in association with snapshot node 507, which corresponds to snapshot image 360e. For reference, snapshot image 360e is illustrated in block 509. Without the introduction of the snapshot images and / or node graphs presented in the timeline, the user would have difficulty previewing and / or discovering these areas of interest.

[0115] In particular, the user can have discovered snapshot image 360e by viewing the snapshot images in timeline 310b, or can have discovered the snapshot image 360e by exploring node graph 530. For example, the user can have noticed label 507 next to snapshot node 572 in node graph 530, which can have caught the user's attention. By interacting with node 572 in node graph 530, the user can be presented with a view of snapshot image 360e, such as in window 520. Figure 5C Figure 5A In particular, the user can have discovered snapshot image 360e by viewing the snapshot images in timeline 310b, or can have discovered the snapshot image 360e by exploring node graph 530. For example, the user can have noticed label 507 next to snapshot node 572 in node graph 530, which can have caught the user's attention. By interacting with node 572 in node graph 530, the user can be presented with a view of snapshot image 360e, such as in window 520.

[0116] ​After previewing friend Fl's game play and node graph 530, the user can wish to further explore the video game corresponding to the snapshot image 360e, and more specifically, explore friend Fl's game play. As previously described, embodiments of the present disclosure enable the user to jump into friend Fl's game play. Specifically, further selection of the snapshot image 360e by the user through the timeline 310b or the node graph 53 enables the jump execution engine 216 of the game processor 210 to access the snapshot corresponding to the snapshot image 360e, instantiate another instance of the video game based on the snapshot, and execute the video game from the point in the video game corresponding to the snapshot and its snapshot image 360e (now identified as the jump point) in the video game. In this manner, the user can fully experience the video game through friend Fl's game play at node 507 (encounter bear). That is, the user jumps into friend Fl's character 308 at jump node 572 and plays the instantiation of friend Fl's game play from the point in the video game corresponding to the jump node 572 (which corresponds to the snapshot image 360e). Thus, the user is able to jump into the game play at the most exciting part.

[0117] After experiencing friend Fl's game play, the user can decide to attempt to navigate to the same snapshot node 572 (encounter bear) previously captured by friend Fl's game play. The node graph 530 provides a view of the route taken by friend Fl in order to reach the snapshot node 572 from the user's current location, which is node 562 associated with the current rendered image 305. For example, the node graph shows that the travel between node 562 and snapshot node 572 can be through snapshot nodes 565 and 570.

[0118] Figure 5D is an expanded illustration of a node graph 540 showing the hierarchy of snapshot nodes generated in association with snapshots captured during game play of a video game according to one embodiment of the present disclosure. The node graph 540 can be related to the node graph of Figure 5C The node graph of can be related to the node graph of, but is used to illustrate a timeline used in a video game having non-linear progression portions. For example, game play within one level can be unrelated to game play within another level. Additionally, game play by different users within a single level can also be unrelated to each other in terms of progression through the video game.

[0119] As shown in the node graph 540, the video game can include four different levels that can be played within the video game. In the video game, it is possible to travel between levels. For example, game play by the user, friend 1, and friend 2 travels through all four levels. Game play by friend 3 travels through three levels. Game play by friend 4 travels through only level 2. Game play by friend 5 travels through levels 3 and 4. As Figure 5DAs shown in FIG. 3, the video game can start at any level. For example, the game play of friend 4 starts at level 2 and stays at level 2, and the game play of friend 5 starts at level 3 and proceeds to level 4 without extending to any other level. While some game play can overlap and exhibit some linear progression portion (e.g., the game play of user and friend 1), other game play as shown in FIG. 3 can exhibit non-linear progression through the video game. For example, the game play and progression through the video game of friend 4 is independent of the game play and progression through the video game of friend 5. Figure 5D

[0120] Figure 6A FIG. 3 is a diagram of a set of snapshot nodes that are closely and linearly aligned with a selected snapshot node (e.g., snapshot node 572 associated with snapshot image 360e), in accordance with one embodiment of the present disclosure, where the snapshot nodes can be selected through timeline 310a or node chart 530. In particular, timeline 310a includes snapshot images (340a, 340b,...) of game play by the user that occurred at points in the progression through the video game that precede the current rendered image 305 (as represented by the blank thumbnail 340c). Timeline 310a also includes snapshot images (360d, 360e, 360f,...) that correspond to snapshots captured during game play by friend Fl, as previously described. Furthermore, each of the snapshot images corresponds to a snapshot node, such as the snapshot nodes presented in node chart 530.

[0121] Timeline 310a can exhibit selected snapshot images from a plurality of snapshots captured during game play by the user and friend Fl. The snapshots and snapshot images for friend Fl are used to illustrate presentation of snapshot images at coarse resolution and at higher resolution. For purposes of illustration, during game play by friend Fl, one hundred snapshots were captured and can be numbered from 1 to 100 in the order in which they were captured. Timeline 310a can not have enough space to exhibit all of the snapshot images corresponding to the captured snapshots. As such, only a subset of the snapshot images are presented in timeline 310a. Furthermore, the snapshot images presented side-by-side in timeline 310a can not have been captured consecutively and / or sequentially. For example, as shown in timeline 310a of FIG. 3, snapshot image 360e is numbered 50 in the order of capture and the snapshot image immediately to the right is snapshot image 360f numbered 60. As such, nine snapshot images were captured between snapshot image 360e and snapshot image 360f, but these nine snapshot images are not exhibited in timeline 310a. Figure 6A

[0122] ​​In one embodiment, a more granular resolution of snapshot images can be generated and presented for display based on the captured snapshots. Specifically, a further selection of a snapshot image, such as image 360e, through timeline 310a or through node graph 530 will enable the presentation of the snapshot image in a higher resolution. Further, in one embodiment, the snapshot images are presented in a node graph / tree configuration that illustrates the path taken by the user (e.g., friend Fl) during the game play. That is, each snapshot image represents a node and the snapshot images are presented in a node graph configuration. For example, a window can display snapshot nodes through their corresponding images of the snapshot nodes, where the snapshot nodes are sequentially captured before and / or after the snapshot corresponding to the selected snapshot image 360e. Snapshot image 360e corresponds to a jump point that was selected by the user to initiate the game play of friend Fl, as previously described. The user can want to view various snapshot images associated with snapshot image 360e before or after being selected as a jump point.

[0123] As Figure 6A shown in FIG. 6, a linear progression of snapshot images is presented in various thumbnails with respect to the selected snapshot image 360e. Snapshot image 360e and its corresponding snapshot are also referred to as a jump point (JP), as previously described. The selected snapshot image 360e and JP are associated with snapshot number 50 in the order of the captured snapshots. Figure 6A As shown, four snapshot images 610, 360e, 615, and 620 are illustrated and correspond to one snapshot captured before the JP (snapshot JP-1), the JP, and two snapshots captured after the JP (snapshots JP+1 and JP+2). That is, the snapshot images correspond to consecutively numbered snapshots 49-52. For example, snapshot image 610 (JP-1), snapshot image 360e (JP), snapshot image 615 (JP+1), and snapshot image 620 (JP+2) are consecutively ordered as 49-52. In this manner, the user is able to view the actions in the game play of friend Fl in higher resolution in the vicinity of snapshot image 360e in the node graph configuration.

[0124] Figure 6B is an illustration of a set of snapshot nodes that are closely and non-linearly aligned with a selected snapshot node (e.g., snapshot node 572 corresponding to snapshot image 360e) in accordance with one embodiment of the present disclosure, where the snapshot nodes can be selected through timeline 310a or node graph 530, as previously introduced with respect to Figure 6A Although Figure 6A illustrates a linear progression through the video game in the vicinity of the jump point JP corresponding to snapshot image 360e, but Figure 6B illustrates a non-linear progression through the video game in the vicinity of the JP.

[0125] For example, the snapshot images are presented in a node graph / tree configuration that illustrates the path taken by friend Fl during the game play. That is, each snapshot image represents a node and the snapshot images are presented in a node graph configuration. As Figure 6B As shown in FIG. 6, the non-linear progression of snapshot images is presented in various thumbnails with respect to a selected snapshot image 360e, also referred to as JP with sequence number 50. Eight snapshot images are illustrated. In particular, snapshot image 605 corresponds to snapshot node JP-2 with sequence number 48. In addition, snapshot image 610 corresponds to snapshot node JP-1 with sequence number 49, where snapshot node JP-1 is a decision node that illustrates the non-linear configuration. There are two choices available, as represented by sequence numbers 50A-B. One choice that emanates from snapshot node JP-1 leads to snapshot image 613 with sequence number 50B. The other choice that emanates from snapshot node JP-1 leads to snapshot node JP, which corresponds to snapshot image 360e and sequence number 50A. This route continues through consecutively numbered snapshots JP+1 (with respect to snapshot image 615 and sequence number 51) and JP+2 (with respect to snapshot image 620 and sequence number 52).

[0126] Figure 6C F is a snapshot image that corresponds to a set of snapshot nodes that are closely aligned with the selected snapshot node and with respect to Figure 6A B describes. For example, Figure 6C Snapshot image 610 is illustrated and shows that character 308 first encounters the bear as it leaves its cave during the game play of friend Fl. Snapshot image 610 corresponds to snapshot node JP-1 with sequence number 49. Figure 6D Snapshot image 360e (with respect to JP and sequence number 50) is illustrated and shows that character 308 is in close contact with the bear. Character 308 is shown with a coiled rope in hand, which is presumably the only tool and / or weapon available to character 308. Figure 6E Snapshot image 615 (with respect to snapshot node JP+1 and sequence number 51) is illustrated and shows that character 308 has tamed the bear by using the rope to tie each of the bear's legs to a tree. Figure 6F Snapshot image 620 (with respect to snapshot node JP+2 and sequence number 52) is illustrated and shows that character 308 is enjoying the fruits of her victory over the bear: weapons and other reward items (e.g., gold coins, gems, etc.) are available for the taking.

[0127] Figure 7is a diagram of snapshots captured during game play of a video game, and storing each of the snapshots as a separate master file of data store 750, in accordance with one embodiment of the present disclosure. As the user progresses through the video game, these master files are not automatically erased or overwritten, as is typical in the industry. In this manner, information and metadata related to each snapshot can be readily accessed at any time to present snapshot images (e.g., in a timeline), node graphs, and enable jumping to a jump point in the game play of the same or other users.

[0128] For example, a plurality of snapshots are captured with respect to a game play of a particular user. The snapshots are consecutively numbered in the order in which they are captured (i.e., 1-N). As shown in FIG. 7A, at least snapshot 711 (order 20), snapshot 712 (order 31), snapshot 713 (order 32), and snapshot 714 (order 33) are captured. Figure 7 For example, a plurality of snapshots are captured with respect to a game play of a particular user. The snapshots are consecutively numbered in the order in which they are captured (i.e., 1-N). As shown in FIG. 7A, at least snapshot 711 (order 20), snapshot 712 (order 31), snapshot 713 (order 32), and snapshot 714 (order 33) are captured.

[0129] Each snapshot includes sufficient information and / or metadata to load and execute an instance of the video game from the point in the video game corresponding to the snapshot. For example, each snapshot includes at least game state data stored in database 145, snapshot image data stored in database 146, random seed data stored in database 143, and user saved data stored in database 141, as previously described. In one embodiment, the metadata includes input commands used to drive the instance of the video game at and between two consecutively ordered snapshots. Each snapshot is stored in a corresponding master file in data store 750, where the master file corresponding to a particular snapshot can include pointers to each of these databases for relevant access. As shown, snapshot 711 is stored in master file 751, snapshot 712 is stored in master file 752, snapshot 713 is stored in master file 753, and snapshot 714 is stored in master file 754.

[0130] Figure 8is an illustration of multiple segments of a user's game play of a video game according to one embodiment of the disclosure, including a jump into a separate jump game play based on a snapshot taken during another game play of the video game by the same or another user. For example, a user playing a game with character 306 can choose to jump into a game play of friend Fl (with character 308) at a jump point (JP) defined by snapshot image 360e, the current rendered image 305 of the game being displayed on window 300, as previously described with respect to FIGS. 3-6. Timeline 310a and / or 310b provide the user with a preview of snapshot image 360e. Further, node chart 530 gives context to the snapshot image within the video game, as snapshot image 360e can be associated with its corresponding location at snapshot node 572 (e.g., by highlighting, etc.), as previously described. Based on the snapshot taken at snapshot node 572 during the original game play of friend Fl, the user is enabled to initiate a jump into the game play of friend Fl and character 308. The jump can be enabled by a further selection of snapshot image 360e in timeline 310a or 310b, or by a selection of node 572 in node chart 530. Support for initiating a jump into a game play of the same or another user can be implemented by any means or method (e.g., a jump selection window, etc.).

[0131] In one embodiment, multiple snapshots are taken during the jump game play. Further, a video recording of the jump game play can be captured and stored for later access. In this manner, any user can play the jump game play through any snapshot in the jump game play. In one embodiment, snapshot images of the jump game play are put into a timeline through which the jump game play can be instantiated, as previously described.

[0132] A user's interaction with a video game can be described with respect to segments of the user's game play 830. As shown, the user's game play 830 includes a first segment 831 and a second segment 832. Specifically, the first segment 831 of the user's game play 830 defines the user's current or initial interaction with the video game. As such, Figure 3A The current rendered image 305 of the game can be associated with the first segment 831. To illustrate, snapshot node chart 810 shows the snapshot image 360a taken at snapshot node 362a during the first segment 831 of the user's game play 830, as previously described with respect to FIGS. 3-6. Further, snapshot node chart 810 shows the snapshot image 360b taken at snapshot node 362b during the second segment 832 of the user's game play 830, as previously described with respect to FIGS. 3-6. Figure 5CA portion of the described node graph 530. The path taken by the character 306 in a first segment 831 of the user's game play 830 is illustrated by the dashed line 811 and includes the snapshot nodes 560, 561, and 562. The current rendered image 305 is associated with the snapshot node 562 and indicates the end of the first segment 831 for purposes of illustration and clarity, although the snapshot node graph 810 illustrates that the character 306 has proceeded further (e.g., advanced further) to the right of the snapshot node 562 through one path 812 to the nodes 563 and 564, and through a second path 813 to the nodes 565 and 566. This portion of the path taken by the character 306 (ending with the snapshot node 562) is also repeated in the node graph 820, which illustrates the user's game play with the character 306 up to the end of the first segment 831.

[0133] At the snapshot node 562, the user can choose to explore other points in the video game and choose to jump into the game play of friend Fl (e.g., further selection of the snapshot image 360e), as previously described. The game play of friend Fl is illustrated by the bolded solid line 899 of the snapshot node graph 810. At this point, the first segment 831 of the user's game play 830 is paused, and the user jumps into the game play of friend Fl at the point corresponding to the snapshot node 572. To illustrate, the jump game play starts at the point where the character is in close combat with the bear. Specifically, the instance of the video game executing the user's game play 830 is paused (e.g., the end of the first segment 831), and an instance of the video game is instantiated based on the corresponding snapshot captured at the snapshot node 572, which instance executes the jump game play of friend Fl starting at the jump point (snapshot node 572). The representation of the jump to the node 572 is illustrated by the curved arrow 891. The jump game play is defined by the jump segment 840.

[0134] In another embodiment, prior to starting the jump game play, the user's game play 830 is saved and terminated at the end of the first segment 831. In this manner, the user can return to the video game in the future and resume from the point corresponding to the snapshot node 562 (e.g., the end of the first segment 831). That is, the user can effectively resume the paused game.

[0135] In one embodiment, the instance of the video game in which the user's game play 830 is executed is separate from the instance of the video game in which the jump game play is executed, through which the user interacts, where the jump game play is based on the original game play of friend Fl. To illustrate, the snapshot node graph 850 shows the path taken by character 308 in the jump segment 840 of the jump game play in which the user plays, where the character 308 in the jump game play was originally created and defined by the game play of friend Fl. The path taken in the jump game play is illustrated by the bolded dashed line 896.

[0136] The path taken by character 308 in the jump game play, as illustrated in the node graph 850, begins at snapshot node 572 and continues consecutively to nodes 851, 852, and end node 859. End node 859 indicates termination of the instance of the video game in which the jump game play is executed. It is important to note that the path taken by character 308 in the jump game play, including nodes 572, 851, 852, and 859, is different from the path 897 taken by character 308 in the game play of friend Fl, including nodes 572, 573, and 574, as illustrated by dashed line 896 in node graph 810. That is, the jump game play executed by the user is different from the previously stored game play of friend Fl, as the user provides new input commands to direct the jump game play. For example, in the jump game play, it can happen that the bear is not successfully encountered, as the user can quickly preview the game at this point to decide whether to play this portion of the video game in his or her own game play 830. On the other hand, the game play of friend Fl can show that the bear was successfully encountered.

[0137] In one embodiment, during the jump game play, a snapshot can be captured at each of the nodes illustrated in the jump segment 840 (e.g., nodes 572, 851, 852, and 859). The jump game play and its associated snapshots can be stored for later access. In addition, a video recording of the jump game play can be recorded and stored. For example, a user can wish to review and instantiate a jump game play created by the user and associated with a video game. In other embodiments, a user can wish to review and instantiate a jump game play associated with other video games, where the jump game play was created by the user or other users. In addition, any user can experience a user's jump game play through the captured snapshots and through a recently instantiated secondary jump game play. Specifically, selected snapshots captured during the jump game play can be used to instantiate an instance of the game application to perform a secondary jump game play based on the selected snapshots captured during the primary jump game play. Thus, any user can be able to experience any previous jump game play created by the same user or can be able to experience other players' stored jump game plays.

[0138] After the jump game play is performed, the user's game play 830 can be resumed. The user has now previewed friend Fl's game play and can wish to have his or her own character 306 arrive at the snapshot node 572 associated with the jump point. In this manner, the user's game play 830 can include a route toward the jump point so that the character in the user's game play will likewise encounter the bear.

[0139] The snapshot node graph 820 illustrates the route taken by the character in the user's now resumed game play 830. The resumption of the game play 830 is defined by the second segment 832, where the resumed game play is defined by the bolded dashed line 809. Thus, the entire game play 830 by the user is illustrated by the first segment 8310 (dashed line 811) and the second segment 832 (bolded dashed line 809). In one embodiment, the second segment 832 of the game play 830 continues the instance of the video game that was paused. In another embodiment, the second segment 832 of the game play 830 is performed on a new instance of the video game that begins at the point of the video game associated with the snapshot 562 because the first segment 831 has terminated. The second segment 832 begins at the snapshot node 562 and continues consecutively to the snapshot nodes 821, 822, 823, 824, and 829.

[0140] In the node graph 820, the snapshot node 823 generally corresponds to the snapshot node 572 associated with the jump point. For example, the user wants to encounter the bear in his or her own game play 830. Specifically, navigating to the snapshot node 572 in the user's game play can be made by the user through the snapshot node graph 530 and / or the general node graph 550. Specifically, the user can discover the available possible paths between the snapshot node 562 and the snapshot node 572 encountered by other users (e.g., friend Fl) by reviewing the snapshot node graph 530. Additionally, the user can discover the general logical path available between the snapshot node 562 and the snapshot node 572 by reviewing the general node graph 550. In this manner, the user can navigate to the snapshot node 823 (e.g., through the nodes 821 and 822) and encounter the bear. It is important to note that the nodes 821 and 822 generally align with, but can not be identical to, the snapshot nodes 565 and 570 originally captured during the game play of friend Fl. The snapshot nodes 823, 824, and 829, etc. illustrate the route taken in the user's game play 830 in the second segment 832, where the character 306 now encounters the bear and engages in combat with the bear. The route taken after initially encountering the bear at the snapshot node 823 (including the nodes 824, 829, etc.) can be neither identical to the route in the jump game (e.g., the nodes 572, 851, 852, and 859) nor identical to the route in the game play of friend Fl (e.g., the nodes 572, 573, and 574). This is because the user's game play 830 has its own unique input commands to drive the video game.

[0141] The snapshot nodes 823, 824, and 829, etc. illustrate the route taken in the user's game play 830 in the second segment 832, where the character 306 now encounters the bear and engages in combat with the bear. The route taken after initially encountering the bear at the snapshot node 823 (including the nodes 824, 829, etc.) can be neither identical to the route in the jump game (e.g., the nodes 572, 851, 852, and 859) nor identical to the route in the game play of friend Fl (e.g., the nodes 572, 573, and 574). This is because the user's game play 830 has its own unique input commands to drive the video game.

[0142] Having described various modules of the game server and client devices that communicate via a network, a method for browsing a game world of a video game executed via a game network is now described with respect to the flowchart 900 in accordance with one embodiment of the present disclosure. Figure 9 The flowchart 900 illustrates the process and data flow of the operations involved at the game server side in order to generate information that is displayed at the client devices via the network.

[0143] The method starts with operation 910 and includes capturing a plurality of snapshots generated from a plurality of instances of a video game executed in association with a plurality of users. Specifically, an instance of the video game is being executed by one or more game processors 210 of one or more game servers 205. As each instance of the video game is being executed, one or more snapshots are captured, where the snapshots enable execution of an instance of the video game from a point in the video game corresponding to that snapshot, as previously described. Figure 1

[0144] ​In particular, the snapshot includes a snapshot image, which includes a rendered image, which is generated by an instance of the video game executed in association with the game play of the corresponding user. The rendered image presents a scene of the video game, which corresponds to a point in the video game, where the point presents progress of the user in the game play of the video game.

[0145] Additionally, the snapshot further includes game state data, which enables generation of an environment corresponding to the point in the video game. That is, based on the snapshot, a corresponding scene and environment are generated, in which a character is directed to interact with the environment through the game play of the user.

[0146] Further, the snapshot includes random seed data, which provides additional characteristics to the scene and environment, as previously described. For example, cloud configuration and movement of one or more generic characters can be uniquely generated for inclusion into the scene and environment associated with the game play of the user. As such, the cloud configuration and movement of the one or more generic characters can be different for each instance of the video game.

[0147] Additionally, the snapshot includes user saved data, which enables generation of a character for the game play of the corresponding user. The character has a first state corresponding to the point in the video game at which the snapshot is captured. For example, the first state defines an appearance and type of the character, clothing worn by the character, a level achieved for the character, weapons available to the character, a state of life for the character at that point, etc.

[0148] At operation 920, the method includes generating a first timeline of a first user playing the video game for display. The first timeline includes snapshot images of at least one user (the first user and / or other users) progressing through the video game. The snapshot images in the timeline are displayed in relation to a current rendered image of a first instance of the video game executed in association with the first user. Each snapshot image can be interactively referenced with a corresponding snapshot. The current rendered image is associated with a current point in progress of the video game by the first user.

[0149] At operation 930, the method includes generating a plurality of first thumbnails for display in the first timeline, which includes a plurality of first snapshot images associated with the first user. That is, the first thumbnails present progress of the first user through the video game. In particular, the plurality of first snapshots includes at least one rendered image presenting past progress of the first user compared to the current rendered image.

[0150] At operation 940, the method includes generating a plurality of second thumbnails for display in the first timeline, the plurality of second thumbnails including a plurality of second snapshot images associated with the second user. That is, the second thumbnails showcase the second user's progression through the video game. In particular, the plurality of second snapshot images includes at least one replay image that showcases the second user's future progression at a point in the video game after the current replay image.

[0151] In other implementations, the plurality of second snapshot images showcase the second user's past and / or current progression. For example, the second snapshot includes at least one replay image that showcases the second user's progression at a point in the video game before the current replay image that is generated for display at the first user's client device.

[0152] In still other embodiments, a further timeline can be generated for display at the client device. For example, a second timeline of a third user is generated for display. The second timeline includes a plurality of third snapshot images of the third user. The second timeline includes a plurality of replay images that showcase the third user's progression during game play of the video game at a plurality of points in the video game before and after a current replay image, the current replay image being associated with the first user's game play.

[0153] As previously described, the selected snapshot image enables the jump execution engine 216 of the game processor 210 to access a snapshot corresponding to the snapshot image, instantiate another instance of the video game based on the snapshot, and begin executing the video game at a point in the video game corresponding to the snapshot, now identified as a jump point. For example, the game processor 210 receives a selection of a selected snapshot image from the plurality of second snapshots in the first timeline by the first user, where the selected snapshot image is associated with the second user's game play. Further, the game processor is configured to jump execution of the first instance of the video game being executed in association with the first user's game play to a jump point in the video game associated with the selected snapshot image. In one implementation, the first instance of the video game is paused and / or terminated, and another instance of the video game (jump game) is instantiated based on the snapshot of the selected snapshot image.

[0154] In this manner, the first user can jump into the second user's game play. For example, the first user can direct a character used in the second user's game play in the jump game. The corresponding snapshot of the selected snapshot image includes second user saved data that enables generation of a character used in the second user's game play and also used in the jump game play for the first user. The second user saved data and the second character originate from the second user's game play. Thus, the first user creates the jump game play during execution of the jump game.

[0155] After the first user completes the jump game, the first instance of the video game can be resumed. That is, execution of the second instance of the video game that executes the jump game is terminated and the first instance of the video game associated with the first user's game play is resumed. In this manner, the first user can resume his or her own game play of the video game.

[0156] The first user can also select a snapshot image in the first user's previous game play. For example, the game processor can be configured to receive a selection of a selected snapshot image of a plurality of first snapshot images associated with the previous game play. Execution of the first instance of the video game is jumped to a jump point in the video game associated with the selected snapshot image. In one implementation, the jump is implemented by another instance of the video game based on a snapshot corresponding to the selected snapshot image. In another implementation, the jump is implemented by the first instance of the video game.

[0157] Additionally, a node graph can be generated for display at the client device. The node graph includes a plurality of snapshot nodes corresponding to the snapshot images displayed in the timeline, as previously described. The plurality of snapshot nodes define a plurality of paths, where the paths and nodes are associated with the game play of the first and second users. Each node in the node graph is associated with a corresponding snapshot.

[0158] Further, the node graph can allow the first user to jump into the game play of the same or another user. For example, the game processor is configured to receive a selection of a selected snapshot node in the node graph. The snapshot node is associated with a corresponding snapshot. A selected snapshot image corresponding to the selected snapshot node can optionally be generated for display at the client device. Specifically, selection of the selected snapshot node and / or the corresponding snapshot image enables jumping execution of the first instance of the video game executed in association with the first user's game play to a jump point in the video game associated with the selected node.

[0159] While specific implementations have been provided to demonstrate the generation and capture of a snapshot of a point in a game play of a video game for multiple users, the snapshot being used to preview and / or jump to a previously performed game play of the same or another user, these implementations are described by way of example and not by way of limitation. Further implementations within the spirit and scope of the disclosure will be apparent to those skilled in the art upon reading this disclosure.

[0160] It should be noted that access services delivered over a wide geographic area, such as providing access to the games of the current implementations, typically use cloud computing. Cloud computing is a way of delivering computing as a service over the Internet, where resources are dynamically scalable and typically virtualized. Users do not need to be experts in the technology infrastructure in the "cloud" that supports them. Cloud computing can be divided into different services, such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Cloud computing services often provide common applications online that are accessed from a web browser, such as video games, while the software and data are stored on servers in the cloud. The term cloud is used as a metaphor for the Internet, based on how the Internet is depicted in computer network diagrams and is an abstract concept that conceals the complex infrastructure of the Internet.

[0161] A game processing server (GPS) (or simply "game server") is used by game clients to play single or multiplayer video games. Most video games played over the Internet operate via a connection to a game server. Typically, games use a dedicated server application that collects data from the players and distributes it to the other players. This is more efficient and effective than a peer-to-peer arrangement, but it requires a separate server to host the server application. In another implementation, the GPS establishes communication between the players and their respective game playing devices to exchange information without relying on a centralized GPS.

[0162] A dedicated GPS is a server that runs independently of the clients. Such servers typically run on dedicated hardware located in a data center, providing greater bandwidth and dedicated processing power. Dedicated servers are the preferred method of hosting game servers for most PC-based multiplayer games. Large multiplayer online games run on dedicated servers, typically hosted by the software company that owns the game title, allowing them to control and update the content.

[0163] A user accesses a remote service with a client device that includes at least a CPU, a display, and I / O. The client device can be a PC, a mobile phone, a netbook, a PDA, etc. In one embodiment, a network recognizes the type of device used by the client and adjusts the communication method used. In other cases, the client device uses a standard communication method, such as html, to access an application on the game server via the Internet.

[0164] Embodiments of the present disclosure can 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 present disclosure can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a wired or wireless network.

[0165] It should be appreciated that a given video game can be developed for a particular platform and a particular associated controller device. However, when such a game is made available through a game cloud system as presented herein, a user can access the video game with a different controller device. For example, a game can have been developed for a game console and its associated controller, while a user can be accessing a cloud-based version of the game from a personal computer with a keyboard and mouse. In such a case, an input parameter configuration can define a correspondence between inputs that can be generated by the user's available controller device (in this case, a keyboard and mouse) to inputs that are acceptable for executing the video game.

[0166] In another example, a user can access a cloud game system through a tablet computing device, a touch screen smart phone, or other touch screen driven device. In this case, the client device and the controller device are integrated together in the same device, with inputs being provided by way of detected touch screen inputs / gestures. For such a device, an input parameter configuration can define particular touch screen inputs that correspond to game inputs for a video game. For example, buttons, a directional pad, or other types of input elements can be displayed or overlaid during the running of the video game to indicate locations on the touch screen that a user can touch to generate game inputs. Gestures, such as swipes in particular directions, or particular touch motions can also be detected as game inputs. In one embodiment, a user can be provided with a guide indicating how to provide inputs through the touch screen to play the game, for example, before commencing game play of a video game, to acclimate the user to operating controls on the touch screen.

[0167] In some embodiments, the client device acts as a connection point for the controller device. That is, the controller device communicates with the client device through a wireless or wired connection in order to transmit inputs from the controller device to the client device. The client device can in turn process these inputs and then transmit the input data through the network to the cloud gaming server (e.g., accessed through a local networking device such as a router). However, in other embodiments, the controller itself can be a networked device, having the ability to pass inputs directly through the network to the cloud gaming server without first passing such inputs through the client device. For example, the controller can connect to a local networking device such as the aforementioned router to send data to and receive data from the cloud gaming server. Thus, while a client device can still be required to receive video output from the cloud-based video game and render the video output on a local display, input latency can be reduced by allowing the controller to bypass the client device, sending inputs directly through the network to the cloud gaming server.

[0168] In one embodiment, the networked controller and client device can be configured to send certain types of inputs directly from the controller to the cloud gaming server and other types of inputs through the client device. For example, inputs that are detected by the controller itself and do not depend on any additional hardware or processing other than the controller itself can be sent through the network, bypassing the client device, directly from the controller to the cloud gaming server. Such inputs can include button inputs, joystick inputs, embedded motion detection inputs (e.g., accelerometers, magnetometers, gyroscopes), etc. However, inputs that utilize additional hardware or require processing by the client device can be sent to the cloud gaming server by the client device. These inputs can include captured video or audio from the game environment, which can be processed by the client device before being sent to the cloud gaming server. Additionally, inputs from the motion detection hardware of the controller can be processed by the client device in conjunction with the captured video in order to detect the position and motion of the controller, which will then be passed to the cloud gaming server by the client device. It will be appreciated that the controller device according to various embodiments can also receive data (e.g., feedback data) from the client device or directly from the cloud gaming server.

[0169] It will be appreciated that the embodiments described herein can be performed on any type of client device. In some embodiments, the client device is a head-mounted display (HMD).

[0170] Figure 10FIG. 1 1, a diagram showing components of a head-mounted display 1050 is shown, in accordance with one embodiment of the present disclosure. The head-mounted display 1050 includes a processor 1000 for executing program instructions. Memory 1002 is provided for storage purposes, and can include both volatile and non-volatile memory. Included is a display 1004, which provides a visual interface viewable by a user. A battery 1006 is provided as a power source for the head-mounted display 1050. Motion detection module 1008 can include any of a variety of motion sensitive hardware, such as magnetometer 1010, accelerometer 1012, and gyroscope 1014.

[0171] An accelerometer is a device for measuring acceleration and the reaction force of gravity. Single- and multi-axis models are available to detect the size and direction of acceleration in different directions. Accelerometers are used to sense tilt, vibration, and shock. In one embodiment, three accelerometers 1012 are used to provide the gravity direction, which gives an absolute reference for two angles (world-space pitch and world-space roll).

[0172] A magnetometer measures the strength and direction of a magnetic field near the head-mounted display. In one embodiment, three magnetometers 1010 are used within the head-mounted display, ensuring an absolute reference for the world-space yaw angle. In one embodiment, the magnetometer is designed to span the Earth's magnetic field, which is ±80 microtesla. Magnetometers are affected by metal, and provide a yaw measurement that varies monotonically with the actual yaw. The magnetic field can be distorted due to metal in the environment, causing a bias in the yaw measurement. If necessary, information from other sensors, such as a gyroscope or a camera, can be used to calibrate this bias. In one embodiment, accelerometers 1012 are used with magnetometers 1010 in order to obtain the tilt and azimuth of the head-mounted display 1050.

[0173] A gyroscope is a device for measuring or maintaining orientation based on the principle of angular momentum. In one embodiment, three gyroscopes 1014 provide information about movement across respective axes (x, y, and z) based on inertial sensing. Gyroscopes help detect rapid rotations. However, gyroscopes can drift over time in the absence of an absolute reference. This requires periodic resetting of the gyroscopes, which can be done using other available information, such as position / orientation determinations based on visual tracking of objects, accelerometers, magnetometers, etc.

[0174] A camera 1016 is provided for capturing images and image streams of the real environment. More than one camera can be included in the head-mounted display 1050, including a rear-facing camera (facing away from the user when the user is viewing the display of the head-mounted display 1050) and a front-facing camera (facing toward the user when the user is viewing the display of the head-mounted display 1050). In addition, a depth camera 1018 can be included in the head-mounted display 1050 for sensing depth information of objects in the real environment.

[0175] In one embodiment, a camera integrated on the front of the HMD can be used to provide warnings about safety. For example, if the user is approaching a wall or object, the user can be warned. In one embodiment, the user can be provided with an outline view of physical objects in a room to warn the user of the presence of the physical objects. The outline can be, for example, an overlay in the virtual environment. In some embodiments, the HMD user can be provided with a view of reference markers overlaid in, for example, the floor. The markers can provide the user with a reference of where the center of the room is, for example, as the user is playing a game in the room. This can provide the user with visual information of, for example, where the user should move to avoid bumping into walls or other objects in the room. The user can also be provided with haptic warnings, and / or audio warnings to provide greater safety as the user wears the HMD and utilizes the HMD to play a game or view content.

[0176] The head-mounted display 1050 includes a speaker 1020 for providing audio output. In addition, a microphone 1022 can be included for capturing audio from the real environment, including sounds from the surrounding environment, speech by the user, etc. The head-mounted display 1050 includes a haptic feedback module 1024 for providing haptic feedback to the user. In one embodiment, the haptic feedback module 1024 is capable of causing movement and / or vibration of the head-mounted display 1050 in order to provide haptic feedback to the user.

[0177] An LED 1026 is provided as a visual indicator of the status of the head-mounted display 1050. For example, the LED can indicate battery level, power on, etc. A card reader 1028 is provided to enable the head-mounted display 1050 to read information from and write information to memory cards. A USB interface 1030 is included as one example of an interface for enabling connection of peripherals, or connection to other devices such as other portable devices, computers, etc. In various embodiments of the head-mounted display 1050, any of a variety of interfaces can be included to enable greater connectivity capability of the head-mounted display 1050.

[0178] A WiFi module 1032 is included for enabling connection to the Internet through wireless networking technology. Additionally, the head-mounted display 1050 includes a Bluetooth module 1034 for enabling wireless connection to other devices. A communication link 1036 can also be included for connecting to other devices. In one embodiment, the communication link 1036 utilizes infrared transmission for wireless communication. In other embodiments, the communication link 1036 can utilize any of a variety of wireless or wired transmission protocols to communicate with other devices.

[0179] Input buttons / sensors 1038 are included to provide an input interface for the user. Any of a variety of input interfaces can be included, such as buttons, touch pads, joysticks, trackballs, etc. An ultrasonic communication module 1040 can be included in the head-mounted display 1050 for facilitating communication with other devices through ultrasonic technology.

[0180] A biometric sensor 1042 is included to enable detection of physiological data from the user. In one embodiment, the biometric sensor 1042 includes one or more dry electrodes for detecting bioelectric signals of the user through the user's skin.

[0181] The foregoing components of the head-mounted display 1050 have been described as merely exemplary components that can be included in the head-mounted display 1050. In various embodiments of the present disclosure, the head-mounted display 1050 can or can not include some of the various foregoing components. Embodiments of the head-mounted display 1050 can additionally include other components not presently described, but known in the art, for the purpose of facilitating aspects of the present disclosure as described herein.

[0182] Those skilled in the art will appreciate that the foregoing handheld devices can be utilized in conjunction with an on-display interaction application to provide a variety of interactive functions in various embodiments of the present disclosure. The exemplary embodiments described herein are provided by way of example only and not by way of limitation.

[0183] Figure 11is a block diagram of a game system 1100 according to various embodiments of the present disclosure. The game system 1100 is configured to provide video streams to one or more clients 1110 over a network 1115. The game system 1100 typically includes a video server system 1120 and an optional game server 1125. The video server system 1120 is configured to provide video streams to one or more clients 1110 with minimal quality of service. For example, the video server system 1120 can receive game commands that change the state of a video game or a perspective within the video game and provide updated video streams to the clients 1110 that reflect such state changes with minimal lag time. The video server system 1120 can be configured to provide video streams in a wide variety of alternative video formats, including formats that have not yet been defined. Furthermore, the video streams can include video frames that are configured to be presented to users at a wide variety of frame rates. Typical frame rates are 30 frames per second, 60 frames per second, and 1120 frames per second. However, higher or lower frame rates are included in alternative embodiments of the present disclosure.

[0184] Clients 1110 referred to individually herein as 1110A, 1110B, etc. can include head-mounted displays, terminals, personal computers, game consoles, tablet computers, telephones, set-top boxes, kiosks, wireless devices, digital pads, stand-alone devices, handheld game-playing devices, and / or the like. Generally, clients 1110 are configured to receive encoded video streams (i.e., compressed video streams), decode the video streams, and present the resulting video to a user, e.g., a game player. The process of receiving encoded video streams and / or decoding video streams generally includes storing individual video frames in a receive buffer of the client. The video streams can be presented to the user on a display integral to the client 1110 or on a separate device such as a monitor or television. Clients 1110 are optionally configured to support more than one game player. For example, a game console can be configured to support two, three, four, or more simultaneous players. Each of these players can receive a separate video stream, or a single video stream can include regions of frames generated specifically for each player, e.g., based on the perspective of each player. Clients 1110 are optionally geographically dispersed. The number of clients included in game system 1100 can vary widely from one or two to tens of thousands, hundreds of thousands, or more. As used herein, the term "game player" is used to refer to a person playing a game, and the term "game-playing device" is used to refer to a device used to play a game. In some embodiments, a game-playing device can refer to multiple computing devices that cooperate to deliver a game experience to a user. For example, a game console and HMD can cooperate with video server system 1120 to deliver a game viewed through the HMD. In one embodiment, a game console receives a video stream from video server system 1120, and the game console forwards the video stream or updates to the video stream to the HMD for rendering.

[0185] Clients 1110 are configured to receive video streams over network 1115. Network 1115 can be any type of communications network, including telephone networks, the Internet, wireless networks, power-line networks, local area networks, wide area networks, private networks, and / or the like. In typical embodiments, video streams are communicated over standard protocols such as TCP / IP or UDP / IP. Alternatively, video streams are communicated over proprietary standards.

[0186] A typical example of a client 1110 is a personal computer that includes a processor, non-volatile memory, a display, decoding logic, network communication capabilities, and input devices. Decoding logic can include hardware, firmware, and / or software stored on a computer-readable medium. Systems for decoding (and encoding) video streams are well known in the art and vary depending on the specific encoding scheme used.

[0187] The client 1110 can, but need not, also include a system configured to modify the received video. For example, the client can be configured to perform further rendering, to superimpose one video image over another, to crop a video image, and / or the like. For example, the client 1110 can be configured to receive various types of video frames, such as I-frames, P-frames, and B-frames, and to process these frames into images for display to a user. In some embodiments, the components of the client 1110 are configured to perform further rendering, shadowing, conversion to 3-D, or the like on the video stream. The components of the client 1110 are optionally configured to receive more than one audio or video stream. The input devices of the client 1110 can include, for example, a single-hand game controller, a two-hand game controller, a gesture recognition system, a gaze recognition system, a voice recognition system, a keyboard, a joystick, a pointing device, a force feedback device, a motion and / or position sensing device, a mouse, a touch screen, a neural interface, a video camera, an input device not yet developed, and / or the like.

[0188] The video stream (and optional audio stream) received by the client 1110 is generated and provided by the video server system 1120. As described further elsewhere herein, this video stream includes video frames (and the audio stream includes audio frames). The video frames (e.g., which include pixel information in an appropriate data structure) are configured to meaningfully constitute images for display to a user. As used herein, the term "video frame" is used to refer to a frame that includes information configured to constitute (e.g., implement) an image that is presented to a user. Much of the teachings herein with respect to "video frames" can also apply to "audio frames."

[0189] The client 1110 is generally configured to receive input from a user. These inputs can include game commands that are configured to change the state of a video game or otherwise affect game play. Game commands can be received using input devices, and / or can be automatically generated by computing instructions executing on the client 1110. Received game commands are communicated from the client 1115 to the video server system 1120 and / or the game server 1125 over the network 1110. For example, in some embodiments, game commands are communicated through the video server system 1125 to the game server 1120. In some embodiments, separate copies of game commands are communicated from the client 1110 to the game server 1125 and the video server system 1120. The communication of game commands is optionally dependent on the identity of the command. Game commands are optionally communicated from the client 1110A over a different route or communication channel used to provide audio or video streams to the client 1110A.

[0190] The game server 1125 is optionally operated by a different entity than the video server system 1120. For example, the game server 1125 can be operated by a publisher of a multiplayer game. In this example, the video server system 1120 is optionally treated as a client by the game server 1125, and is optionally configured to behave (from the perspective of the game server 1125) as a prior art client executing a prior art game engine. Communication between the video server system 1120 and the game server 1125 optionally occurs over the network 1115. Thus, the game server 1125 can be a prior art multiplayer game server that sends game state information to multiple clients, one of which is the video server system 1120. The video server system 1120 can be configured to communicate with multiple instances of the game server 1125 at the same time. For example, the video server system 1120 can be configured to provide multiple different video games to different users. Each of these different video games can be supported by a different game server 1125 and / or published by a different entity. In some embodiments, some geographically distributed instances of the video server system 1120 are configured to provide game video to multiple different users. Each of these instances of the video server system 1120 can communicate with the same instance of the game server 1125. Communication between the video server system 1120 and one or more game servers 1125 optionally occurs over a dedicated communication channel. For example, the video server system 1120 can be connected to the game server 1125 over a high-bandwidth channel that is dedicated to communication between these two systems.

[0191] The video server system 1120 includes at least a video source 1130, an I / O device 1145, a processor 1150, and a non-transitory storage device 1155. The video server system 1120 can include one computing device or be distributed among multiple computing devices. These computing devices are optionally connected by a communication system, such as a local area network.

[0192] The video source 1130 is configured to provide a video stream, e.g., a streaming video or a series of video frames forming a motion picture. In some embodiments, the video source 1130 includes a video game engine and rendering logic. The video game engine is configured to receive game commands from a player and to maintain a copy of the state of a video game based on the received commands. This game state includes the positions of objects in the game environment, and typically includes a point of view. The game state can also include properties, images, colors, and / or textures of the objects.

[0193] The game state is typically maintained based on game rules and game commands such as move, turn, attack, set focus, interact, use, and / or the like. Portions of the game engine are optionally disposed within the game server 1125. The game server 1125 can maintain a copy of the game state based on game commands received from multiple players using geographically dispersed clients. In these cases, the game server 1125 provides the game state to the video source 1130, where a copy of the game state is stored and rendering is performed. The game server 1125 can receive game commands directly from the clients 1110 over the network 1115, and / or can receive game commands through the video server system 1120.

[0194] The video source 1130 typically includes rendering logic, e.g., hardware, firmware, and / or software stored on a computer readable medium such as the storage device 1155. This rendering logic is configured to create video frames of a video stream based on the game state. All or portions of the rendering logic are optionally disposed within a graphics processing unit (GPU). The rendering logic typically includes processing stages configured to determine three-dimensional spatial relationships between objects and / or to apply appropriate textures based on the game state and a point of view. The rendering logic produces raw video, which is then often encoded and communicated to the clients 1110. For example, the raw video can be encoded according to Adobe Flash® standards,.wav, H.264, H.263, On2, VP6, VC-1, WMA, Huffyuv, Lagarith, MPG-x., Xvid., FFmpeg, x264, VP6-8, realvideo, mp3, or the like. The encoding process produces a video stream, which is optionally packetized for delivery to a decoder on a remote device. A video stream is characterized by frame size and frame rate. Typical frame sizes include 800x600, 1280x720 (e.g., 720p), 1024x768, although any other frame size can be used. Frame rate is the number of video frames per second. A video stream can include different types of video frames. For example, the H.264 standard includes "P" frames and "I" frames. I frames include information to refresh all macroblocks / pixels on a display device, while P frames include information to refresh a subset of the macroblocks / pixels. P frames are typically smaller in data size than I frames. As used herein, the term "frame size" is intended to refer to the number of pixels within a frame. The term "frame data size" is used to refer to the number of bytes required to store the frame.

[0195] ​In alternative embodiments, video source 1130 includes a video recording device such as a video camera. This video camera can be used to generate delayed video or live video that can be included in a video stream for a computer game. The resulting video stream optionally includes rendered images with images recorded using a still camera or a video camera. Video source 1130 can also include a storage device configured to store previously recorded video to be included in a video stream. Video source 1130 can also include a motion or positioning sensing device configured to detect motion or position of an object (e.g., a person) and logic configured to determine a game state or generate video based on the detected motion and / or position.

[0196] Video source 1130 is optionally configured to provide overlays configured to be placed over other video. For example, these overlays can include a command interface, login instructions, messages to a game player, images of other game players, video feeds (e.g., web camera video) of other game players. In embodiments in which client 1110A includes a touch screen interface or a gaze detection interface, the overlays can include virtual keyboards, joysticks, touch pads, and / or the like. In one example of an overlay, a player's voice is overlaid on an audio stream. Video source 1130 optionally also includes one or more audio sources.

[0197] In embodiments in which video server system 1120 is configured to maintain a game state based on input from more than one player, each player can have a different perspective, including a position and a viewing direction. Video source 1130 is optionally configured to provide a separate video stream for each player based on the player's perspective. In addition, video source 1130 can be configured to provide different frame sizes, frame data sizes, and / or encodings to each of clients 1110. Video source 1130 is optionally configured to provide 3-D video.

[0198] I / O device 1145 is configured for video server system 1120 to send and / or receive information such as video, commands, requests for information, game states, gaze information, device motion, device position, user motion, client identity, player identity, game commands, security information, audio, and / or the like. I / O device 1145 typically includes communication hardware such as a network card or a modem. I / O device 1145 is configured to communicate with game server 1125, network 1115, and / or clients 1110.

[0199] The processor 1150 is configured to execute logic, e.g., software, included in the various components of the video server system 1120 discussed herein. For example, the processor 1150 can be programmed with software instructions to perform the functions of the video source 1130, the game server 1125, and / or the client limiter 1160. The video server system 1120 optionally includes more than one instance of the processor 1150. The processor 1150 can also be programmed with software instructions to perform commands received by the video server system 1120, or to coordinate the operation of the various elements of the game system 1100 discussed herein. The processor 1150 can include one or more hardware devices. The processor 1150 is an electronic processor.

[0200] The storage device 1155 includes a non-transitory analog and / or digital storage device. For example, the storage device 1155 can include an analog storage device configured to store video frames. The storage device 1155 can include a computer-readable digital storage device, e.g., a hard drive, an optical drive, or a solid-state storage device. The storage device 1115 is configured to store video frames, artificial frames, video streams including video frames and artificial frames, audio frames, audio streams, and / or the like, e.g., by an appropriate data structure or file system. The storage device 1155 is optionally distributed among multiple devices. In some embodiments, the storage device 1155 is configured to store software components of the video source 1130 discussed elsewhere herein. These components can be stored in a format that can be served up on demand.

[0201] The video server system 1120 optionally also includes a client limiter 1160. The client limiter 1160 is configured to remotely determine the capabilities of a client, such as the client 1110A or 1110B. These capabilities can include the capabilities of the client 1110A itself, as well as the capabilities of one or more communication channels between the client 1110A and the video server system 1120. For example, the client limiter 1160 can be configured to test the communication channel through the network 1115.

[0202] The client specifier 1160 can manually or automatically determine (e.g., discover) the capabilities of the client 1110A. Manual determination includes communicating with a user of the client 1110A and asking the user to provide capabilities. For example, in some embodiments, the client specifier 1160 is configured to display an image, text, and / or the like within a browser of the client 1110A. In one embodiment, the client 1110A is an HMD that includes a browser. In another embodiment, the client 1110A is a game console with a browser that can be displayed on an HMD. The displayed object requests that the user input information of the client 1110A, such as operating system, processor, video decoder type, network connection type, display resolution, etc. The information input by the user is communicated back to the client specifier 1160.

[0203] Automatic determination can be performed, for example, by executing an agent program on the client 1110A and / or by sending a test video to the client 1110A. The agent program can include computing instructions, such as java script, embedded in a web page or installed as a load item. The agent program is optionally provided by the client specifier 1160. In various embodiments, the agent program can discover: processing capabilities of the client 1110A, decoding and display capabilities of the client 1110A, latency reliability and bandwidth of a communication channel between the client 1110A and the video server system 1120, display type of the client 1110A, firewalls present on the client 1110A, hardware of the client 1110A, software executing on the client 1110A, registry entries within the client 1110A, and / or the like.

[0204] The client specifier 1160 includes hardware, firmware, and / or software stored on a computer readable medium. The client specifier 1160 is optionally disposed on a computing device separate from one or more other elements of the video server system 1120. For example, in some embodiments, the client specifier 1160 is configured to determine characteristics of communication channels between the client 1110 and more than one instance of the video server system 1120. In these embodiments, the information discovered by the client specifier can be used to determine which instance of the video server system 1120 is best suited to deliver streaming video to one of the clients 1110.

[0205] It should be understood that various embodiments defined herein can be combined or assembled into particular implementations using various features disclosed herein. Thus, the examples provided are only some of the possible examples and are not limited to the possible various implementations by combining various elements in order to define more implementations. In some examples, some implementations can include fewer elements without departing from the spirit of the disclosed implementations or equivalent implementations.

[0206] Embodiments of the present disclosure can 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. Embodiments of the present disclosure can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a wire-based or wireless network.

[0207] With the above embodiments in mind, it should be understood that the embodiments of the present disclosure can employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Any of the operations described herein that form part of the embodiments of the present disclosure are useful machine operations. The embodiments of the application also relate to a device or an apparatus for performing these operations. The apparatus can be specially constructed for the required purposes, or it can be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines can be used with computer programs written in accordance with the teachings herein, or it can be more convenient to construct a more specialized apparatus to perform the required operations.

[0208] The present disclosure 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 the computer readable medium include hard drives, network attached storage devices (NAS), read-only memory, random-access memory, CDs, DVDs, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. The computer readable medium can include computer readable tangible medium distributed over a network-coupled computer system so that the computer readable code is stored and executed in a distributed fashion.

[0209] Although the method operations were described in a specific order, it should be understood that other housekeeping operations can be performed in between operations, or operations can be adjusted so that they occur at slightly different times, or can be distributed in different order. Operations can be adapted in various ways and the order of the operations can be rearranged without departing from the scope of the disclosure.

[0210] While the foregoing disclosure has been described in some detail for purposes of clarity and the specific embodiments described are shown by way of example, it is not intended that the application be limited accordingly. Therefore, the present embodiments are to be considered illustrative and not restrictive, and the application is not to be limited to the details given herein, but can be modified within the scope and equivalents of the appended claims.

Claims

1. A method for a video game, comprising: capturing a plurality of snapshots generated from game play of the video game performed for a player, wherein the snapshots include game state data that enables generation of an environment corresponding to a point in the video game at which the snapshot was captured; capturing a plurality of snapshot images from the game play of the player, wherein each snapshot image corresponds to a snapshot; generating a timeline including a plurality of thumbnails for display, the plurality of thumbnails including the plurality of snapshot images; arranging the plurality of thumbnails on the timeline to display relative progress of the game play of the player; and enabling jumping into the game play from a jump point in the game play corresponding to a snapshot image captured for a thumbnail based on the snapshot by selecting the thumbnail, and generating a game environment existing at the jump point in the video game using the game state data to perform the video game from the jump point.

2. The method of claim 1, wherein each of the plurality of snapshot images is selectable to cause performance of the video game to begin at a point in the game play at which the corresponding snapshot image was captured.

3. The method of claim 1, wherein each snapshot image includes a rendered image generated for the game play.

4. The method of claim 1, further comprising: receiving a selection of a thumbnail in the timeline, wherein the thumbnail is associated with a snapshot; and executing a new instance of the video game based on the snapshot associated with the thumbnail, wherein the new instance of the video game begins at a jump point in the video game at which the snapshot was captured.

5. The method of claim 4, further comprising: receiving the selection of the thumbnail from a user viewing the timeline.

6. The method of claim 4, further comprising: receiving the selection of the thumbnail from a player viewing the timeline while controlling the game play of the video game; jumping from performance of the video game associated with the game play of the player to a jump point in the video game associated with the thumbnail, the thumbnail selected and executed by a new instance of the video game.

7. The method of claim 6, wherein the jumping includes: pausing performance of the video game associated with the game play of the player.

8. The method of claim 1, wherein the snapshot further includes: a snapshot image including a rendered image generated from performance of the video game associated with the game play of the player; or random seed data that provides additional characteristics to the environment; or user saved data that enables generation of a character from the game play of the player, wherein the character has a state corresponding to a point in the video game at which the snapshot was captured.

9. The method of claim 1, further comprising: capturing a second plurality of snapshots generated from second game play of the video game performed for a second player; capturing a second plurality of snapshot images from the second game play, wherein each snapshot image corresponds to a snapshot; ​ displaying a second plurality of thumbnails comprising the second plurality of snapshot images in a timeline; and arranging the second plurality of thumbnails in the timeline to display relative progress of the second game play of the second player.

10. A non-transitory computer readable medium having program instructions for a method, the computer readable medium comprising: program instructions to capture a plurality of snapshots generated from game play of a video game executed for a player, wherein the snapshots comprise game state data that enables generation of an environment corresponding to a point in the video game at which the snapshot was captured; program instructions to capture a plurality of snapshot images from the game play of the player, wherein each snapshot image corresponds to a snapshot; program instructions to generate a timeline comprising a plurality of thumbnails for display, the plurality of thumbnails comprising the plurality of snapshot images; program instructions to arrange the plurality of thumbnails on the timeline to display relative progress of the game play of the player; and program instructions to enable jumping into the game play from a jump point in the video game corresponding to a snapshot image captured for a thumbnail in the timeline based on the snapshot and executing the video game from the jump point using the game state data that generated the game environment existing at the jump point in the video game.

11. The non-transitory computer readable medium of claim 10, wherein in the method, each of the plurality of snapshot images is selectable to cause execution of the video game to begin at a point in the game play at which the corresponding snapshot image was captured.

12. The non-transitory computer readable medium of claim 10, further comprising: program instructions to receive a selection of a thumbnail in the timeline, wherein the thumbnail is associated with a snapshot; and program instructions to execute a new instance of the video game based on the snapshot associated with the thumbnail, wherein the new instance of the video game begins at a jump point in the video game at which the snapshot was captured.

13. The non-transitory computer readable medium of claim 12, further comprising: program instructions to receive the selection of the thumbnail from a user viewing the timeline.

14. The non-transitory computer readable medium of claim 12, further comprising: program instructions to receive the selection of the thumbnail from a player viewing the timeline while controlling the game play of the video game; program instructions to jump from execution of the video game associated with the game play of the player to a jump point in the video game associated with the thumbnail, the thumbnail selected and executed by a new instance of the video game.

15. The non-transitory computer readable medium of claim 10, wherein in the method, the snapshots further comprise: a snapshot image comprising a rendered image generated from execution of a video game associated with the game play of the player; or random seed data that provides additional characteristics to the environment; or user saved data that enables generation of a character from the game play of the player, wherein the character has a state corresponding to a point in the video game at which the snapshot was captured.

16. A computer system comprising: a processor; a memory coupled to the processor and storing instructions therein, the instructions being executed by the computer system to cause the computer system to perform a method comprising: capturing a plurality of snapshots generated from game play of a video game performed for a player, wherein the snapshots include game state data that enables generation of an environment corresponding to a point in the video game at which the snapshot was captured; capturing a plurality of snapshot images from the game play of the player, wherein each snapshot image corresponds to a snapshot; generating a timeline for display including a plurality of thumbnails, the plurality of thumbnails including the plurality of snapshot images; arranging the plurality of thumbnails on the timeline to display relative progress of the game play of the player; and enabling jumping into the game play of the video game based on the snapshot from a jump point in the game play for which the snapshot image for the thumbnail was captured by selecting the thumbnail in the timeline and generating a game environment existing at the jump point in the video game using the game state data to perform the video game from the jump point.

17. The computer system of claim 16, wherein in the method, each of the plurality of snapshot images is selectable to cause performance of the video game to begin at a point in the game play for which the corresponding snapshot image was captured.

18. The computer system of claim 16, the method further comprising: receiving a selection of a thumbnail in the timeline, wherein the thumbnail is associated with a snapshot; and executing a new instance of the video game based on the snapshot associated with the thumbnail, wherein the new instance of the video game begins at a jump point in the video game for which the snapshot was captured.

19. The computer system of claim 18, the method further comprising: receiving the selection of the thumbnail from a user viewing the timeline.

20. The computer system of claim 18, the method further comprising: receiving the selection of the thumbnail from a player viewing the timeline while controlling the game play of the video game; jumping from performance of the video game associated with the game play of the player to a jump point in the video game associated with the thumbnail, the thumbnail being selected and executed by a new instance of the video game. ​

Citation Information

Patent Citations

  • Thumbnail navigation bar for video

    US20090172543A1

  • Character simulation and playback notification in game session replay

    US20150375101A1