Automatically generate suggested mini-games for cloud gaming based on recorded gameplay
The system generates mini-games from recorded gameplay, shares gameplay on social graphs, and enables remote control, enhancing user interaction and engagement in cloud gaming.
Patent Information
- Application Number
- CN201910750574.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2013-03-15
- Filing Date
- 2013-12-23
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2034-10-27
AI Technical Summary
Existing video game technologies lack methods for generating interactive mini-games based on recorded gameplay, sharing gameplay to social graphs, and enabling remote control of gameplay, limiting user engagement and interaction.
A system and method for automatically generating mini-games from recorded gameplay, sharing gameplay to social graphs, and remotely controlling gameplay, utilizing cloud-based servers to process and render games across various devices.
Enhances user interaction and engagement by allowing generation of mini-games from recorded gameplay, sharing gameplay experiences, and enabling remote control, thereby increasing interactivity and accessibility of cloud gaming.
Smart Images

Figure CN110523079B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with application number 201310717877.8, application date December 23, 2013, and invention name "Automatically generating mini-games recommended for cloud games based on recorded game play". Technical Field
[0002] The present invention relates to methods and systems for automatically generating suggested mini-games based on recorded gameplay, generating multi-part mini-games for cloud gaming based on recorded gameplay, sharing recorded gameplay to a social graph, and remotely controlling a first user's gameplay by a second user. Background Art
[0003] The video game industry has seen many changes over the past many years. As computing power has increased, video game developers have also developed game software that takes advantage of these increases in computing power. To do this, video game developers have been coding games that incorporate complex operations and mathematical calculations to produce a very realistic gaming experience.
[0004] An example gaming platform may be Sony Sony (PS2) and Sony (PS3), each of which is sold in the form of a game console. As is well known, a game console is designed to be connected to a monitor (usually a television) and to enable user interaction through a handheld controller. The game console is designed to have dedicated processing hardware, including a CPU, a graphics synthesizer for processing intensive graphics operations, a vector unit for performing geometric shape transformations, and other glue hardware, firmware, and software. The game console is further designed to have a disc tray, which is used to receive game compact discs to play games locally through the game console. Online gaming is also possible, in which one user can interactively compete or play with other users via the Internet. As the complexity of the game continues to attract the interest of players, game and hardware manufacturers continue to innovate to enable additional interactivity and computer programs.
[0005] A growing trend in the computer gaming industry is to develop games that increase the interaction between the user and the gaming system. One way to achieve a more interactive experience is to use a wireless game controller whose actions are tracked by the gaming system in order to track the player's actions and use these actions as input to the game. Generally speaking, gesture input refers to causing an electronic device, such as a computing system, video game console, smart device, etc., to react to certain gestures made by the player and captured by the electronic device.
[0006] Another trend in the industry involves the development of cloud-based gaming systems. Such systems may include a remote processing server that executes the gaming application and communicates with a local thin client that can be configured to receive input from the user and render video on a display.
[0007] It is within this context that embodiments of the present invention arise. Summary of the invention
[0008] Embodiments of the present invention provide methods and systems for automatically generating suggested mini-games based on recorded gameplay, generating multi-part mini-games for cloud gaming based on recorded gameplay, sharing recorded gameplay to a social graph, and remotely controlling the gameplay of a first user by a second user. It should be understood that the present invention can be implemented in many ways, such as a program, device, system, apparatus, or method on a computer-readable medium. Several inventive embodiments of the present invention are described below.
[0009] In one embodiment, a method for generating a limited-play trial version of a video game is provided, comprising the following method operations: recording user gameplay of a full version of the video game; analyzing the recorded user gameplay to determine a focus area; defining boundaries within a gameplay context of the video game based on the determined focus area; and generating a limited version of the video game based on the defined boundaries; wherein the method is performed by a processor.
[0010] In another embodiment, a method for generating a trial limited version of a video game is provided, comprising the following method operations: recording user gameplay of a full version of the video game; analyzing the recorded user gameplay to determine one or more areas of focus; presenting each of the areas of focus for selection; receiving selection input indicating a selected area of focus; for the selected area of focus, defining boundaries within a gameplay context of the video game based on the selected area of focus; and generating a limited version of the video game based on the defined boundaries; wherein the method is performed by a processor.
[0011] In another embodiment, a method for generating a trial limited version of a video game is provided, which includes the following method operations: recording user gameplay of a full version of the video game, wherein recording the user gameplay includes recording one or more of user input data or game state data; analyzing the recorded user gameplay to determine one or more focus areas, wherein each focus area is automatically identified based on a correspondence with one or more thresholds; presenting each of the focus areas for selection; receiving a selection input indicating a selected focus area; for the selected focus area, defining boundaries within a gameplay context of the video game based on the selected focus area; generating a limited version of the video game based on the defined boundaries; wherein the method is executed by a processor.
[0012] In one embodiment, a method for generating a trial limited version of a video game is provided, comprising the following method operations: recording user gameplay of a full version of the video game; determining multiple user-defined portions of the recorded user gameplay; for each user-defined portion, defining boundaries within a gameplay context of the video game based on the user-defined portion, and generating a trial portion of the video game based on the defined boundaries; arranging each of the trial portions of the video game into a series to define a limited version of the video game; wherein the method is performed by a processor.
[0013] In another embodiment, a tangible computer-readable medium having program instructions embodied thereon is provided, the program instructions being used to generate a trial limited version of a video game, the program instructions including the following: program instructions for recording user gameplay of a full version of the video game; program instructions for determining a plurality of user-defined portions of the recorded user gameplay; program instructions for defining, for each user-defined portion, boundaries within a gameplay context of the video game based on the user-defined portion and generating a trial portion of the video game based on the defined boundaries; program instructions for arranging each of the trial portions of the video game into a series to define a limited version of the video game.
[0014] In another embodiment, a system is provided that includes the following: at least one server computing device having logic for generating a trial limited version of a video game, the logic including: logic for recording user gameplay of a full version of the video game; logic for determining multiple user-defined portions of the recorded user gameplay; logic for defining boundaries within a gameplay context of the video game based on the user-defined portion for each user-defined portion and generating a trial portion of the video game based on the defined boundaries; logic for arranging each of the trial portions of the video game into a series to define a limited version of the video game.
[0015] In one embodiment, a method for sharing recorded gameplay to a social graph is provided, comprising the following method operations: recording a video of a user's gameplay during an active state of a gameplay session; receiving a command to initiate a sharing operation during the active state of the gameplay session; in response to receiving the command, entering a paused state of the gameplay session and presenting a sharing interface; processing input received via the sharing interface to determine a user-defined selection of the recorded video; sharing the user-defined selection of the recorded video to the user's social graph; and resuming the active state of the gameplay session; wherein the method is performed by a processor.
[0016] In another embodiment, a method for sharing recorded gameplay to a social graph is provided, comprising the following method operations: recording a video of a user's gameplay during an active state of a gameplay session; receiving a command to initiate a sharing operation during the active state of the gameplay session; in response to receiving the command, determining a user-customized selection of the recorded video; sharing the user-customized selection of the recorded video to the user's social graph; wherein the method is performed by a processor.
[0017] In another embodiment, a non-transitory computer-readable medium having program instructions defined thereon is provided, the program instructions for sharing recorded gameplay to a social graph. The program instructions include: program instructions for recording a video of a user's gameplay during an active state of a gameplay session; program instructions for receiving a command to initiate a sharing operation during the active state of the gameplay session; program instructions for determining a user-defined selection of the recorded video in response to receiving the command; program instructions for sharing the user-defined selection of the recorded video to the user's social graph.
[0018] In one embodiment, a method for providing remote control of a user's gameplay is provided, the method comprising the following method operations: presenting a live video feed of a first user's gameplay to a remote second user; processing a request to transfer control of the first user's gameplay to the second user; initiating control of the first user's gameplay by the second user; wherein the method is performed by at least one processor.
[0019] In another embodiment, a method for providing multi-player gameplay is provided, comprising the following method operations: presenting a live video feed of a first user's gameplay session to a remote second user; processing a request for the second user to join the first user's gameplay session; initiating gameplay by the second user in the first user's gameplay session; wherein the method is performed by at least one processor.
[0020] In another embodiment, a non-transitory computer-readable medium having program instructions embodied thereon is provided, the program instructions being for providing remote control of a user's gameplay, the program instructions comprising: program instructions for presenting a live video feed of a first user's gameplay to a remote second user; program instructions for processing a request to transfer control of the first user's gameplay to the second user; and program instructions for initiating control of the first user's gameplay by the second user.
[0021] Other aspects of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] The present invention may be best understood by reference to the following description taken in conjunction with the accompanying drawings, in which:
[0023] Figure 1A A user is illustrated playing a cloud-based video game according to an embodiment of the present invention.
[0024] Figure 1B Illustrating multiple users in multiple locations engaging in gameplay of a cloud-based video game.
[0025] Figure 2A A system for cloud gaming according to an embodiment of the present invention is described.
[0026] Figure 2B The aggregation of game titles across generations of game consoles according to an embodiment of the present invention is conceptually illustrated.
[0027] Figure 3 A method for providing a game demonstration to a user according to an embodiment of the present invention is described.
[0028] Figure 4A A hierarchical organization of various parts of a video game according to an embodiment of the present invention is described.
[0029] Figure 4B An interface for selecting a portion of a gameplay timeline to generate a mini-game or game slice is illustrated according to an embodiment of the present invention.
[0030] Figure 4C An interface for selecting a portion of a gameplay timeline to generate a mini-game according to an embodiment of the present invention is described.
[0031] Figure 5 A series of screen shots illustrating an exemplary method for generating mini-games from existing cloud-based video games according to an embodiment of the present invention.
[0032] Figure 6 A system for generating game slice code according to an embodiment of the present invention is described.
[0033] Fig. 7A Modification of a virtual space for the purpose of generating a game slice for a video game is described in accordance with an embodiment of the present invention.
[0034] Figure 7B Modifications to a scene graph for the purpose of generating a game slice according to an embodiment of the present invention are described.
[0035] Figure 8 A method for generating a game slice according to an embodiment of the present invention is described.
[0036] Fig. 9A An interface for browsing game slices associated with various game titles is illustrated in accordance with an embodiment of the present invention.
[0037] Fig. 9B A game slice information page is illustrated according to an embodiment of the present invention.
[0038] Fig.10 Illustrated is a view of user account information including a live view of friends in a cloud gaming social network according to an embodiment of the present invention.
[0039] Fig.11 A method for presenting a live gameplay feed of a current user's friends according to an embodiment of the present invention is described.
[0040] Fig.12 A system including a cloud gaming system and a social network according to an embodiment of the present invention is described.
[0041] Fig.13 is a diagram illustrating various game state variables as they change over time, according to an embodiment of the present invention.
[0042] Fig.14A A method for generating game slices for a linear-type video game according to an embodiment of the present invention is described.
[0043] Fig. 14B A method for generating game slices for an open world type video game according to an embodiment of the present invention is described.
[0044] Fig. 14C A method for generating game slices for a sports video game according to an embodiment of the present invention is described.
[0045] Fig.15 The formation of a multi-game slice game according to an embodiment of the present invention is conceptually illustrated.
[0046] Fig.16The creation of a multi-game slice mini-game according to an embodiment of the present invention is conceptually explained.
[0047] Fig.17 An interface for sharing gameplay according to an embodiment of the present invention is described.
[0048] Fig.18 Illustrated is an interface 1800 for selecting a portion of a recorded gameplay video for sharing in accordance with an embodiment of the present invention.
[0049] Fig.19 Illustrated is an interface 1900 for viewing a live video stream of a user's gameplay in accordance with an embodiment of the present invention.
[0050] Fig. 20 Hardware and user interfaces that may be used to provide interactivity with a video game according to one embodiment of the present invention are described.
[0051] Fig.21 Additional hardware that may be used to process instructions according to one embodiment of the present invention is described.
[0052] Fig. 22 1 is an exemplary illustration of scenes A to E according to one embodiment of the present invention, wherein respective users A to E interact with a game client 1102 connected to a server process via the Internet.
[0053] Fig.23 An embodiment of an information service provider architecture is described. DETAILED DESCRIPTION
[0054] The following embodiments describe methods and apparatus for automatically generating suggested mini-games based on recorded gameplay, generating multi-part mini-games for cloud gaming based on recorded gameplay, sharing recorded gameplay to a social graph, and remotely controlling a first user's gameplay by a second user.
[0055] However, it will be apparent to one skilled in the art that the present invention may be practiced without some or all of these specific details. In other instances, well-known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
[0056] Figure 1AA user according to an embodiment of the present invention plays a cloud-based video game. As shown, user U1 plays a cloud-based video game displayed on a display 100. Cloud-based video games are video games that are primarily executed on remote servers. In one embodiment, the server may include individual servers or servers executed in a virtual machine data center, many of which may be virtualized to provide the requested processing. In the illustrated embodiment, a cloud game server 104 executes a video game rendered on a display 100. Client 101 is located at the user's location to receive and process inputs and transmit these inputs to cloud game server 104, and also receives video and audio data from cloud game server 104. Client 101 and cloud game server 104 communicate via network 102 (e.g., the Internet). In other embodiments, the client may be any device, whether portable or not, whether wireless or not, as long as the client can communicate with the network and provide access to the display to render the gameplay and enable input from the user to drive interactivity. In one embodiment, the client is a thin client. However, in other embodiments, the client may be a general purpose computer, a special purpose computer, a game console, a personal computer, a laptop computer, a tablet computer, a mobile computing device, a portable gaming device, a cellular phone, a set-top box, a streaming media interface / device, a smart phone or a networked display, or any other computing device that can be configured to meet the functionality of a client as defined herein. In one embodiment, the cloud gaming server is configured to detect the type of client device being used by the user and provide a cloud gaming experience appropriate for the user's client device. For example, image settings, audio settings, and other types of settings may be optimized for the user's client device.
[0057] In various embodiments, the extent of processing performed by the client may vary relative to input and output processing. However, broadly speaking, the video game state is fully maintained and executed on the cloud gaming server 104, where the client primarily functions to receive and transmit user input, and receives video / audio data for rendering. The client 101 may be an independent device connected to the display 100 and providing video data for rendering on the display 100. In other embodiments, the client may be integrated into the display 100. In one embodiment, the display 100 is a networked display that uses the network connectivity of the display to provide a platform operating system for applications. In such embodiments, the client may be defined by an application executed on a platform provided by the operating system of the display.
[0058] Figure 1BMultiple users in multiple locations are illustrated participating in gameplay of a cloud-based video game. User U1 is shown interacting with a video game rendered on display 100 at a first location. Users U2 and U3 are shown interacting with a video game rendered on display 106 at a second location. User U4 is shown playing a video game rendered on display 108 at a third location. Users U5, U6, and U7 are shown interacting with a video game rendered on display 110 at a fourth location.
[0059] At each of the first, second, third, and fourth locations, at least one computing device is provided for processing input from various users and rendering cloud-based video games on their respective displays. It should be understood that the computing device may be integrated into the display, or may be a standalone device, such as a personal computer, a set-top box, a game console, or any other type of device with at least one processor and memory to process and store data. The computing device may execute or define a client, as described above. The computing device is networked and communicates with the cloud gaming server 104 via a network (e.g., the Internet 102).
[0060] The cloud gaming server 104 executes the various video games being played by the users, defining the game state of a given video game from one moment to another, and sends video data (including image data and audio data) to a computing device at a particular location. The computing device at a given location processes input from the user playing the video game and transmits the input data to the cloud gaming server, which in turn processes the input data to affect the game state of the video game. It should be appreciated that cloud-based gaming facilitates multi-player gaming from players at different locations by providing for the execution of video games at a remote server that can be accessed by all players via a network. In this way, the execution of the video game does not depend on the hardware or network conductivity of any single player, but this will affect the user experience of the given player.
[0061] Figure 2AA system for cloud gaming according to an embodiment of the present invention is described. As shown, a user 200 operates a controller 202 to provide input to a cloud-based video game. The controller 202 may include any of a variety of input devices, such as buttons, joysticks, touch pads, trackballs, and motion sensing hardware, such as accelerometers, magnetometers, and gyroscopes. In one embodiment, the controller 202 may include an illuminated object that can be tracked to determine the position of the controller 202. The controller 202 may communicate wirelessly with a thin game client 204. The client 204 communicates with the cloud gaming service 210 via a network 208. The client 204 processes data from the controller 202 to generate input data for a video game executed by the cloud gaming service 210. In addition, the client 204 receives video data from the cloud gaming service 210 for rendering on a display 206. In one embodiment, the client 204 may process the received video data to provide a video stream in a format compatible with the display 206. In one embodiment, the client 204 may include a camera for tracking a controller device or an object located on the controller device. As already noted, the object may be illuminated to further facilitate tracking based on analysis of captured image frames from the camera.
[0062] Cloud gaming service 210 includes resources for providing an environment in which video games can be executed. Broadly speaking, resources may include various types of computer server hardware, including processors, storage devices, and networking devices, which can be used to facilitate the execution of video game applications. In the illustrated embodiment, video game library 212 includes various game titles. Each game title defines executable code and associated data and asset libraries, which are used to instantiate video games. Host 214 may be a single computing device that defines a platform for instantiating virtual machines 216. In another embodiment, host 214 itself may be a virtualized resource platform. In other words, host 214 may operate one or more server computing devices, thereby handling the allocation and use of resources defined by the server computing devices, while presenting a unified platform on which virtual machines 216 can be instantiated.
[0063] Each virtual machine 216 defines a resource environment that can support an operating system on which a video game application 218 can be run. In one embodiment, the virtual machine can be configured to emulate the hardware resource environment of a game console, wherein an operating system associated with the game console runs on the virtual machine to support the operation of game titles developed for the game console. In another embodiment, the operating system can be configured to emulate the native operating system environment of the game console, but the underlying virtual machine may or may not be configured to emulate the hardware of the game console. In another embodiment, an emulator application runs on top of the operating system of the virtual machine, and the emulator is configured to emulate the native operating system environment of the game console in order to support video games designed for the game console. It should be understood that a variety of current and legacy game consoles can be emulated in a cloud-based gaming system. In this way, users can access game titles from different game consoles via a cloud gaming system.
[0064] When user 200 requests to play a specific video game title, the video game title is retrieved from library 212. If a compatible virtual machine has not yet been instantiated or is unavailable, a new compatible virtual machine is instantiated on host 214. The retrieved video game title is then executed as application 218 on available or newly instantiated virtual machine 216. In one embodiment, this may require determining the appropriate platform for the video game title (e.g., which game console or operating system the game needs to run) and assigning the video game title to an appropriate virtual machine for execution, e.g., assigning to a virtual machine with an emulator application that can handle the execution of the video game title. The executing video game communicates with game client 204 to provide interactive gaming experience to user 200. More specifically, the executing video game application 218 receives input data from client 204 via network 208. Application 218 processes the input data to update the game state of the executing application. When the game state changes, application 218 outputs video data, which is sent to client 204 for rendering on display 206. In addition, the application 218 may also output feedback data to the client 204 that is used to provide additional feedback mechanisms to the user. For example, the user's controller 202 may include a haptic vibration feedback mechanism that may be activated based on the output feedback data from the video game application.
[0065] In one embodiment, the cloud gaming system is configured to detect the type of client device associated with the user and the type of controller available to the user to provide input to the cloud-based video game. For example, in one embodiment, when a user logs into the cloud gaming system, they may be presented with options to specify the type of client device they are using to access the cloud gaming system. In one embodiment, a series of client device options are presented, from which the user can select an option corresponding to their client device. The user may also be presented with options to specify the type of controller device they will use to play the video game. In one embodiment, the user may be presented with a series of controller options from which the user can select to specify the type of controller corresponding to their controller hardware. In other embodiments, the cloud gaming system may be configured to automatically detect the client device type and / or controller device type.
[0066] For example, upon login, the client device may send information identifying itself and the connected controller device to the cloud gaming server (e.g., in response to a request from the cloud gaming server). Based on this information, the cloud gaming server may determine the appropriate video game output configuration and input parameter configuration to provide a gaming experience optimized for the user's client device and controller device. In one embodiment, a lookup table is employed to determine the video game configuration and input parameter configuration based on the detected client device and the detected controller device.
[0067] It should be understood that a given video game may be developed for a specific platform and a specific associated controller device. However, when such a game is made available via a cloud gaming system as presented herein, a user may be accessing the video game with a different controller device. For example, a game may be developed for a certain game console and its associated controller, while a user may be accessing a cloud-based version of the game from a personal computer using a keyboard and mouse. In such a case, an input parameter configuration may define a mapping from inputs that can be generated by the user's available controller devices (in this case, a keyboard and mouse) to inputs that can be accepted for execution of the video game.
[0068] In another example, the user can access the cloud gaming system via 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, where input is provided by means of a detected touch screen input / gesture. For such devices, the input parameter configuration may define a specific touch screen input corresponding to a game input for a video game. For example, buttons, directional keys, or other types of input elements may be displayed or overlapped during the running of a video game to indicate on the touch screen where the user can touch to generate a game input. Gestures such as swiping in a specific direction or specific touch actions may also be detected as game inputs. In one embodiment, instructions may be provided to the user indicating how to provide input for the gameplay via a touch screen, such as before starting the gameplay of a video game, so as to adapt the user to the operation of the controls on the touch screen.
[0069] 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 via a wireless or wired connection to transmit input from the controller device to the client device. The client device can process these inputs and then transmit the input data to the cloud game server via a network (e.g., accessed via a local networking device (e.g., a router). However, in other embodiments, the controller itself can be a networking device that has the ability to directly transmit input to the cloud game server via a network without first transmitting such input through a client device. For example, the controller may be connected to a local networking device (e.g., the aforementioned router) to send to the cloud game server and receive data from the cloud game server. Therefore, while the client device may still need to receive the video output from the cloud-based video game and render the video on a local display, the input latency can be reduced by allowing the controller to directly send the input to the cloud game server via the network and bypass the client device.
[0070] In one embodiment, the networked controller and client device may be configured to send certain types of input directly from the controller to the cloud gaming server, and to send other types of input via the client device. For example, input that detects no additional hardware or processing other than the controller itself may be sent directly from the controller to the cloud gaming server via the network, bypassing the client device. Such inputs may 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 a client device may be sent by a client device to a cloud gaming server. These inputs may include video or audio captured from a gaming environment, which may be processed by the client device before being sent to the cloud gaming server. In addition, input from the controller's motion detection hardware may be processed by the client device in conjunction with the captured video to detect the position and motion of the controller, which will then be transmitted to the cloud gaming server by the client device. It should be understood that the controller device according to various embodiments may also receive data (e.g., feedback data) from a client device or directly from a cloud gaming server.
[0071] Figure 2BThe accumulation of game titles across various generations of game consoles according to an embodiment of the present invention is conceptually described. In the video game industry, video games are developed for specific video game consoles. Over time, a library of game titles is accumulated for a specific game console. For example, in the illustrated figure, a first-generation console 220 has a pile of game titles 228 that have been developed for it. A second-generation console 222 has a pile of game titles 230 that have been developed for it associated with it. And, a third-generation console 224 is also shown as having a pile of game titles 232 developed for it. In other embodiments, there may be a pile of game titles 234 that have been specially developed as cloud-based games for use in conjunction with a client 226. In addition, other types of games such as Internet games can be developed and collected for distribution via a cloud gaming system, as described herein. It will be appreciated that game titles from different generations of game consoles can be collected and merged in a cloud gaming library 212. As shown, the library 212 includes a first-generation console library 236, which includes game titles that have been developed for the first-generation console 220. In a similar manner, library 212 also includes second generation console library 238 and third generation console library 240, which contain video games developed for second and third generation consoles, respectively. Games developed for client 226 and other types of games (such as Internet games) may also be included in game library 212. As can be seen, a large number of game titles from various generations of video game consoles can be accumulated and made available via cloud game libraries. As already described, each of these games can be executed on a virtual machine, which simulates an operating system environment associated with a given game console for which a certain game is developed. In this way, users accessing a cloud-based gaming system can easily access and play games from many different consoles and games from other contacts (such as Internet games and games that have been specially developed to be used with a cloud-based gaming system).
[0072] Figure 3A method for providing a game demo to a user according to an embodiment of the present invention is described. An interface 300 is presented, which provides illustrations or icons 302, 304, 306, 308, 310, and 312 of various game titles that can be used for demonstration. Each icon can be configured to provide an image indicating the game it represents. In one embodiment, when a user navigates to a given icon, the icon can be activated to display an animation or video clip representing the video game or otherwise providing the user with additional information about the content of the video game. In the illustrated embodiment, the user has navigated to icon 302, which is thus highlighted and displays an active animation that displays a scene from the video game. When the user selects the icon, a preview video can be displayed according to method operation 314. If the user continues to select the game at method operation 316, then at method operation 318, the game code for demonstration is started. At method operation 320, the game demo is immediately made available for the user to play the game. It should be understood that because the game demo is cloud-based, the game demo can be immediately made available from the preloaded instantiation of the game demo in the cloud-based system. When the game demo is started, the preload instantiation of the game demo is triggered to execute. At method operation 322, it is determined whether the user wishes to continue the gameplay of the game demo or play an additional demo of the video game (if an additional demo is available). If yes, the method returns to operation 322, and the game demo is continued or a new game demo of the video game is executed. If not, at method operation 324, the option to purchase a small version of the video game is presented to the user. In addition, at method operation 326, the option to purchase a full version of the video game can be presented to the user. If the user chooses to purchase a small version or a full version of the game, then at method operation 328, that version of the game is added to the user account. It should be understood that because the game is made available via a cloud-based gaming system, adding the game to the user account may only require that the access privileges to the specific version of the game be associated with the user account. In addition, once purchased, the game can be made available to the user from the cloud-based system almost immediately, especially when the game can be pre-instantiated in the cloud-based system.
[0073] Figure 4AThe hierarchical organization of various parts of a video game according to an embodiment of the present invention is described. For example, a video game can be organized into various parts 400. In the illustrated embodiment, these parts can include a setting part, an introduction part, various level parts and an ending part. A given level can be further divided into various scenes. As shown, the level 3 part is decomposed into various scenes 402. When a user plays through a given scene, a gameplay timeline of the scene can be recorded, including the recorded video of the user's gameplay and the recorded input data and game state of the executed game application. In the illustrated embodiment, a gameplay timeline 404 represents the user's gameplay of scene 2 of level 3 of the game. According to an embodiment of the present invention, a user can select several parts of his gameplay recorded, and a mini-game or game fragment will be generated from the part. For example, in the illustrated embodiment, a gameplay timeline 404 has a starting point T0 and an ending point Tz. The part from time Tx to time Ty of the gameplay timeline has been selected, and a mini-game will be generated from the part.
[0074] Figure 4BAn interface for selecting a portion of a gameplay timeline to generate a mini-game or game segment according to an embodiment of the present invention is described. In the illustrated embodiment, an interface 412 is presented on a touch screen 411 of a device 410. In one embodiment, the device 410 is a tablet computing device. The interface 412 includes a selectable gameplay timeline 414. In an expanded view 430 of the gameplay timeline 414, it can be seen that, in one embodiment, the gameplay timeline 414 is represented as a film strip with adjustable markers 416 and 418. Marker 416 specifies the start point of the selected gameplay timeline 414, while marker 418 specifies the end point of the selected gameplay timeline. In addition, marker 419 can be positioned within the portion of the gameplay timeline 414 that has been found by the start marker 416 and the end marker 418. For ease of use and to provide the user with a visual understanding of what part of their gameplay is being selected, a start frame 420 corresponding to the point along the gameplay timeline where the marker 416 has been positioned can be displayed. The start frame 420 is an image of the recorded gameplay video corresponding to the time at which the start marker 416 is located. Similarly, a representative end frame 424 corresponding to the point along the gameplay timeline where the marker 418 has been located can be shown. In a similar manner, the end frame 424 is an image of the recorded gameplay video corresponding to the time at which the end marker 418 is located. In addition, a representative frame 422 corresponding to the position of the marker 419 along the gameplay timeline can be displayed. The representative frame 422 can be used as a representative image of a mini-game created based on a selected portion of the gameplay timeline. It should be understood that although a touch screen interface is provided and described in the illustrated embodiment, in other embodiments, various other types of inputs can be used to select a start point and an end point to define a portion of the gameplay for creating a mini-game. For example, input can be provided via a game controller, a keyboard, via gesture input, voice input, and according to other types of input devices and mechanisms to enable selection of a portion of the gameplay and selection of a representative image frame from the recorded gameplay video.
[0075] In some embodiments, the selection mark may not be adjusted continuously along the gameplay timeline, but may be configured to align to a predefined time point along the gameplay timeline instead. For example, the predefined time point may be defined as corresponding to a specific event that occurs in the gameplay timeline. The specific event of the given gameplay timeline to be assigned a predefined time point can be generated based on the analysis of the user's gameplay, and will depend on the specific architecture of the video game gameplay. In one embodiment, the predefined time point can be assigned based on the geographical location of the character in the virtual world defined by the video game. For example, the predefined time point can be assigned to the specific time when the character moves from one geographical place to another geographical place, for example, the movement from one scene position to another scene position, the movement from one city to another city, entering a building, entering a room in a building, entering a means of transport, entering different types of environments or any other kind of important geographical transfer. In another embodiment, the predefined time point can be assigned based on the development of the character or entity of the user controlled in the video game. For example, predefined time points may be assigned when a character or entity controlled by a user completes a task, gains a skill, obtains an object, passes a level, or otherwise completes a portion of a video game, or performs or achieves any other kind of significant activity in a video game.
[0076] Figure 4C An interface for selecting a portion of a gameplay timeline to generate a mini-game according to an embodiment of the present invention is described. A gameplay timeline 414 illustrates a timeline of a selection along which a user can set a start mark 416 and an end mark 418 to specify a game play from which a mini-game will be generated. A start frame 410 corresponding to the position of the start mark 416 and an end frame 424 corresponding to the position of the end mark 418 are shown. It will be appreciated that the frame can be identified from a recorded video of the user's gameplay. A plurality of candidate frames 440, 442, 444, and 446 are presented, from which a user can select a frame to be used as a representative frame of a mini-game. Candidate frames can be determined according to a variety of methods. For example, candidate frames can be presented at fractional intervals from a selected portion of the gameplay timeline. The intervals can be equal, so that the candidate frames are equally spaced along the gameplay timeline, or the intervals can be unequal, so that some frames are closer to each other than other frames along the gameplay timeline. In one embodiment, a higher density of candidate frames is generated from an earlier portion of the selected portion of the gameplay timeline than from a later portion of the selected portion of the gameplay timeline. In one embodiment, a higher density of candidate frames is generated from earlier and later areas of the selected portion of the gameplay timeline, while a lower density of candidate frames is generated from a middle portion of the selected portion of the gameplay timeline.
[0077] After a user has selected a portion of the gameplay from which a mini-game will be created, embodiments of the present invention provide systems and methods for creating a trial mini-game based on the selected portion of the gameplay. More specifically, the mini-game enables another user to play roughly the same portion of the video game that the original user played, and may play under roughly the same conditions and parameters. In this sense, the mini-game is not just a replay video of the original user's gameplay (but a replay video clip of the original user's gameplay can be presented in conjunction with the mini-game), but also a trial portion of the video game itself that has been specified based on the user's selection of his own gameplay. The secondary user can therefore experience a gameplay experience that is roughly similar to the gameplay experience of the original user.
[0078] Figure 5A series of screenshots of a method for generating mini-games from an existing cloud-based video game according to an embodiment of the present invention are described. Screenshot 500 shows the video game play of a user. In the illustrated embodiment, the user plays level 3 of the video game. At screenshot 502, the user has completed level 3 of the video game. After completing the level, the user is immediately provided with an option to generate a game clip or mini-game based on the user's gameplay of the level. When the user chooses to generate a game clip, then at screenshot 504, an interface for selecting a starting point from the recorded user gameplay for the game clip is presented to the user. As already described, the representation of the gameplay timeline can be shown as having an adjustable slider, which the user can move to specify a starting point for the game clip. After the user has defined the starting point, then at screenshot 506, an interface configured to allow the selection of an end point for the game clip is presented to the user. Again, the user moves the adjustable slider to specify an end point in the interface along the representative gameplay timeline. After specifying the start and end points of the gameplay timeline from the user, the system generates a game clip or mini-game, as described elsewhere herein. At screenshot 508, additional options may be presented to the user, such as the option to share the newly created game clip with other users or otherwise inform other users of the newly created game clip, the option to generate another game clip from the same gameplay timeline, the option to continue the gameplay of the current video game, the option to view the user's existing game clip, etc. If the user chooses to view their existing game clip, then at screenshot 510, an interface showing the user's previously created game clip is shown. In the illustrated embodiment, the user can select one of the previously created game clips and view information and statistics related to that game clip, as shown in screenshot 512. Information and statistics associated with a given game clip may include any of the following: the title of the game clip; the video game from which the game clip was originally created; the date the game clip was created; the number of times other users have played the game clip; a completion percentage indicating the average percentage of the game clip completed by users who embarked on playing the game clip; comments left by other users; and the like.
[0079] While in the presently described embodiments, the user is presented with the option to generate a game slice after completing a level of a video game, it should be appreciated that in other embodiments, the user may generate a game slice at any other time during or outside of gameplay of a video game, provided there is recorded gameplay of the video game from which the user may define a selection for the game slice. For example, in one embodiment, an interface may be presented that provides access to various recorded gameplay from various video games associated with the user. The user may select gameplay of a particular video game and generate a game slice by selecting a portion of the recorded gameplay from which the game slice will be generated according to the embodiments described herein.
[0080] Figure 6 A system for generating game clip codes according to an embodiment of the present invention is described. The terms "game clip" and "mini-game" are interchangeably used herein to define discrete trial play portions of a video game generated based on user selections from existing recorded gameplay. In the illustrated embodiment, user gameplay 600 conceptually represents that a user interacts with a full version of a video game. Execute main game code 602 to define the full version of the video game displayed by the user. When playing a video game, it generates various types of gameplay outputs, including video data, game state data, and user input data. These outputs can be recorded in order to define the recorded user gameplay. In the illustrated embodiment, image stream 604 conceptually represents the video data output by the video game. Game state metadata 606 and user input data 608 are also shown. Game state data 606 includes data defining the game state of the video game being executed from one moment to another during gameplay. Game state data may include the value of any variable defining the execution state of the video game. User input data is data generated by capturing user-initiated actions occurring during interaction with a video game, such as may be provided via activation of an input device on a controller device, detection of sensor data (e.g., motion sensors), captured audio input, etc.
[0081] As already described, the user interface can illustrate the recorded user gameplay to facilitate the selection of a part of the user gameplay by the user, and a game clip will be generated from the part. In the illustrated embodiment, the user has defined a selection 610 from the recorded gameplay. The game clip generator uses this selection of the recorded user gameplay to generate a game clip code 622, which defines a limited game based on the selected part of the user gameplay. The game clip generator 612 includes a game state analyzer 614, which analyzes the game state of the recorded selection 610. Based on the analysis of the game state of the recorded selection, the game breakpoint processor determines the appropriate breakpoint to define the beginning and end of the game clip. Breakpoints can be defined based on geography, time, task or goal completion, scene boundaries (physical or time) or any other aspects of the video game that can segment the gameplay of the video game accordingly to generate game clips. A brief description of some illustrative embodiments will be used to highlight some possibilities for breakpoint determination.
[0082] For example, some video games require controlling characters that can move from one geographic scene or location to another. The selected portion of the user's gameplay may be determined to be generated from the gameplay at a specific scene. In such embodiments, the boundaries of a specific scene may define the geographic breakpoints of the game segment, thereby selecting the scene to the exclusion of other scenes, which may require excluding other adjacent or contiguous scenes, as well as scenes that are not adjacent or contiguous or are less relevant or irrelevant to the specific scene. It should be understood that the recorded gameplay selection 610 may require gameplay from multiple scenes, in which case the game breakpoint processor 616 may be configured to define breakpoints according to the boundaries of the multiple scenes selected for the recorded gameplay.
[0083] It should be noted that scenarios may be geographic and temporal in nature. That is, scenarios may not only define a geographic area within the virtual space defined by the video game, but may also be configured to exist during a specific time or at a specific chronological point within the larger context of the video game. Such scenarios may have defined goals or objectives to be achieved by the player. Thus, game breakpoints may be defined based on chronological or other temporal aspects as defined by the video game.
[0084] In addition, a given scene may have associated objects or features that are presented as part of the scene during gameplay. These objects or features may be analyzed to define additional breakpoints based on their contents. For example, objects in a scene may be obtained from a subset of an asset library, in which case a subset of the asset library may be defined for a game segment by the game breakpoint processor 616 to exclude other objects in the asset library that are not used in a scene associated with the recorded gameplay selection. It should be understood that objects and features may be dynamic elements of a given scene, wherein associated mechanisms define changes in response to events occurring in the video game. For example, an object may have a destruction simulation module that determines and adjusts the appearance of an object when it is destroyed (e.g., when struck by a weapon). Alternatively, a feature may be a vehicle that is made available during the scene, wherein the vehicle has associated logic that defines its appearance during gameplay and its operation and response to user input. Such logic or destruction simulation may further define game breakpoints to generate game segments.
[0085] Various aspects of the video game that are defined or otherwise used for selected portions of the video game can be the basis for defining game breakpoints. The examples described herein are provided by way of example only and not by way of limitation. It should be appreciated that in other embodiments, other aspects of the video game can form the basis for defining breakpoints to generate game segments.
[0086] In one embodiment, a video game may be organized into various scenarios that must be completed in a linear fashion, such that a later scenario cannot be attempted until a previous scenario has been first completed. Each scenario may include multiple objectives or goals, some of which may be necessary for completing the scenario, and some of which may be optional for completing the scenario. Objectives may include navigating from a starting location to a predefined ending location within a scenario, surviving for a predefined length of time, destroying a predefined number of enemies, acquiring a specific number of points, defeating a specific enemy, or any other activity that may define an objective within the game. A scenario may have various predefined completion points, that is, points to which a user can return once they have reached the completion point if the user becomes unable to continue gameplay for some reason (e.g., the user quits the game, the user's game character dies or loses life or health, the user's vehicle crashes, etc.). At the predefined completion point, the video game may be configured to automatically save the user's progress or present the user with an option to save their progress.
[0087] In one embodiment, the game breakpoint processor 616 is configured to define the game breakpoint at a predefined completion point. In one embodiment, this is accomplished by finding the nearest completion point to the selected start point and end point selected by the recorded user gameplay and defining the game breakpoint of the game segment using these nearest completion points. In another embodiment, the start breakpoint is defined using the nearest completion point that appears before the selected start point selected by the recorded gameplay, and the end breakpoint for creating the game segment is defined using the nearest completion point that appears after the selected end point selected by the recorded gameplay. In yet another embodiment, if the completion point is within a predefined radius of any one of the start point or end point selected by the recorded user gameplay (e.g., before or after), the corresponding start or end game breakpoint of the game segment is defined using the completion point. However, if no completion point is within a predefined radius, the game breakpoint of the user selected start or end point of the recorded selection is defined. In other embodiments, the predefined radius for the start point and end point may be different for the purpose of determining whether to define the game breakpoint using an existing completion point.
[0088] As already discussed, the game breakpoint processor 616 determines the appropriate breakpoints applicable to various aspects of the video game based on the analysis of the recorded user's game play selection. The breakpoint defined by the processor 616 is used to define the limited range of the game fragment that will be selected to be generated based on the recorded user's game play. In one embodiment, an overlay processor 617 is provided to be used to generate an overlay that can help improve the user experience when playing the game fragment generated by the game fragment generator 612. For example, in one embodiment, the overlay processor 617 defines the pre-game fragment data that can be provided as an introduction to the game fragment before the actual game play of the game fragment, which defines a video or game play or additional information. An example of pre-game fragment data is an introductory video that can provide a situation to the user of the game play of the starting game fragment. In another embodiment, pre-game fragment data can define the introductory game play of the game fragment, which can provide the user with the opportunity to learn the skills that can be useful or necessary for playing the game fragment. In another embodiment, pre-game fragment data can define a series of one or more information screens or images, which provide information about the game fragment to the user. Such information may include controller configuration, story background information, objectives or goals, maps, or any other type of information related to the game segment that may be useful to the user or otherwise improve the user's experience of playing the game segment.
[0089] The overlay processor 617 can also be configured to define data after the game clip. In some embodiments, data after the game clip can define a video or image to be displayed after the game play of the game clip is completed. For example, a congratulatory video can be displayed after the user completes the game clip. Such videos can be customized based on the user's game play of the game clip, for example, by displaying information or images based on the user's game play. In one embodiment, data after the game clip can define a replay mechanism to play the recorded part of the user's game play of the game clip after the game clip is completed. In another embodiment, data after the game clip can be configured to display statistics about the user's game play of the game clip, and can indicate the comparison of the game play of the user with the game play of other users or the game play of the original creator of the game clip. In other other embodiments, data after the game clip can define additional interactive elements to be presented to the user after the game clip is completed. These elements can include options for partially or entirely purchasing the video game based on the game clip, options for turning to additional information sources related to the video game, etc.
[0090] In some embodiments, the overlay processor 617 may be configured to define elements overlaid into the game clip. These elements may include elements that can be customized by the user playing the game clip, such as customization of characters, targets, assets, and other types of customization options. In some embodiments, the overlay processor 617 may be configured to define simplified elements for the game clip to reduce the complexity of the game clip code and reduce the amount of resources required to execute the game clip. For example, many video games include artificial intelligence (AI) entities, such as characters, vehicles, enemies, etc. These AI entities can be managed by an artificial intelligence model in the full video game, and the artificial intelligence model defines the reaction and activity of the AI entity based on the events that occur in the video game. However, in the context of a game clip with a limited range, it is acceptable to simply define the activity of the AI entity by a hard-coded definition or a simplified extrapolation method, rather than completely modeling the activity of the AI entity as in the full video game.
[0091] For example, if in a recorded gameplay selection of a full video game, a given AI task moves in a certain way according to its AI model (which is unlikely to change in a game slice), it may be more efficient to define an approximate representation of the movement of the AI task for that game slice. This approximate representation will not require the inclusion of the full AI model as part of the game slice code, but will provide the user playing the game slice with an experience with respect to the AI character that is substantially similar to the experience of the original user's gameplay from which the game slice was generated. When there are multiple AI entities and they interact in the user's recorded gameplay selection, the resource savings achieved through the approximate representation of the AI entity activities may be more significant. Because each of the AI entities may have an AI model that depends on the output of the AI models of other AI entities. However, when the gameplay was recorded, the activities of each of these AI entities were known and can therefore be reproduced in the game slice through simplified mechanisms such as direct encoding of their control variables and approximate representations of their activities.
[0092] Continue to view Figure 6 , a game setup state processor 618 is provided for defining the initial state of the game slice. Based on the operation of the game state analyzer 614, the game breakpoint processor 616, and the game setup state processor 618, the code assembly manager 620 assembles the various code portions to define the game slice code 622. When the game slice code 622 is executed, the user gameplay 624 provides input to define the execution state of the game slice code, which generates gameplay output, which includes video data and feedback data for rendering the game slice to the user. The video data may include a pre-game slice overlay video 622, a game slice video 624 (which is a video generated due to the gameplay of the game slice), and a post-game slice overlay video 626.
[0093] It should be appreciated that in one embodiment, the game slice code 622 is completely self-contained, including all code portions required to execute the game slice. However, in other embodiments, the game slice code 622 may incorporate references or pointers to existing code portions in the main game code of the full video game. In addition, the game slice code 622 may include references or utilize existing assets in the asset library of the main game code of the full video game. However, in other embodiments, a new asset library may be generated for the game slice code.
[0094] Fig. 7AThe modification of the virtual space for the purpose of producing a game slice of a video game according to an embodiment of the present invention is described. Map 700 represents a scene or geographic part of a video game. The map as shown in the figure is a two-dimensional representation of a three-dimensional virtual space that can be represented during the actual game play of the video game and is navigated and experienced. As shown in the figure, map 700 illustrates a zone 702, and several paths 704, 706, 708 and 710. In the recorded game play of the video game, the character 712 of the user moves from zone 702 to path 710. Based on this recorded movement and other analysis of the game play of the video game, it can be determined that for the generation of the game slice, additional paths 704, 706 and 708 are unnecessary. The path can represent an incorrect selection compared to path 710, or can lead to an area unrelated to the game slice, or can be transferred from the ability of the game slice player to follow the path, and experience a game play similar to the game play of the original user. Additionally, if paths 704, 706, and 708 lead to areas that are not supported in the game slice, then including such paths may lead to confusion among players, or at least a poor user experience. Therefore, in the modified map 720, paths 704, 706, and 708 are made unavailable for gameplay in the game slice, while path 710 and area 702 remain unchanged. Thus, when a user plays a game slice that incorporates the terrain defined by map 720, he will experience a virtual space in which paths 704, 706, and 708 are unavailable for traversal. The user will then be more likely to traverse path 710 as the original user did, and therefore experience similar gameplay.
[0095] It will be appreciated that the portion of the virtual space defined for a game segment or mini-game may be defined by boundaries determined based on the user's recorded gameplay. The boundaries will define a sub-area of a larger virtual space and include a subset of the features available in the larger virtual space. In some embodiments, the virtual space boundaries may be determined by determining locations in the virtual space defined by the user's gameplay, and then determining predefined boundaries associated with the virtual space that are closest to those locations and arranged to include the locations. For example, the user's gameplay may define a path that the user's video game character traverses. This path may be analyzed, and based on the location of the path in the virtual space, a set of predefined boundaries may be selected to define the area that includes the path. In some embodiments, the predefined boundaries may be defined by specific features that inherently define portions of the virtual space (e.g., doors, windows, walls, rooms, corridors, fences, roads, intersections, hallways, etc.).
[0096] Figure 7BThe modification of the scene graph for producing the purpose of game slice according to an embodiment of the present invention is described. The scene graph 730 conceptually illustrates the organization of each scene A to G of a video game. It should be understood that the scene as described herein can be geographical and / or temporal in nature, and each can represent a trial part of a video game, such as a stage, level, bar, position or any other organizational unit in a video game, and a player can advance from one scene to another scene according to this. In the scene graph 730, each node representing scene A to G is shown. As shown in the figure, the player can advance from scene A to scene B, and from scene B to scene D or E. The player can also advance from scene A to scene C, and from scene C to scene F or G. The scene graph 730 illustrates the scene organization of a full video game. However, for the purpose of creating a game slice, a game slice may not need all available scenes. Therefore, for example, the scene graph 732 illustrates the organization of the scene for a game slice. As shown in the figure, the scene graph 732 includes scenes A, B, C and F, but does not include the remaining scenes included in the scene graph 730 of the full video game. Thus, the user can advance from scene A to scene B or C, and from scene C to scene F. However, other scenes from the full video game scene graph 730 are not available for the gameplay in the game slice. As described, the system according to an embodiment of the present invention can be configured to limit the inclusion of scenes when generating game slices. In this way, the game slice does not include scenes that are not required for the limited context and intended purpose of its gameplay.
[0097] Figure 8A method for generating a game clip according to an embodiment of the present invention is described. At method operation 800, user gameplay of a video game is recorded, including a video recording of the user's gameplay and video game data, such as input data and game state data of the video game. At method operation 802, a user interface for selecting the recorded gameplay to generate a game clip is presented. The interface defines a mechanism for receiving user input to define a start and end point from the recorded gameplay. For example, an interface for reviewing the recorded gameplay video may be provided to allow the user to define the start and end points within the gameplay video based on navigation or replay of the gameplay video. At method operation 804, a user-defined selection of the gameplay video is received. At method operation 806, based on the received user-defined selection of the gameplay video, a video game breakpoint is identified. In one embodiment, there are predefined breakpoints for the video game. Based on the user-defined selection of the gameplay video, the breakpoints closest to the start and end points of the user-defined selection may be selected as game breakpoints for the game clip to be generated. At method operation 808, a game code for the segment selection as defined by the identified breakpoint is defined. The method operation 810 defines a game setup state for the segment selection. In one embodiment, the game setup state is based on the game state that existed during the user's recorded gameplay. At method operation 812, a game segment code is generated, and at method operation 814, the game segment code is stored in a game segment library and associated with the user's account.
[0098] In one embodiment, the method may include method operation 816, wherein the game clip video selection suggested based on the recorded gameplay video and data generation of the user. The suggested selection of the user's gameplay can be determined based on the analysis of the recorded gameplay of the user. For example, the part of the gameplay where a higher activity level (e.g., the activity level exceeding a predefined threshold) is detected can be suggested as a possible game clip video selection. At method operation 818, the aforementioned user interface for game clip selection can present the suggested game clip video selection to the user. In one embodiment, a screenshot representing each suggested game clip video selection can be presented to the user. At method operation 820, the user's selection of one of the suggested game clip video selections is received. Based on user selection, a game clip code can be generated and stored, as previously described.
[0099] Fig. 9AThe interface for browsing the game fragment associated with various game tiles according to an embodiment of the present invention is described. In the illustrated embodiment, the interface is organized into a series of tabs, comprising tabs 900, 902 and 904, which, when selected, provide access rights to various pages corresponding to different game tiles. In the illustrated embodiment, the current selection tab 900 is made so that the page presented provides information about the game fragment created for a specific game tile T1. Game fragment list 904 lists the various game fragments created from game tile T1. In one embodiment, game fragment list 904 also identifies the user who created the game fragment (for example, displaying the user name of the user who created the game fragment). In one embodiment, game fragment list 904 can be browsed or navigated to highlight the different game fragments in the game fragment listed in the game fragment list 904. In the illustrated embodiment, the game fragment A created by user A is currently highlighted, and this causes the details 906 relevant to game fragment A to be displayed. Details 906 may include various information about the game clip, such as the level or stage from which the game clip was produced, game details providing more specific information about the location from which the game clip was created, a comment from user A who created the game clip, a number of comments from others, the number of times the game clip has been displayed, or any other type of information about the game clip that may be provided when a listing of the game clip is highlighted.
[0100] Fig. 9B The game fragment information page according to an embodiment of the present invention is described. The game fragment information page is for reference Fig. 9A The game segment A discussed above can be selected by the user as follows: Fig. 9A The list of game segments A shown in . Continue to see Fig. 9B , the game clip information page provides various information related to the game clip. In addition to the bibliographic information about the game clip (e.g., tile, the user name of the user who created the game clip, the creation date, etc.), a video 910 of the game clip can be displayed. In one embodiment, the video 910 is a recorded game play video of the original user who created the game clip. In another embodiment, the video 910 can be a recorded game play video of other users, such as the user who reached the highest score on the game clip, or the user who recently played the game clip. In one embodiment, the video 910 can be a live feed of the user who is currently playing the game clip. In other embodiments, instead of a video, a representative image of the game clip can be shown.
[0101] The game slice information page may further include a selectable button 912 for initiating gameplay of the game slice. The game slice information page may also include a details column 914, which may characterize various details and statistics about the game slice, such as the number of times played, average completion rate, etc. The game slice information page may also include a comments column 916, which characterizes comments left by users. A sort button 918 may be provided to select various options for sorting the comments (e.g., chronological order, most popular, by rating, by relationship to the current user (e.g., comments by friends of the user in the social graph are prioritized), etc.).
[0102] Fig.10 The view of the user's account information according to an embodiment of the present invention is described, including an instant view of friends in a cloud gaming social network. The library bar 1002 displays various game tiles in the user's library. These game tiles may be game tiles that the user has purchased or otherwise acquired. In addition to tile information, the display of game tiles may also include the display of representative graphics. It will be appreciated that the game may be a full version game tile, but it may also be a simulated version of a limited version, each of which may be a part of a full version game tile, or limited in some capacity compared to a full version game tile. The friend list 1004 lists the current user's friends in a social network associated with the cloud gaming system (i.e., other users in the social graph of the current user). The social network may be a social network dedicated to the cloud gaming system, or may be a (third party) social network that exists separately from the cloud gaming system, and the cloud gaming system communicates with it to obtain information about the user's social graph. The friends list 1004 may include additional information about the user's friends, such as describing the games each friend owns, identifying the friend's online status (e.g., online, offline, inactive, etc.), the friend's last login and its duration, the last game played by the friend, etc.
[0103] In one embodiment, the live activity user bar 1006 provides a live view of the gameplay of a friend who is currently online and may be playing a video game. In one embodiment, each user has the option of defining whether to make his live gameplay available for live viewing by other users. In this embodiment, the live view is presented only from those users who have the option of specifying that their live gameplay can be viewed by other users. In the illustrated embodiment, the live activity user bar 1006 includes a live view 1008 of the current gameplay of friend A, and a live view 1010 of the current gameplay of friend B. In one embodiment, the current user can navigate or browse the friends of the friend list 1004, and / or browse the live views available in the live activity user bar 1006. In one embodiment, when the current user navigates to the live view, the live view can be highlighted and can be rendered in a manner different from other live views. For example, the live view can be displayed by default with a desaturated color scheme, but when highlighted or selected, it is displayed with a fully saturated color scheme. The live view can also be displayed by default with a lower resolution, frame rate or size, but when selected, it is displayed with a higher resolution, frame rate or size. In this way, bandwidth may be allocated to a particular live view based on user selection so as to present the live view that the user is interested in viewing with greater fidelity than other live views that may be active at the same time. It should be appreciated that the live view may not only display specific gameplay of the video game, but may also display other activities of a friend on the cloud gaming system, such as their navigation through menus, or other types of activities related to their cloud gaming system.
[0104] In one embodiment, the live view is available only to those users who are currently active and participating in the gameplay of the video game. In other words, when a given user is offline, or online but not actively participating in the gameplay of the video game, the live view of that user is not available. Therefore, when the user is performing other non-gameplay activities on the cloud gaming system (e.g., navigating the graphical interface of the cloud gaming system while logged into the system), this activity is not made available in the live feed for others to view. In another embodiment, the live view may include all activities of the user logged into the cloud gaming system, including the user's gameplay as well as other non-gameplay activities.
[0105] In one embodiment, the live view of a given user may be filtered so as not to potentially expose sensitive or personal information for others to view. For example, a cloud gaming system may support a chat function. Because some users may want their chats to remain private, an option to exclude chat logs when presenting a live view may be provided. It should be appreciated that the chat function may be implemented during gameplay activities and during non-gameplay activities, and may be filtered out of the live view of any one or both of these situations. In another embodiment, aspects of a video game may be filtered out of the live view. For example, a user may wish to keep certain user-defined settings confidential because they may give the user an advantage during gameplay. Therefore, an option may be provided that activities related to settings are not displayed as part of a live feed (e.g., when a user accesses a settings interface of a video game). In another embodiment, a live view may be configured to prevent viewing of personal information (e.g., when a user accesses a personal information page, enters payment information, enters a password, etc., preventing viewing).
[0106] In one embodiment, the interface provides the primary user with an option to request to join a game session of a secondary user who is currently online. For example, the primary user may be watching a live gameplay feed of a secondary user and wish to join the secondary user's gameplay. In one embodiment, activation of the option sends a request to the secondary user, notifying the secondary user that the primary user wishes to join its session. If the secondary user accepts the request, a multi-player mode of the video game is initiated, thereby facilitating multi-player gameplay of the first and second users. In another embodiment, two or more secondary users may already be participating in multi-player gameplay. In this embodiment, the primary user may send a request to join the multi-player gameplay. After one of the secondary users (e.g., the designated host of the gameplay session) accepts the request, the primary user is able to join the multi-player session of the video game. It should be appreciated that the aforementioned interface showing the live gameplay feed of the secondary user facilitates the primary user to join the gameplay of the secondary user after being able to see the gameplay of the secondary user.
[0107] In one embodiment, after the primary user determines the ownership status of the video game, the option of requesting to join the gameplay of the secondary user is predicted. If the primary user does not own the video game, the option cannot be presented, and if the primary user owns the same video game as the secondary user, the option of requesting to join the gameplay of the secondary user is made available as part of the interface. In one embodiment, when it is determined that the primary user is not the owner of the video game, then the primary user can still join the gameplay of the secondary user in multiplayer mode, but with limited capabilities, such as the duration of the gameplay, available scenes / levels / stages, etc., customization options, abilities, skills, weapons, characters, vehicles, or any other aspects of the video game that can be limited. In one embodiment, after the gameplay of the limited version of the video game, the option of purchasing the complete video game is provided to the primary user. In another embodiment, the option of an additional part of the video game is provided to the primary user.
[0108] Continue to view Fig.10 , the displayed information may also include the user's friends' game history information 1012. The game history information 1012 may provide information about a given user's gameplay history, such as recently played games, duration of gameplay sessions, statistics related to gameplay, and the like.
[0109] It will be appreciated that many methods and configurations for presenting a cloud gaming interface are possible according to various embodiments of the present invention. In one such embodiment, a method for displaying a current game state of a user of a cloud gaming system is provided, comprising the following method operations: presenting a cloud gaming interface of a primary user; determining one or more secondary users who are friends of the primary user; determining a current state of each of the secondary users, the current state being one of online or offline; for at least one online secondary user, presenting a live feed of a current game session of the online secondary user in the cloud gaming interface of the primary user, the live feed including an option providing the primary user to join the current game session of the online secondary user; in response to receiving a request to initiate an option for the primary user to join the current game session of the online secondary user, initiating a multiplayer mode for the current game session of the online secondary user, the multiplayer mode providing gameplay of the primary user in the current game session of the online secondary user; wherein initiating the multiplayer mode includes determining an ownership state of the primary user relative to a video game defining the current game session of the online secondary user; wherein when it is determined that the primary user owns the video game, then the multiplayer mode provides gameplay of a full version of the video game; wherein when it is determined that the primary user does not own the video game, then the multiplayer mode provides gameplay of a limited version of the video game.
[0110] In one embodiment, the limited version of the video game defines a reduction in one or more of available levels, available scenarios, available features, time limits, virtual space, campaign length, number of lives, or number of replays compared to the full version of the video game.
[0111] In one embodiment, the method further includes method operations of presenting the primary user with an option to purchase at least a portion of the video game when the primary user does not own the video game.
[0112] In one embodiment, a live feed of an online secondary user is presented at a first resolution; and selection of the live feed triggers presentation of the live feed of the online secondary user at a second resolution higher than the first resolution.
[0113] In one embodiment, the live feed of the online secondary user is presented in a desaturated color mode; and selection of the live feed triggers presentation of the live feed of the online secondary user in a saturated color mode.
[0114] In one embodiment, presenting the cloud gaming interface includes presenting a library of game tiles associated with each of the secondary users.
[0115] In one embodiment, determining the one or more secondary users includes accessing a social graph associated with the primary user. In one embodiment, accessing the social graph includes accessing an API of a social network.
[0116] In one embodiment, presenting the primary user's cloud gaming interface includes presenting a list of each of the secondary users in order of priority based on current status, recency of login, or co-ownership of the game with the primary user.
[0117] Fig.11A method for presenting a live gameplay feed of a current user's friends according to an embodiment of the present invention is described. At method operation 1100, the current user logs into the cloud gaming system. At method operation 1102, the current user's friends are identified from the current user's social graph. As noted, the current user's social graph may come from a social network dedicated to the cloud gaming system, or may come from a social network that exists separately from the cloud gaming system. At method operation 1104, library information for the user's friends is retrieved. The library information for the user's friends may identify game tiles in the user's friend library. At method operation 1106, the current status of the current user's friends is identified. If the current status of a given friend is online, then at method operation 1108, it is determined whether the given friend is currently participating in the gameplay of a video game on a cloud-based system. If so, then at method operation 1112, a live gameplay feed of the user is obtained. At method operation 1110, the display priority of the current user's friends may be determined based on various factors or preferences. At method operation 1114, the current user's friends, their status information, and live gameplay feed are presented in order of priority. In one embodiment, it may be determined that the current user's online friends have a higher priority than currently offline friends. In one embodiment, it may be determined that the current user's friends who are currently participating in active gameplay have a higher priority than friends who are not currently participating in active gameplay. In one embodiment, it may be determined that friends with available live gameplay feeds have a higher priority than other friends. In one embodiment, the priority of friends may be determined based on the recency of the friends having logged into the cloud gaming system. In another embodiment, the priority of friends may be determined based on the co-ownership of the video game. The foregoing examples of determining the priority of friends are provided only as examples and not as limitations. Those skilled in the art will appreciate that in other embodiments, the current user's friends may be determined and presented based on a priority ranking based on any other relevant factors.
[0118] Fig.12A system including a cloud gaming system and a social network according to an embodiment of the present invention is described. A cloud gaming system 1200 provides access to your games based on the cloud. The cloud gaming system includes a game library 1202, which contains various game tiles available for users to play. User data 1204 contains various data associated with a user account, such as game tiles owned by the user, and any saved gameplay of the user. In the illustrated embodiment, various gameplay sessions are conceptually shown, including session A, session B, and session C. Session A defines the gameplay of user A, and user A watches the gameplay of session A on display 1208. The gameplay of session A is rendered as view 1210 on user A's display 1208. Similarly, session B defines the gameplay of user B, which is rendered as view 1214 on user B's device 1212. In the illustrated embodiment, the view 1214 of user B's session shows an interface including live views from other users, including the live view of session A and the live view of session C. As gameplay from sessions A and C proceeds, gameplay video is output from sessions A and C and may be streamed via user B's session for display in user B's view 1214. The gameplay video may be processed for streaming via user B's session, such as reducing resolution, size, frame rate, color saturation, etc., to conserve bandwidth.
[0119] Continue to view Fig.12 , a social network 1216 is also shown. The social network 1216 includes user data 1218, which includes, for example, a user's social graph, posts, pictures, videos, biographical information, etc. An application 1220 can be run on a social network platform. A graphical user interface (GUI) 1222 defines an interface for interacting with the social network. An API 1224 facilitates access to the social network. A notification module 1226 handles notifications for social network users according to their preferences. As already noted, user B's view 1214 includes live feeds of conversations from other users. In one embodiment, user B's friends are determined based on accessing the API 1224 of the social network 1216 to determine members of user B's social graph. These members are cross-referenced against users of the cloud gaming system to provide live gameplay feeds from user B's friends, including feeds from conversations A and C.
[0120] In one embodiment, user A chooses to share from his gameplay session A to his social graph. User A's session A communicates via API 1224 to initiate notification module 1226 of social network 1216 to send appropriate notifications to friends in user A's social graph. When social network users 1230 in user A's social graph access the social network via device 1228, they can see messages or posts from user A about user A's session. If set, the user can receive notifications, such as emails indicating that user A has shared something on the social network. It should be understood that user A can share information about various video game related activities, such as achievements in a video game, invitations to play a video game, reviews about a video game, invitations to watch or play a game clip that user A has created, video clips of user A's gameplay, etc.
[0121] Fig.13 1 is a diagram illustrating various game state variables over time according to an embodiment of the present invention. It should be understood that in various embodiments, there may be many different kinds of game state variables that will be specific to a particular video game. Those variables shown and described with reference to the illustrated embodiment are provided only as examples and not as limitations. Game state variables may include values defined by executing the video game, as well as values defined by user input. In the illustrated embodiment, there are shown position variables that indicate the X, Y, and Z positions of objects (such as characters or vehicles) in the virtual space of the video game. The camera angle variable indicates the direction of the virtual camera or virtual view in the video game. In one embodiment, the camera angle is defined by an azimuth component measured relative to an azimuth reference (e.g., along a level plane) and an inclination component measured relative to an inclination reference (e.g., relative to vertical). Action variables such as the illustrated action A and B variables indicate the start and hold of various actions within the video game. It should be understood that the actions of a given video game will be specific to the context of the video game. For example, an action may include the initiation of a particular maneuver, the application of a skill, the triggering of a modification mechanism that modifies an existing action (e.g., increasing its intensity or frequency level, etc.), or any other type of action or activity that may be triggered by user input during the course of a video game. Fig.13 , a weapon variable indicates the triggering of a weapon of the video game. A health variable indicates, for example, the health level of a user's character in the video game. A button variable indicates the state of a button on a controller device, such as whether the button is in a pressed state or in a released state. A joystick state variable in the illustrated embodiment indicates the magnitude of movement of the joystick relative to a neutral position. The foregoing game state variables that have been described with reference to the illustrated embodiment are merely exemplary, and those skilled in the art will recognize that many other types of game state variables may be tracked over time.
[0122] Reference again Figure 6 In one embodiment, the game state analyzer 614 may be configured to analyze the game state variables of the user's recorded gameplay. Based on the analysis of the user's recorded gameplay, various focus areas of the user's recorded gameplay may be defined and presented to the user as possible choices for generating game clips therefrom. For example, a zone of gameplay characterized by a high activity level for certain game state variables may define the user's choice of recorded gameplay. It should be understood that the activity level for a given game state variable may be based on various factors such as intensity level, activation frequency, duration of retention, etc. In some embodiments, the analysis of the game state variables may necessitate searching for zones of gameplay where the activity levels of two or more different game state variables are related in a predefined manner, such as two or more variables having a high activity level at the same time. The high activity level may be determined based on a predefined threshold.
[0123] In various embodiments, the focus area of the user's recorded gameplay may be automatically determined based on threshold detection of any one or more of the following: one or more user inputs, rate of user inputs, frequency of inputs, repetition of input types, rate of occurrence of input patterns, combination inputs (e.g., key combinations), motion vectors, pressure applied on a controller, user actuation (e.g., detected based on captured image or audio data of the user).
[0124] Fig.14A A method for generating a game clip of a linear type video game according to an embodiment of the present invention is described. Broadly speaking, a linear video game is a video game in which the player's advancement through the video game follows a linear process, wherein in order to advance through the video game, the player must complete a previous goal before advancing to a subsequent goal. Therefore, all players must complete the same goals in the same order in order to advance through the video game. Goals in a linear video game can be linked to both geographical and temporal locations within the context of the spatiotemporal storyline of the video game. At method operation 1400, a scene of the video game is identified. The scene can be both spatial and temporal in nature and have various goals defined therein. At method operation 1402, a spatial or temporal length of the scene is defined. The length of the scene can be defined based on user input, and the length of the scene can also be defined based on goals linked to the scene. At method operation 1404, initial properties of an item, character, or any other object within the scene to which properties can be assigned are defined. At method operation 1406, a game clip is generated for the identified length of the scene with the initial properties as previously defined.
[0125] Fig. 14BA method for generating a game clip of an open world video game according to an embodiment of the present invention is described. An open world video game can be characterized as a video game in which a user is free to pursue any number of objectives in an order of his or her own choice. Open world video games also typically allow the user to navigate one or more virtual spaces at will. In order to advance to different levels of the video game and complete the video game, a certain set of objectives may need to be completed, however, the user is free to complete these objectives in different orders. At method operation 1410, a location within the virtual world of the video game is identified. At method operation 1412, a restricted portion of the virtual world is defined. The restricted portion of the virtual world can be defined based on user input that defines a selection of recorded gameplay as described herein. For example, the gameplay of a user in an open world video game can involve a large number of locations during the course of the gameplay. However, for the purpose of generating a game clip, the user can select a portion of the gameplay that occurs within a restricted geographic area of the virtual world of the video game. This restricted geographic area can be determined based on an analysis of the user-selected portion of the recorded gameplay, such as by tracking the location of the user-controlled character within the virtual world, and defining a boundary that includes all locations where the character has been found to exist. Initial characteristics of various objects, characters, items, vehicles, or any other objects found within the restricted geographic area previously determined from the user's recorded gameplay selections are defined at method operation 1414. At method operation 1416, a game slice is generated based on the restricted geographic area of the open world and the previously defined characteristics.
[0126] Fig. 14CA method for generating a game clip of a sports video game according to an embodiment of the present invention is described. The game clip may be generated based on a user-defined selection of a user's recorded gameplay. At method operation 1420, a setting is identified based on the user's selection of recorded gameplay. For example, the setting may define the location of the sporting event, such as a stadium, a stadium, a track, or any other local setting where the sporting event of the video game may occur. At method operation 1422, a time period is defined based on the user's selection of recorded gameplay. The time period defines the portion of time for which the game clip will be generated, and may be defined based on the user's selection of recorded gameplay. The time period of the sports video game may determine certain aspects of the video game clip, such as special rules or activities that occur during certain time periods during the sport. At method operation 1424, the players of the game clip are determined based on the players included in the user's selection of recorded gameplay. The players may include one or more characters that have been defined by the user, as well as artificial intelligence (AI) characters that are controlled by the AI character control logic that executes the video game during gameplay time. As described elsewhere herein, in some examples, the actions of the AI characters may be approximated. In some embodiments, AI character control logic is defined for the game clip using parameters as defined in the user's recorded gameplay selections. At method operation 1426, scene attributes of the location setting of the sports video game clip are defined. For example, these attributes may include attributes such as weather, track or course conditions, and other attributes of the sports setting. At method operation 1428, a game clip of the video game is generated based on the aforementioned parameters.
[0127] Fig.15The formation of a multi-game slice game according to an embodiment of the present invention is conceptually described. A video game can be organized into various levels or stages. In the illustrated embodiment, the gameplay of users from various levels of the video game is shown. Specifically, the gameplay timeline 1500 represents the gameplay of a user from the first level of the video game, while the gameplay timeline 1502 and the gameplay timeline 1506 represent the gameplay of users from the second and third levels of the video game, respectively. According to an embodiment of the present invention, a user can link multiple game slices from a video game to form a larger multi-game slice mini-game. In the illustrated embodiment, the first game slice 1514 is defined using the selection 1502 of the gameplay timeline 1500 from the user. The second game slice 1818 is defined using the selection 1504 of the gameplay timeline 1506 from two users. And the third game slice 1522 is defined using the selection 1508 of the gameplay timeline 1506 from the user. The first, second and third game slices are arranged in a sequential order to define the mini-game 1510. In doing so, mini-game 1510 includes game clips from each of the first, second, and third levels of the video game. In this way, a user playing mini-game 1510 is able to experience limited portions of multiple levels of the video game by playing through mini-game 1510. This can be useful in providing a more compelling preview or demonstration of a video game than a conventional game demo, where a user can play only a portion of a level or stage from a video game. The experience is similar to that of a movie trailer, which typically provides clips from different parts of the same movie, rather than just a single clip. According to embodiments of the present invention, a user can enjoy a multi-part game demo that provides a better sense of the scope of the full video game and can characterize the gameplay in a continuous manner from one part to the next.
[0128] In one embodiment, the user can insert additional materials before or after the game segment, such as user-defined videos, messages, images or any other type of information. In the illustrated embodiment, an introduction 1512 is provided for introducing the player to the mini-game 1510 and perhaps also introducing the player to the first game segment 1514. In addition, a message 1516 is inserted between the first game segment 1514 and the second game segment 1518, and another message 1520 is inserted between the second game segment 1518 and the third game segment 1522. In one embodiment, the inserted material may include a recorded game play video of the game play of the original user from which the game segment was generated. If the recorded game play is shown before playing the game segment, the player who started the game segment can better understand the game segment and its goal before starting the game play, and if it is shown after the game play of the game segment, the player can understand how its game play to the game segment compares with the game play of the original user.
[0129] Fig.16 Conceptually illustrate the creation of a multi-game slice simulation game according to an embodiment of the present invention. In the illustrated embodiment, a recorded gameplay timeline 1600 of a user of Game A is shown, as well as a recorded gameplay timeline 1604 of a user of Game B, and a recorded gameplay timeline 1608 of a user of Game C. In one embodiment, a user is able to create a multi-game slice mini-game based on game slices from different video games. In the illustrated embodiment, a game slice 1616 is defined using a selection 1602 of the user's recorded gameplay 1600, while a game slice 1620 is defined using a selection 1606 from the user's recorded gameplay 1604, and a game slice 1624 is defined using a selection 1610 from the user's recorded gameplay 1608. Game slices 1616, 1620, and 1624 are sequentially arranged to define a simulation game 1612. Optionally, additional material may be inserted before or after the game slices. In the illustrated embodiment, introduction 1614 is inserted before game segment 1616 , while interlude 1618 is defined between game segment 1616 and game segment 1620 , and another interlude 1622 is defined between game segment 1620 and game segment 1624 .
[0130] In the illustrated embodiment, it will be appreciated that the game slices are taken from different video games. This allows the user greater flexibility to mix together game slices from across different game tiles, types, and even console platform generations. As just an example, a user can create a simulation game with game slices from each of several game tiles in a single video game series. In this way, players of the simulation game can experience and enjoy the evolution of the video game series with a continuous gameplay experience.
[0131] Embodiments of the present invention have been generally described with reference to cloud-based gaming systems. However, it will be appreciated by those skilled in the art that similar concepts and principles as described herein may be applicable to conventional console-based video gaming systems, possibly in conjunction with cloud-based gaming systems. For example, a user may play a console-based video game with the user's gameplay input data and game retention metadata recorded during gameplay. Based on the user's gameplay input data and game state metadata, the actual gameplay output of the video game may be regenerated at a later time. Therefore, the recorded input data and game state metadata may be utilized in conjunction with the video game code to provide an interface for selecting a portion of the user's gameplay from which a mini-game is generated, as described. Simulated game code may be generated at the console and uploaded to the cloud system and made available for download by other users. In another embodiment, the cloud system generates simulated game code after receiving a selected portion of the user's gameplay input data and game state metadata. The cloud system processes the selected portion of the user's gameplay input data and game state metadata to generate simulated game code based on the video game code stored in the cloud system. Once generated, the simulated game can be made available for cloud-based gaming, where execution of the simulated game occurs in the cloud-based system, but the mini-game can also be made available for download to a traditional console-based system for execution on the console to facilitate console-based gameplay of the mini-game. In this way, the simulated game can be created and played by both users of console-based video gaming systems as well as users of cloud-based video gaming systems.
[0132] Embodiments of the present invention have been generally described with reference to simulated games or trial user-customized portions of video games. However, those skilled in the art will appreciate that many of the principles set forth herein are applicable to the generation and sharing of recorded gameplay, including sharing recorded gameplay videos, screenshots, and live streaming of active gameplay. In some embodiments, providing access to a mini-game (e.g., in response to receiving a notification) may include presentation of a recorded video of the original user's gameplay that formed the basis of the simulated game. In other embodiments, an interface for facilitating sharing of a user's gameplay to the user's social graph is contemplated.
[0133] In one embodiment, a method for storing gameplay is contemplated. The gameplay may be executed by the operating system of a game console in response to a user request, which may be in the form of a standard file operation relative to a set of data associated with the desired gameplay. The request may be transmitted from an application associated with the game. The gameplay may include, for example, video content, audio content, and / or static visual content, including wallpapers, themes, code "add-on" content, or any other type of content associated with the game. It is contemplated that this content may be user or developer generated, free or paid, complete or trial, and / or for sale or rent.
[0134] A portion of the gameplay can be buffered, i.e., temporarily stored. For example, as further described herein, the first 15 seconds, previously completed levels, and previous actions within the gameplay can be temporarily stored. The term "portion" as used herein may correspond to any portion of any related or arbitrary group of gameplay that can be divided into single or multiple data bits or bytes. For example, a "portion" of the gameplay may correspond to a level, chapter, scene, behavior, character, background, texture, course, action, song, theme, duration, size, file, portion thereof, and combination thereof. In addition, a portion of the gameplay may include a screenshot of a video capture or a prescribed duration.
[0135] In one embodiment, portions of the gameplay may be stored locally on the game console, in a temporary or permanent storage device. Alternatively or additionally, portions of the gameplay may be transmitted over a network and stored remotely. For example, portions of the gameplay may be transmitted to another computing device, to another game console, or to a remote server via a wireless or wired network. Such remote servers may include social media servers.
[0136] Optionally, portions of gameplay not retrieved from the buffer or portions of gameplay outside of a specific game interval (e.g., a specific duration, level, chapter, lesson, etc.) may be removed from the buffer. This removal process may be accomplished using standard file operations on the operating system.
[0137] The portion of the gameplay may be displayed on any of a number of display devices that have access to the stored gameplay. For example, the stored gameplay may be displayed on a television connected to the game console from which the gameplay was captured. In another example, the stored gameplay may be displayed on a computer to which the stored gameplay was transmitted. The stored gameplay may be displayed alone or in combination with other information, such as on a social media website.
[0138] In one embodiment, a portion of the gameplay is displayed by another game console associated with a user different from the user who buffered or captured the gameplay. According to this embodiment, from the perspective of the first user, the portion of the gameplay may show that the ball is being thrown from the first user to the second user. The portion of the gameplay may then be transmitted to the second user's game console. Therefore, the second user may then watch the gameplay from the first user's perspective. The second user may also have a portion of the stored gameplay showing that the ball is being thrown by the first user and received by the second user (from the second user's perspective). In this embodiment, the second user may review the gameplay from both the first user's perspective and the second user's perspective. Further, the portion of the gameplay stored by the second user may be transmitted to the first user's game console so that the first user may review the gameplay from two perspectives. This embodiment may be applicable to any number of users with any number of perspectives, and therefore the gameplay may be reviewed from any number of different angles.
[0139] With respect to storage, transmission, and / or display of portions of gameplay as described herein, it is contemplated that portions of gameplay may be stored, transmitted, and displayed as image or video data. However, in another embodiment, portions of gameplay may be stored and transmitted as telemetry or metadata representative of the image or video data, and may be recreated as an image or video by a game console or other device prior to display.
[0140] In some embodiments, the portion of the gameplay has a predetermined relationship to the gameplay being executed. For example, the portion of the gameplay may correspond to a certain amount of gameplay preceding the currently executed gameplay, such as the first 10 seconds of gameplay. In another embodiment, the first portion of the gameplay has a predetermined relationship to the second portion of the gameplay. For example, the first portion of the gameplay may correspond to a certain amount of gameplay preceding the receipt of a request to capture the second portion of the gameplay, such as 10 seconds of gameplay preceding the selection of the capture button. In each of these embodiments, the user may configure and adjust the amount of gameplay that is buffered prior to the current gameplay or the requested gameplay according to his or her particular preferences.
[0141] In other embodiments, the buffer is "smart" or "elastic" so that it captures gameplay according to variables, regardless of time. In one such embodiment, the first portion of the gameplay has a predetermined relationship with an event related to the gameplay. For example, the first portion of the gameplay can be buffered to include statistical anomalies, such as reaching a high score, a large number of points collected in a short amount of time, multiple selections of buttons on the controller, and other rare events. Such statistical anomalies can be determined by comparing the gameplay metric with a specific game or scene or for the average metric of substantially all games. Such average metrics can be stored locally or remotely for comparison. For example, a game console can track the global high score of a specific game, and buffer the gameplay in which the user approaches and exceeds the high score. In another example, a remote server can track the global high score of a specific game, and the information can be transmitted to the game console, which buffers the gameplay in which the user approaches and exceeds the high score.
[0142] In another example, portions of gameplay may be buffered to include achievements, such as prizes being earned or other landmarks being reached. Such prizes or landmarks commemorate any goal or gaming achievement, such as a certain number of points being earned, a certain level being reached, etc. For example, gameplay may be buffered to include the awarding of a prize for reaching level 10, reaching 100,000 points, etc.
[0143] Similarly, progress toward reaching an event, as well as actual achievement of a prize or statistical anomaly, may be buffered for inclusion in that portion of the gameplay. For example, a screenshot may be taken at each of the levels one to ten, creating an album to commemorate receipt of a prize for reaching level 10. Another example, a video may be taken of a user's first to fifth times winning a game, with a prize awarded for winning five times.
[0144] Thus, according to embodiments of the present invention, at least a portion of the executed gameplay may always be kept in the running buffer. In other words, when a request is received to share a portion of gameplay, a portion of the previous gameplay may have already been captured including the previous footage. For example, if a request to share gameplay is received after a user crosses the finish line in a race, the buffered gameplay may include the footage of the user crossing the finish line. In other words, the user will be able to capture the moments that occurred before the request to share gameplay was made.
[0145] Fig.17An interface for sharing gameplay according to an embodiment of the present invention is described. The interface 1700 as shown includes various selectable icons to facilitate sharing with the user's friends (e.g., members of the user's social graph). In one embodiment, the interface 1700 can be accessed from a dedicated button on a controller device. When the button is pressed during gameplay, the interface 1700 can be presented to enable the user to share their gameplay.
[0146] Icon 1702 may be selected to initiate uploading of screenshots of the user's gameplay. In one embodiment, region 1704 of icon 1702 is populated with representative screenshots of the user's most recent gameplay, thereby providing a small-scale preview of the screenshots that can be shared. In one embodiment, selection of icon 1702 may provide access to an additional screenshot selection interface that allows the user to select specific screenshots from the user's recorded gameplay to share to the user's social graph. This may take the form of a navigable gameplay video timeline that may be traversed or navigated to identify specific points in time within the gameplay and its corresponding screenshots.
[0147] Icon 1706 may be selected to initiate uploading of a video of the user's gameplay. Area 1708 of icon 1706 may be configured to display a representative video clip from the user's recent gameplay, such as the last 5 seconds of the user's gameplay, a recent achievement, etc., thereby displaying a small preview of a video clip from the user's gameplay that can be shared with others.
[0148] Icon 1710 may be selected to initiate live video streaming of the user's active gameplay. In one embodiment, selection of icon 1710 will trigger the resumption of the user's gameplay while initiating live video streaming of the user's gameplay. In another embodiment, selection of icon 1710 provides access to an interface to determine settings for the streaming video broadcast, such as with whom the streaming video will be shared, whether to include a video stream of a local image capture device intended to show the user himself during gameplay, whether to enable commentary, etc.
[0149] It will be appreciated that a user may share gameplay (e.g., a selected screenshot, video, or live gameplay stream) to one or more specifically selected friends, to their entire social graph, or to any user of a social network. A social network may be a gaming social network associated with the platform on which the video game is running, or a third-party social network that exists separately from the video game or its platform. The social network may be accessed through an API defined to allow interaction with the social network. Users with whom gameplay has been shared may receive notifications informing them of the gameplay they have shared. This notification may take the form of a posting on a social news feed, a private message through a social network, an in-game notification, an email, a chat notification, etc. Sharing gameplay to a social network may necessitate making the gameplay available to other subsets of users of the social network that may or may be part of the social graph of the sharing user. For example, for a given video game, gameplay may be shared, or made available to any user of a social network that also owns the video game and is therefore granted access to the shared gameplay of the video game. This shared gameplay may be accessed through online forums, chat rooms, or other online channels that are available only to players of the video game. In one embodiment, a video game may have a dedicated page or site on a social network. Sharing of gameplay may be made available to users accessing the page or site of the video game. Of course, it will be appreciated that from the perspective of the sharing user, options may be provided that allow the user to specify and customize with whom and what forums their gameplay will be shared.
[0150] Fig.18 An interface 1800 for selecting a portion of a recorded gameplay video to share is described according to an embodiment of the present invention. Interface 1800 includes a preview area 1802 that loops a preview of the currently selected portion of a video of a user's gameplay. Screenshots 1804, 1806, 1808, 1810, and 1812 are positioned adjacent to each other in chronological order to define a timeline of screenshots indicating the content of the gameplay video. Each screenshot 1804, 1806, 1808, 1810, and 1812 may be an image frame extracted from the gameplay video at regular intervals. The screenshot timeline may be scrolled right or left to show additional frames before or after those frames currently displayed. Markers 1814 and 1816 indicate the start and end points of the currently selected video clip (or segment or portion). The currently selected video clip may be replayed repeatedly in preview area 1802, as noted.
[0151] In one embodiment, buttons 1818 and 1820 may be selected to respectively reduce or increase the duration of the selected video portion. Preview option 1822 may be selected to trigger playback of a full screen preview of the currently selected video clip. Trim option 1824 may be selected to access additional video trimming features.
[0152] Fig.19 An interface 1900 for viewing a live video stream of a user's gameplay is described according to an embodiment of the present invention. At reference 1902, the name and / or alias of the user whose gameplay is being streamed is shown. At reference 1904, the number of users currently viewing the live video stream is shown. The live video stream of the user's gameplay is displayed in a video display area 1906. In addition, a live user video 1908 may be included, which displays a live video of the actual user whose gameplay is being live streamed. A command option 1910 may be selected to allow the viewing user to issue commands that affect the video game, or even take over control of the streaming user's gameplay. It will be appreciated that the issuance of in-game commands or remotely controlling the user's gameplay may require permission predefined or requested at gameplay time from the user playing the game to allow the viewing user to perform such operations.
[0153] Option 1912 allows the viewing user to join the streaming user's gameplay. And, option 1914 enables the viewing user to purchase the video game in progress.
[0154] In addition, the interface may include a comment field 1916 that displays comments from users viewing the live video stream, indicating the time of each comment. A comment input field 1918 is provided for the viewing user to enter the text of the comment to be posted. And, pressing a send button 1920 uploads the comment for viewing by the live streaming user and others viewing the live video stream.
[0155] While embodiments of the present invention have been described with reference to accessing various interfaces for sharing from a dedicated button press, it will be appreciated that in other embodiments, some or all of these interfaces may not be needed to facilitate sharing gameplay to a user's social graph. For example, in one embodiment, a controller button may be configured to capture a screenshot of the user's gameplay when pressed. The captured screenshot is then automatically uploaded and shared to the user's social graph.
[0156] In another embodiment, pressing a specific button on the controller initiates recording of the gameplay video. When the specific button is pressed a second time, recording of the gameplay video stops, and the video clip can be uploaded and shared to the user's social graph. In one embodiment, uploading and sharing of the video clip to the user's social graph can occur automatically after termination of the video recording operation. However, in another embodiment, when the specific button is pressed a second time to stop recording, an interface is presented that allows the user to customize various options, such as trimming the video, selecting representative screenshots for the video, determining specific users to share the video with, adding a title or topic, etc. After user customization, the video can be shared with others or otherwise made available for viewing.
[0157] In one embodiment, a specific button on the controller may be configured to share a predefined duration of gameplay video on a social network. For example, a user may specify when the button is pressed, the first 10 seconds of the gameplay video will be shared to the user's social graph. In another embodiment, it may be specified when the button is pressed, the next 10 seconds of the gameplay video will be recorded and shared to the social graph. It should be appreciated that options for trimming the video and performing other types of customization may be applicable to the recorded gameplay video. Furthermore, the recorded gameplay video of the predefined duration after the button trigger may be combined with the previously buffered gameplay video as already described.
[0158] In yet another embodiment, a specific button on the controller device may be configured to initiate a live video streaming of a user's active gameplay. The live video streaming may be predefined so that it is only available to members of the user's social graph, or may be available to other smaller or larger groups of users, such as a specific subset of the user's social graph, all users who own or otherwise have access to the same video game, any user of a gaming platform, etc.
[0159] Automatic generation of suggested simulated games for cloud gaming based on recorded gameplay
[0160] In one embodiment, a method for generating a limited-play trial version of a video game is provided, comprising the following method operations: recording user gameplay of a full version of the video game; analyzing the user's recorded gameplay to determine a focus area; defining boundaries within a gameplay context of the video game based on the determined focus area; and generating a limited version of the video game based on the defined boundaries; wherein the method is executed by a processor.
[0161] In one embodiment, recording the user's gameplay includes recording one or more of user input data or game state data. In one embodiment, analyzing the user's gameplay includes determining an activity level of the user input data or the game state data, and the area of interest is an area with an activity level exceeding a predefined threshold.
[0162] In one embodiment, defining a boundary within a gameplay context of a video game includes defining a spatial boundary within a virtual space of the video game. In one embodiment, the spatial boundary within the virtual space of the video game defines a portion of the virtual space that is less than the entirety of the virtual space, the portion of the virtual space having a subset of the characteristics of the virtual space.
[0163] In one embodiment, defining boundaries within a gameplay context of a video game includes defining temporal boundaries within a temporal context of the video game.
[0164] In one embodiment, defining boundaries includes identifying a nearest start point or a nearest end point of a stage, level, or scene.
[0165] In one embodiment, analyzing the user's recorded gameplay includes: determining a user game state setting based on the user's recorded gameplay; and generating a limited version of the video game includes defining the limited version of the video game to have an initial game state setting based on the determined user game state setting.
[0166] In one embodiment, the focus area is automatically identified based on correspondence with one or more thresholds. In one embodiment, at least one of the thresholds is associated with one or more of user input, rate of user input, frequency of user input, repetition of user input, input pattern, sharing of gameplay context with other users, posting of comments associated with gameplay on a social network, or popularity of a portion of the video game based on a social network sharing rating.
[0167] In another embodiment, a method for generating a trial limited version of a video game is provided, comprising the following method operations: recording user gameplay of a full version of the video game; analyzing the user's recorded gameplay to determine one or more focus areas; presenting each of the focus areas for selection; receiving selection input indicating a selected focus area; for the selected focus area, defining boundaries within a gameplay scenario of the video game based on the selected focus area; and generating a limited version of the video game based on the defined boundaries; wherein the method is executed by a processor.
[0168] In one embodiment, recording the user's gameplay includes recording one or more of user input data or game state data. In one embodiment, analyzing the user's recorded gameplay includes determining an activity level of the user input data or the game state data, each region of interest being a region having an activity level exceeding a predefined threshold.
[0169] In one embodiment, analyzing the user's recorded gameplay includes determining a user game state setting based on the user's recorded gameplay; and generating the limited version of the video game includes defining the limited version of the video game to have an initial game state setting based on the determined user game state setting.
[0170] In one embodiment, each region of interest is automatically identified based on correspondence with one or more thresholds.
[0171] In another embodiment, a method for generating a trial limited version of a video game is provided, which includes the following method operations: recording user gameplay of a full version of the video game, wherein recording the user gameplay includes: recording one or more of user input data or game state data; analyzing the user's recorded gameplay to determine one or more focus areas, wherein each focus area is automatically identified based on a correspondence with one or more thresholds; presenting each of the focus areas for selection; receiving a selection input indicating a selected focus area; for the selected focus area, defining boundaries within a gameplay context of the video game based on the selected focus area; generating a limited version of the video game based on the defined boundaries; wherein the method is executed by a processor.
[0172] In one embodiment, defining a boundary within a gameplay context of a video game includes defining a spatial boundary within a virtual space of the video game; the spatial boundary within the virtual space of the video game defines a portion of the virtual space that is less than the entirety of the virtual space, the portion of the virtual space having a subset of the characteristics of the virtual space.
[0173] In one embodiment, defining boundaries within a gameplay context of a video game includes defining temporal boundaries within a temporal context of the video game.
[0174] In one embodiment, defining boundaries includes identifying a nearest start point or a nearest end point of a stage, level, or scene.
[0175] In one embodiment, at least one of the thresholds is associated with one or more of user input, rate of user input, frequency of user input, repetition of user input, input pattern, sharing of gameplay context with other users, posting of comments associated with gameplay on a social network, or popularity of a portion of the video game based on a social network sharing rating.
[0176] Generation of multi-part simulations of cloud gaming based on recorded gameplay
[0177] In one embodiment, a method for generating a trial limited version of a video game is provided, comprising the following method operations: recording user gameplay of a full version of the video game; determining multiple user-defined portions of the user's recorded gameplay; for each user-defined portion, defining boundaries within a gameplay context of the video game based on the user-defined portion; and generating a trial portion of the video game based on the defined boundaries; arranging each of the trial portions of the video game into a series to define a limited version of the video game; wherein the method is executed by a processor.
[0178] In one embodiment, determining the user-defined portion of the user's recorded gameplay includes: receiving a user-defined start point and a user-defined end point within the user's recorded gameplay; and determining the user-defined portion based on the received user-defined start point and user-defined end point.
[0179] In one embodiment, recording the user's gameplay includes recording one or more of user input data or game state data. In one embodiment, generating a playable portion of a video game includes: analyzing the game state data to identify code elements; and assembling the code elements to define executable code that defines the playable portion of the video game.
[0180] In one embodiment, defining a boundary within a gameplay context of a video game includes defining a spatial boundary within a virtual space of the video game. In one embodiment, the spatial boundary within the virtual space of the video game defines a portion of the virtual space that is less than the entirety of the virtual space, the portion of the virtual space having a subset of the features of the virtual space.
[0181] In one embodiment, defining boundaries within a gameplay context of a video game includes defining temporal boundaries within a temporal context of the video game.
[0182] In one embodiment, the method further includes: for each user-defined portion, analyzing the user's recorded gameplay to determine a user game state setting; and wherein generating a trial portion of the video game includes defining the trial portion of the video game to have an initial game state setting based on the determined user game state setting.
[0183] In one embodiment, defining boundaries includes identifying the nearest start or end point of one or more of a stage, level, or scene.
[0184] In one embodiment, the method further includes recording a user-defined video; wherein arranging the trial portion of the video game includes arranging the user-defined video at a position within the series before or after one of the trial portions of the video game. In one embodiment, the user-defined video includes video from at least one of the user-defined portions of the user's recorded gameplay.
[0185] In another embodiment, a tangible computer-readable medium is provided having program instructions thereon for generating a trial limited version of a video game, comprising the following: program instructions for recording user gameplay of a full version of the video game; program instructions for determining a plurality of user-defined portions of the user's recorded gameplay; program instructions for, for each user-defined portion, defining boundaries within a gameplay context of the video game based on the user-defined portion, and generating a trial portion of the video game based on the defined boundaries; program instructions for arranging each of the trial portions of the video game into a series to define a limited version of the video game.
[0186] In one embodiment, determining each user-defined portion of the user's recorded gameplay includes: receiving a user-defined start point and a user-defined end point within the user's recorded gameplay; and determining the user-defined portion based on the received user-defined start point and user-defined end point.
[0187] In one embodiment, recording the user's gameplay includes recording one or more of user input data or game state data. In one embodiment, generating a playable portion of a video game includes: analyzing the game state data to identify code elements; and assembling the code elements to define executable code that defines the playable portion of the video game.
[0188] In one embodiment, the tangible computer-readable medium further includes: program instructions for analyzing the user's recorded gameplay for each user-defined portion to determine the user's game state settings; and wherein generating a trial portion of the video game includes defining the trial portion of the video game to have an initial game state setting based on the determined user game state settings.
[0189] In another embodiment, a system is provided that includes the following: at least one server computing device having: logic for generating a trial limited version of a video game, including logic for recording user gameplay of a full version of the video game; logic for determining multiple user-defined portions of the user's recorded gameplay; logic for defining boundaries within a gameplay context of the video game for each user-defined portion based on the user-defined portion and generating a trial portion of the video game based on the defined boundaries; logic for arranging each of the trial portions of the video game into a series to define a limited version of the video game.
[0190] In one embodiment, determining each user-defined portion of the user's recorded gameplay includes: receiving a user-defined start point and a user-defined end point within the user's recorded gameplay; and determining the user-defined portion based on the received user-defined start point and user-defined end point.
[0191] In one embodiment, recording the user's gameplay includes recording one or more of user input data or game state data. In one embodiment, generating a playable portion of a video game includes: analyzing the game state data to identify code elements; and assembling the code elements to define executable code that defines the playable portion of the video game.
[0192] In one embodiment, the logic further includes logic for analyzing the user's recorded gameplay for each user-defined portion to determine the user's game state settings; and wherein generating a trial portion of the video game includes defining the trial portion of the video game to have an initial game state setting based on the determined user game state settings.
[0193] Share recorded gameplay to the social graph
[0194] In one embodiment, a method for sharing recorded gameplay to a social graph is provided, comprising the following method operations: recording a video of a user's gameplay during an active state of a gameplay session; receiving a command to initiate a sharing operation during the active state of the gameplay session; in response to receiving the command, entering a paused state of the gameplay session and presenting a sharing interface; processing input received via the sharing interface to determine a user-defined selection of the recorded video; sharing the user-defined selection of the recorded video to the user's social graph; and resuming the active state of the gameplay session; wherein the method is performed by a processor.
[0195] In one embodiment, recording a video of a user's gameplay includes storing the video to a buffer during an active state of the gameplay session.
[0196] In one embodiment, presenting the shared interface includes retrieving and presenting one or more portions of the video from a buffer.
[0197] In one embodiment, the sharing interface includes a duration selector for defining a user-defined selected duration.
[0198] In one embodiment, sharing the selection includes uploading the selection to be available on a social networking service defining the social graph of the user.
[0199] In one embodiment, uploading the selection includes compressing the selection and uploading the compressed selection.
[0200] In one embodiment, sharing the selection includes generating a notification to members of the user's social graph.
[0201] In one embodiment, the notification consists of a private message, a chat message, an in-game notification, a posting on a social news feed, or an email.
[0202] In one embodiment, sharing the selection includes presenting the selection on a user's profile page.
[0203] In one embodiment, receiving a command to initiate a sharing operation is defined from a button press on a controller device.
[0204] In another embodiment, a method for sharing recorded gameplay to a social graph is provided, comprising the following method operations: recording a video of a user's gameplay during an active state of the gameplay session; receiving a command to initiate a sharing operation during the active state of the gameplay session; in response to receiving the command, determining a user-defined selection of the recorded video; sharing the user-defined selection of the recorded video to the user's social graph; wherein the method is executed by a processor.
[0205] In one embodiment, recording a video of the user's gameplay includes storing the video to a buffer during an active state of the gameplay session.
[0206] In one embodiment, determining a user-defined selection of the recorded video includes retrieving and presenting the video from a buffer, and processing user input identifying a portion of the video.
[0207] In one embodiment, sharing the selection includes uploading the selection to be available on a social networking service defining the social graph of the user.
[0208] In one embodiment, receiving a command to initiate a sharing operation is defined from a button press on a controller device.
[0209] In another embodiment, a non-transitory computer-readable medium having program instructions defined thereon for sharing recorded gameplay to a social graph is provided. The program instructions include: program instructions for recording a video of a user's gameplay during an active state of a gameplay session; program instructions for receiving a command to initiate a sharing operation during an active state of the gameplay session; program instructions for determining a user-defined selection of the recorded video in response to receiving the command; program instructions for sharing the user-defined selection of the recorded video to the user's social graph.
[0210] In one embodiment, recording a video of the user's gameplay includes storing the video to a buffer during an active state of the gameplay session.
[0211] In one embodiment, determining a user-defined selection of a recorded video includes retrieving and presenting the video from a buffer, and processing user input identifying a portion of the video.
[0212] In one embodiment, sharing the selection includes uploading the selection to be available on a social networking service defining the social graph of the user.
[0213] In one embodiment, receiving a command to initiate a sharing operation is defined from a button press on a controller device.
[0214] Remote control of the first user's gameplay by a second user
[0215] In one embodiment, a method for providing remote control of a user's gameplay is provided, the method comprising the following method operations: presenting a live video feed of a first user's gameplay to a remote second user; processing a request to transfer control of the first user's gameplay to the second user; initiating control of the first user's gameplay by the second user; wherein the method is performed by at least one processor.
[0216] In one embodiment, initiating control of the first user's gameplay by the second user includes revoking control of the first user's gameplay by a first controller device associated with the first user; and initiating control of the first user's gameplay by a second controller device associated with the second user.
[0217] In one embodiment, control of the first user's gameplay by the second controller device includes receiving input commands from the second controller device, and applying the input commands to define the first user's gameplay.
[0218] In one embodiment, the live video feed is presented to the second user through a social interface that provides access to a social graph of the second user, defining the first user as a member of the social graph of the second user.
[0219] In one embodiment, the social interface includes a commenting interface for posting comments during gameplay of the first user.
[0220] In one embodiment, processing the request to transfer control includes receiving a confirmation from the first user to allow the second user control of the first user's gameplay.
[0221] In one embodiment, presenting a live video feed of a first user's gameplay to a second user includes presenting the live video feed in a non-full screen format; and initiating control of the first user's gameplay by the second user includes triggering presentation of the live video feed in a full screen format.
[0222] In another embodiment, a method for providing multi-player gameplay is provided, comprising the following method operations: presenting a live video feed of a first user's gameplay session to a remote second user; processing a request for the second user to join the first user's gameplay session; initiating gameplay by the second user in the first user's gameplay session; wherein the method is performed by at least one processor.
[0223] In one embodiment, initiating gameplay by a second user in a gameplay session of a first user includes initiating a multi-player mode of a video game.
[0224] In one embodiment, the live video feed is presented to the second user through a social interface that provides access to a social graph of the second user, defining the first user as a member of the social graph of the second user.
[0225] In one embodiment, the social interface includes a commenting interface for posting comments during gameplay of the first user.
[0226] In one embodiment, processing the request to join the first user's gameplay session includes receiving a confirmation from the first user to allow the second user's gameplay in the first user's gameplay session.
[0227] In one embodiment, presenting a live video feed of a first user's gameplay to a second user includes presenting the live video feed in a non-full screen format; and initiating gameplay of the second user in the first user's gameplay session includes triggering presentation of the live video feed in a full screen format.
[0228] In another embodiment, a non-transitory computer-readable medium having program instructions embodied thereon is provided, the program instructions being for providing remote control of a user's gameplay, the program instructions comprising: program instructions for presenting a live video feed of a first user's gameplay to a remote second user; program instructions for processing a request to transfer control of the first user's gameplay to the second user; and program instructions for initiating control of the first user's gameplay by the second user.
[0229] In one embodiment, initiating control of the first user's gameplay by the second user includes revoking control of the first user's gameplay by a first controller device associated with the first user; and initiating control of the first user's gameplay by a second controller device associated with the second user.
[0230] In one embodiment, control of the first user's gameplay by the second controller device includes receiving input commands from the second controller device, and applying the input commands to define the first user's gameplay.
[0231] In one embodiment, the live video feed is presented to the second user through a social interface that provides access to a social graph of the second user, defining the first user as a member of the social graph of the second user.
[0232] In one embodiment, the social interface includes a commenting interface for posting comments during gameplay of the first user.
[0233] In one embodiment, processing the request to transfer control includes receiving a confirmation from the first user to allow the second user control of the first user's gameplay.
[0234] In one embodiment, presenting a live video feed of the first user's gameplay to a second user includes presenting the live video feed in a non-full screen format; and initiating control of the first user's gameplay by the second user includes triggering presentation of the live video feed in a full screen format.
[0235] Fig. 20 Hardware and user interfaces that may be used to provide interactivity with a video game according to one embodiment of the present invention are described. Fig. 20 According to an embodiment of the present invention, Playstation The overall system architecture of an entertainment device that is console compatible for interfacing a control device with a computer program executed at a base computing device. A system unit 2000 is provided having various peripheral devices connectable to the system unit 2000. The system unit 2000 includes: a unit processor 2028; dynamic random access memory (XDRAM) unit 2026; a reality synthesizer graphics unit 2030, which has a dedicated video random access memory (VRAM) unit 2032; and an I / O bridge 2034. The system unit 2000 also includes Blu Disk BD- The optical disk reader 2040 is used to read from a disk 2040a accessible through the I / O bridge 2034 and a removable slot-in hard disk drive (HDD) 2036. Optionally, the system unit 2000 also includes a memory card reader 2038 for reading compressed flash memory cards, Memory Cards, etc. A memory card or the like can be read via the I / O bridge 2034 .
[0236] The I / O bridge 2034 is also connected to six Universal Serial Bus (USB) 2.0 ports 2024; a Gigabit Ethernet port 2022; an IEEE 802.11b / g wireless network (Wi-Fi) port 2020; and a Bluetooth port 2024 capable of supporting up to seven Bluetooth connections. Wireless Link Port 2018.
[0237] In operation, the I / O bridge 2034 handles all wireless, USB, and Ethernet data, including data from one or more game controllers 2002 to 2003. For example, when a user is playing a game, the I / O bridge 2034 receives data from the game controller 2002 to 2003 via a Bluetooth link and directs it to the unit processor 2028, which updates the current state of the game accordingly.
[0238] The USB and Ethernet ports also provide connectivity for other peripheral devices besides the game controllers 2002 to 2003, such as: remote control 2004 / ; keyboard 2006; mouse 2008; portable entertainment device 2010, such as Sony Playstation Entertainment devices; video cameras, such as Eye Video camera 2012; microphone headset 2014; and microphone 2015. Such peripheral devices may thus in principle be connected wirelessly to system unit 2000; for example portable entertainment device 2010 may communicate via a Wi-Fi dedicated connection, while microphone headset 2014 may communicate via a Bluetooth link.
[0239] The provision of these interfaces means that the Playstation 3 device is also potentially compatible with other peripheral devices such as digital video recorders (DVRs), set-top boxes, digital cameras, portable media players, voice over IP phones, mobile phones, printers and scanners.
[0240] Additionally, a conventional memory card reader 2016 may be connected to the system unit via the USB port 2024, thereby enabling or Playstation Read the memory card 2048 of the type used by the device.
[0241] The game controllers 2002-2003 may be operable to communicate wirelessly with the system unit 2000 via a Bluetooth link, or to connect to a USB port, thereby also providing power to charge the batteries of the game controllers 2002-2003. The game controllers 2002-2003 may also include memory, a processor, a memory card reader, permanent storage such as flash memory, a light emitter (such as an illuminated spherical portion, LED, or infrared light), a microphone and speaker for ultrasonic communication, a soundproof enclosure, a digital camera, an internal clock, a recognizable shape such as a spherical portion facing the game console, and a display device such as a display device. WiFi TM Wireless communication based on protocols such as IEEE 802.11ac and IEEE 802.11ac.
[0242] Game controller 2002 is a controller designed to be used with two hands, and game controller 2003 is a one-handed controller with attachments. In addition to one or more analog joysticks and conventional control buttons, the game controllers are susceptible to three-dimensional position determination. Gestures and movements of the user of the game controller can thus be translated into input to the game in addition to or in lieu of conventional button or joystick commands. Optionally, a PlayStation 3, for example, can be used. TM portable devices and other wirelessly enabled peripherals as controllers. TM In the case of a portable device, additional game or control information (e.g., control instructions or number of lives) may be provided on the screen of the device. Other alternative or supplemental control devices may also be used, such as a dance mat (not shown), a light gun (not shown), a joystick wheel and pedals (not shown), or a custom controller, such as a single or several large buttons for quick response puzzles (also not shown).
[0243] The remote control 2004 is also operable to communicate wirelessly with the system unit 2000 via a Bluetooth link. The remote control 704 includes a Blu-Ray compatible TM The operation of the disk BD-ROM reader 2040 is suitable for navigation of the disk content.
[0244] Blu Ray TM The disk BD-ROM reader 2040 is operable to read CD-ROMs compatible with the Playstation and Playstation 2 devices, as well as conventional pre-recorded and recordable CDs, and so-called Super Audio CDs. The reader 2040 is also operable to read DVD-ROMs compatible with the Playstation 2 and Playstation 3 devices, as well as conventional pre-recorded and recordable DVDs. The reader 2040 is further operable to read BD-ROMs compatible with the Playstation 3 device, as well as conventional pre-recorded and recordable Blu-ray disks.
[0245] The system unit 2000 is operable to supply audio and video generated or decoded by the gaming machine 3 device via the reality synthesizer graphics unit 2030 to a display and sound output device 2042, such as a monitor or television having a display 2044 and one or more speakers 2046, through audio and video connections. The audio connections 2050 may include conventional analog and digital outputs, while the video connections 2052 may variously include component video, S-video, composite video, and one or more High Definition Multimedia Interface (HDMI) outputs. Thus, the video output may be in a format such as PAL or NTSC, or in 720p, 1080i, or 1080p high definition.
[0246] Audio processing (generation, decoding, etc.) is performed by the unit processor 2028. The operating system of the gaming machine 3 device supports 5.1 surround sound, Theater Surround (DTS) and support for Blu- 7.1 surround sound decoding on disk.
[0247] In an embodiment of the present invention, the video camera 2012 includes a single charge coupled device (CCD), an LED indicator, and hardware-based real-time data compression and encoding equipment so that compressed video data can be transmitted in an appropriate format (e.g., based on the MPEG (Motion Picture Experts Group) standard within an image) for decoding by the system unit 2000. The camera LED indicator is arranged to illuminate in response to appropriate control data from the system unit 2000, for example to indicate adverse lighting conditions. Embodiments of the video camera 2012 may be connected to the system unit 700 via USB, Bluetooth, or Wi-Fi communication ports variously. Embodiments of the video camera may include one or more associated microphones and may also be capable of transmitting audio data. In an embodiment of the video camera, the CCD may have a resolution suitable for high definition video capture. In use, the images captured by the video camera may, for example, be incorporated into a game, or interpreted as game control input. In another embodiment, the camera is an infrared camera suitable for detecting infrared light.
[0248] Generally, in order for successful data communication to occur with a peripheral device such as a video camera or remote control via one of the communication ports of the system unit 2000, an appropriate software, such as a device driver, should be provided. Device driver technology is well known and will not be described in detail here, except that the skilled person will be aware that a device driver or similar software interface may be required in the described embodiments of the present invention.
[0249] Fig.21210A to H; and a cyclic data bus connecting the above components, called the element interconnect bus 2180. The total floating point performance of the cell processor is 218 GFLOPS, compared to the 6.2 GFLOPs of the Emotion Engine of the PlayStation 2 device.
[0250] The power processing element (PPE) 2150 is based on a two-way simultaneous multithreaded power 570 compliant power PC core (PPU) 855 running in conjunction with an internal clock of 3.2 GHz. The PPE 2150 includes a 512 kB level 2 (L2) cache and a 32 kB level 1 (L1) cache. The PPE 2150 is capable of eight single location operations per clock cycle, translating to 25.6 GFLOPs at 3.2 GHz. The primary role of the PPE 2150 is to act as a controller for the synergistic processing elements 2110A to H, which handle the bulk of the computational workload. In operation, the PPE 1250 maintains a job queue, schedules jobs for the synergistic processing elements 2110A to H, and monitors their progress. Thus, each synergistic processing element 2110A to H runs a kernel whose role is to fetch jobs, execute them, and synchronize with the PPE 1250.
[0251] Each synergistic processing element (SPE) 2110A-H includes a corresponding synergistic processing unit (SPU) 2120A-H, and a corresponding memory flow controller (MFC) 2140A-H, which in turn includes a corresponding dynamic memory access controller (DMAC) 2142A-H, a corresponding memory management unit (MMU) 2144A-H, and a bus interface (not shown). Each SPU 2120A-H is a RISC processor clocked at 3.2GHz and includes 256kB local RAM 2130A-H, which is in principle expandable to 4GB. Each SPE gives a theoretical 25.6GFLOPS of single precision performance. The SPU can operate on 4 single precision floating point members, 4 32-bit numbers, 8 16-bit integers, or 16 8-bit integers in a single clock cycle. In the same clock cycle, it can also perform memory operations. The SPUs 2120A-H do not directly access the system memory XDRAM 2026; the 64-bit address formed by the SPUs 2120A-H is passed to the MFCs 2140A-H, which instruct their DMA controllers 2142A-H to access the memory via the component interconnect bus 1280 and the memory controller 2160.
[0252] The element interconnect bus (EIB) 2180 is a communication bus that is logically cyclic inside the cell processor 2028, which connects the above-mentioned processor elements, namely PPE 2150, memory controller 2160, dual bus interface 2170A, B, and 8 SPE2110A to H, a total of 12 participants. Participants can read and write to the bus at a rate of 8 bytes per clock cycle at the same time. As previously described, each SPE2110A to H includes a DMAC 2142A to H for scheduling longer read or write sequences. The EIB includes four channels, two in the clockwise and counterclockwise directions. Therefore, for twelve participants, the longest step-by-step data flow between any two participants is six steps in the appropriate direction. In the case of full utilization through arbitration between participants, the theoretical peak instantaneous EIB bandwidth of 12 time slots is therefore 96B per clock. This is equivalent to a theoretical peak bandwidth of 307.2GB / s (gigabytes per second) at a clock rate of 3.2GHz.
[0253] The memory controller 2160 includes an XDRAM interface 2162, which was developed by Rambus Incorporated. The memory controller interfaces with the Rambus XDRAM 2026, which has a theoretical peak bandwidth of 25.6 GB / s.
[0254] Dual bus interface 2170A, B including LANbus System Interface 2172A, B. The interface is organized into 12 channels, each 8 bits wide, with five paths on-site and seven off-site. This provides a theoretical peak bandwidth of 62.4 GB / s (36.4 GB / s off-site and 26 GB / s on-site) between the cell processor and I / O bridge 2034 via controller 2170A and the reality simulator graphics unit 2130 via controller 2170B.
[0255] Data sent by the cell processor 2128 to the reality simulator graphics unit 2130 will typically include a display list, which is a sequence of commands for drawing vertices, applying textures to polygons, specifying lighting conditions, and so on.
[0256] Fig. 22 2 is an exemplary illustration of scenes A through E with respective users A through E interacting with a game client 2202 connected to a server process via the Internet according to an embodiment of the present invention. A game client is a device that allows a user to connect to a server application and process via the Internet. A game client allows a user to access and replay online entertainment content such as, but not limited to, games, movies, music, and photos. In addition, a game client may provide access to online communication applications such as VOIP, text chat protocols, and email.
[0257] The user interacts with the game client via a controller. In some embodiments, the controller is a game client specific controller, while in other embodiments, the controller may be a keyboard and mouse combination. In one embodiment, the game client is not a standalone device capable of outputting audio and video signals to create a multimedia environment via a monitor / television and associated audio equipment. For example, the game client may be, but is not limited to, a thin client; an internal PCI expansion card; an external PCI expansion device; an expansion card device; an internal, external or wireless USB device, or a FireWire device, etc. In other embodiments, the game client is integrated with a television and other multimedia devices (such as a DVR, a Blu-ray player, a DVD player, or a multi-channel receiver).
[0258] exist Fig. 22 In scene A of FIG. 2 , user A uses controller 2206A paired with game client 2202A to interact with a client application displayed on monitor 2204A. Similarly, in scene B, user B uses controller 2206B paired with game client 2202B to interact with another client application displayed on monitor 2204B. Scene C illustrates a view from behind user C as user C looks at a game and buddy list displayed from game client 2202C. Although Fig. 22 A single server processing module is shown, but in one embodiment, there are multiple server processing modules throughout the world. Each server processing module includes submodules for user session control, sharing / communication logic, user location, and load balancing processing services. In addition, the server processing module includes network processing and distributed storage.
[0259] When game client 2202 is connected to server processing module, user session control can be used to verify user.Verified user can have associated virtualized distributed storage and virtualized network processing.The example item that can be stored as a part of user's virtualized distributed storage includes purchased media, such as but not limited to games, videos and music, etc. In addition, distributed storage can be used to save the game state of multiple games, the customized settings of individual games, and the general settings of game client. In one embodiment, the user location module of server processing is used to determine the geographical location of the user and its corresponding game client. The geographical location of the user can be used by both sharing / communication logic and load balancing processing services to optimize performance based on the geographical location and processing requirements of multiple server processing modules. Any one or both of virtualized network processing and network storage will allow the processing task from the game client to be dynamically transferred to the underutilized server processing module. Therefore, load balancing can be used to minimize the waiting time associated with the recall from storage and the data transmission between the server processing module and the game client.
[0260] The server processing module has examples of server application A and server application B. The server processing module can support multiple server applications, as indicated by server application X1 and server application X2. In one embodiment, server processing is based on a cluster computing architecture, which allows multiple processors within a cluster to process server applications. In another embodiment, different types of multi-computer processing schemes are applied to process the server applications. This allows scaling server processing to accommodate a larger number of game clients that execute multiple client applications and corresponding server applications. Alternatively, server processing can be scaled to accommodate more demanding graphics processing or games, video compression, or increased computing requirements required for application complexity. In one embodiment, the server processing module performs most of the processing via server applications. This allows relatively expensive components such as graphics processors, RAM, and general processors to be located in the center, and reduces the cost of game clients. The server application data of the processor is sent back to the corresponding game client via the Internet to be displayed on a monitor.
[0261] Scene C illustrates an exemplary application program that can be performed by game client and server processing module. For example, in one embodiment, game client 2202C allows user C to create and watch a partner list 2220 comprising user A, user B, user D and user E. As shown in the figure, in scene C, user C can see the real-time image or avatar of the corresponding user on monitor 2204C. The server processes the corresponding application programs of the corresponding game client 2202 of execution game client 2202C and user A, user B, user D and user E. Because the server processes the application program that knows game client B is executing, the partner list of user A can indicate which game user B is playing. In addition, in one embodiment, user A can watch the actual situation directly from user B in the game video. This is realized by only sending the processed server application data of user B to game client A in addition to game client B.
[0262] In addition to being able to watch videos from a partner, the communication application may also allow real-time communication between partners. As applied to the previous example, this allows user A to provide encouragement or tips while watching user B's real-time video. In one embodiment, two-way real-time voice communication is established through a client / server application. In another embodiment, the client / server application enables text chat. In yet another embodiment, the client / server application converts speech to text for display on the partner's screen.
[0263] Scene D and Scene E illustrate respective users D and E interacting with game consoles 2210D and 2210E, respectively. Each game console 2210D and 2210E is connected to a server processing module and illustrates a network in which the server processing module coordinates gameplay for both the game consoles and game clients.
[0264] Fig.23 An embodiment of an information service provider architecture is described. An information service provider (ISP) 2370 delivers a wide range of information services to users 2382 that are geographically dispersed and connected via a network 2386. An ISP may deliver only one type of service, such as stock price updates, or multiple services, such as broadcast media, news, sports, games, etc. In addition, the services provided by each ISP may be dynamic, i.e., services may be added or taken away at any point in time. Thus, the ISP that provides a particular type of service to a particular individual may change over time. For example, when a user is in her hometown, the user may be served by an ISP that is close to the user, and when the user travels to different cities, the user may be served by different ISPs. The hometown ISP will transfer the required information and data to the new ISP, so that the user information "follows" the user to the new city, making the data closer to the user and easier to access. In another embodiment, a host-server relationship may be established between a host ISP (which manages the user's information) and a server ISP (which directly interfaces with the user under the control of the primary ISP). In other embodiments, data may be transferred from one ISP to another as the client moves around the world to put the ISP in a better position to serve the users of the delivered services.
[0265] ISP 2370 includes application service providers (ASPs) 2372, which provide computer-based services to customers via a network. Software provided using the ASP model is sometimes also referred to as software on demand or software as a service (SaaS). A simple form of providing access to a particular application (e.g., customer relationship management) is through the use of a standard protocol, such as HTTP. The application resides on the provider's system and is accessed by the user through a web browser using HTML, through dedicated client software provided by the provider, or other remote interfaces such as thin clients.
[0266] Services delivered over a wider geographic area typically use cloud computing. Cloud computing is a type of computing in which dynamically scalable and often virtualized resources are provided as services via the Internet. Users do not need to be experts in the technical infrastructure that supports their "cloud". 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 typically provide common online business applications accessed from a web browser, while the software and data are stored on servers. The term "cloud" is used as a metaphor for the Internet based on how it is depicted in computer network diagrams, and the term "cloud" is an abstraction of the complex infrastructure it hides.
[0267] In addition, ISP 2370 includes a game processing server (GPS) 2374, which is used by game clients to play single-player and multi-player video games. Most video games played on the Internet are operated via a connection to a game server. Typically, games use a dedicated server application that collects data from the player and distributes it to 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 embodiment, the GPS establishes communication between the player and his or her corresponding game playing device, without relying on a centralized GPS to exchange information.
[0268] Dedicated GPS are servers that run independently of the clients. These servers are usually run on dedicated hardware located in a data center, providing more bandwidth and dedicated processing power. Dedicated servers are the preferred method of hosting game servers for most PC-based multiplayer games. Massively multiplayer online games run on dedicated servers that are usually hosted by the software company that owns the game title, allowing them to control and update the content.
[0269] Broadcast Processing Server (BPS) 2376 distributes audio and video signals to viewers. Broadcasting to a very narrow range of viewers is sometimes called narrowcasting. The final leg of broadcast distribution is how the signal reaches the listener or viewer, and it can reach the antenna and receiver over the air like a radio or TV station, or it can come through wired TV or cable radio (or "wireless cable"), via the station or directly from the network. The Internet can also bring radio or TV to the receiver, especially through multicasting, allowing sharing of signals and bandwidth. Historically, broadcasting has been defined according to geographic regions, such as national broadcasting or regional broadcasting. However, with the proliferation of fast Internet, broadcasting is not defined according to geography, because content can reach almost any country in the world.
[0270] Storage Service Providers (SSPs) 2378 provide computer storage space and related management services. SSPs also provide periodic backup or archiving. By providing storage as a service, users can order more storage as needed. Another major advantage is that SSPs include backup services, and if a user's computer hard drive fails, the user will not lose their data. In addition, multiple SSPs may have a total copy or a partial copy of a user's data, allowing the user to access the data in an efficient manner, regardless of where the user is located or the device being used to access the data. For example, a user can access personal files on a home computer as well as on a mobile phone (when the user is on the move).
[0271] Communications providers 380 provide connectivity to users. One type of communications provider is an Internet Service Provider (ISP) that provides access to the Internet. An ISP connects its customers using data transmission technologies suitable for delivering Internet Protocol datagrams (e.g., dial-up, DSL, cable modem, wireless, or dedicated high-speed interconnects). Communications providers may also provide messaging services such as email, instant messaging, and SMS text messaging. Another type of communications provider is a Network Service Provider (NSP), which sells bandwidth or network access by providing direct backbone access to the Internet. Network service providers may consist of telecommunications companies, data carriers, wireless communications providers, Internet service providers, cable television operators that provide high-speed Internet access, and the like.
[0272] Data exchange 2388 interconnects several modules within ISP 2370 and connects these modules to users 2382 via network 2386. Data exchange 2388 may cover a smaller area where all modules of ISP 2370 are close together, or a larger geographic area when different modules are geographically dispersed. For example, data exchange 2388 may include fast Gigabit Ethernet (or faster) within a cabinet in a data center, or an international virtual domain network (VLAN).
[0273] The user 2382 accesses the remote service using a client device 2384, which includes at least a CPU, a display, and I / O. The client device may be a PC, a mobile phone, a notebook computer, a PDA, etc. In one embodiment, the ISP 2370 identifies 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 (e.g., html) to access the ISP 2370.
[0274] Embodiments of the invention may be practiced with various computer system configurations, including handheld devices, microprocessor systems, microprocessor-based or programmable consumer electronic devices, minicomputers, mainframe computers, etc. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices linked via wired or wireless networks.
[0275] Considering the above embodiments, it should be understood that the present invention can use various computer-implemented operations involving data stored in a computer system. These operations are operations that require physical manipulation of physical quantities. Any of the operations described herein that form part of the present invention are useful machine operations. The present invention also relates to devices or equipment for performing these operations. The device may be specially constructed for the desired purpose, or the device may be a general-purpose computer selectively activated or configured by a computer program stored in the computer. Specifically, various general-purpose machines may be used in conjunction with computer programs written according to the teachings of this article, or it may be more convenient to construct more specialized equipment to perform the desired operations.
[0276] The present invention may also be embodied as computer readable code on a computer readable medium. A computer readable medium is any data storage device that can store data, which can then be read by a computer system. Examples of computer readable media include hard drives, network attached storage devices (NAS), read-only memory, random access memory, CD-ROM, CD-R, CD-RW, magnetic tape, and other optical and non-optical data storage devices. Computer readable media may include computer readable tangible media distributed on a network coupled computer system so that the computer readable code is stored and executed in a distributed manner.
[0277] Although the method operations are described in a particular order, it should be understood that other housekeeping operations may be performed between the operations, or the operations may be adjusted so that they occur at slightly different times, or may be distributed in a system that allows the processing operations to occur at various intervals associated with the described processing, so long as the processing of the covering operations is performed in the desired manner.
[0278] Although the present invention has been described in some detail for clarity of understanding, it will be appreciated that certain changes and modifications may be practiced within the scope of the appended claims. Therefore, the embodiments of the present invention are to be considered illustrative rather than restrictive, and the present invention is not limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.
Claims
1. A controller device for user interaction with a server of a cloud gaming system, include: at least one input device that generates input for controlling interactive gameplay of a video game by the server; wherein the controller device is a networked device having wireless communication hardware that communicates with an access device via a WiFi protocol to connect to a network that connects the controller device to the server, bypassing a client device that communicates with the server to receive gameplay video for presentation to a display device, such that the controller device transmits inputs for controlling interactive gameplay of the video game, the detection of which does not rely on any additional hardware or processing other than the controller device itself, to the access device via the network to be sent to the server without communicating through the client device, wherein the inputs include button inputs, joystick inputs, and embedded motion detection inputs, and wherein inputs that utilize additional hardware or require processing by the client device are sent by the client device to the server; Wherein, the server receives and processes the input for controlling interactive gameplay of the video game to render the gameplay video transmitted over the network for rendering to the display device local to the controller device.
2. The controller device according to claim 1, in, The gameplay video is encoded for streaming and decoded for the rendering to the display device.
3. The controller device according to claim 1, in, The controller device communicates directly with the access device through a WiFi network in a local environment in which the controller device is arranged.
4. The controller device according to claim 3, in, The WiFi network is provided by the access device.
5. The controller device according to claim 1, in, The access device is a router.
6. The controller device according to claim 1, in, The input is communicated directly to a server over the network, bypassing the client device.
7. The controller device according to claim 6, in, Bypassing the client device reduces input latency for input communicated to the server.
8. The controller device according to claim 1, in, The at least one input device comprises one or more of the following: a button, a joystick, a trigger, a touch pad, a motion sensor.
9. The controller device according to claim 1, in, The at least one input device includes a button configured to activate a user interface to enable sharing of the gameplay video.
10. A controller device for user interaction with a server of a cloud gaming system, include: at least one input device that generates input for controlling interactive gameplay of a video game by the server; wherein the controller device is a networked device having wireless communication hardware that communicates with an access device via a WiFi protocol to connect to a network that connects the controller device to the server, bypassing a client device that communicates with the server to receive gameplay video for presentation to a display device, such that the controller device transmits inputs for controlling interactive gameplay of the video game, the detection of which does not rely on any additional hardware or processing other than the controller device itself, to the access device via the network to be sent to the server without communicating through the client device, wherein the inputs include button inputs, joystick inputs, and embedded motion detection inputs, and wherein inputs that utilize additional hardware or require processing by the client device are sent by the client device to the server; wherein the server receives and processes the input for controlling interactive gameplay of the video game to render the gameplay video for transmission over the network to the client device for rendering to the display device local to the controller device, wherein the gameplay video is encoded for streaming and decoded for rendering to the display device.
11. The controller device according to claim 10, in, The controller device communicates directly with the access device through a WiFi network in a local environment in which the controller device is arranged.
12. The controller device according to claim 11, in, The WiFi network is provided by the access device.
13. The controller device according to claim 10, in, The access device is a router.
14. The controller device according to claim 10, in, The input is communicated directly to a server over the network, bypassing the client device.
15. The controller device according to claim 14, in, Bypassing the client device reduces input latency for input communicated to the server.
16. The controller device according to claim 10, in, The at least one input device includes a button configured to activate a user interface to enable sharing of the gameplay video.
17. A controller device for user interaction with a server of a cloud gaming system, include: at least one input device that generates input for controlling interactive gameplay of a video game by the server; wherein the controller device is a networked device having wireless communication hardware that communicates with an access device via a WiFi protocol to connect to a network that connects the controller device to the server, bypassing a client device that communicates with the server to receive gameplay video for presentation to a display device, such that the controller device transmits inputs for controlling interactive gameplay of the video game, the detection of which does not rely on any additional hardware or processing other than the controller device itself, to the access device via the network to be sent to the server without communicating through the client device, wherein the inputs include button inputs, joystick inputs, and embedded motion detection inputs, and wherein inputs that utilize additional hardware or require processing by the client device are sent by the client device to the server; wherein the server receives and processes the input for controlling interactive gameplay of the video game to render the gameplay video for transmission over the network to the client device for rendering to the display device integrated with the client device.
18. The controller device according to claim 17, in, The gameplay video is encoded for streaming and decoded for the rendering to the display device.
19. The controller device according to claim 17, in, The controller device communicates directly with the access device through a WiFi network in a local environment in which the controller device is arranged.
