Data display overlay for eSports streams

By dynamically selecting and updating viewports based on audience and player profiles, and gameplay data, the system provides a customized and engaging video stream for e-sports events, addressing the issue of unsatisfactory viewing experiences due to mismatched content preferences.

JP7675826B2Active Publication Date: 2025-05-13SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023540519
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-31
Filing Date
2021-12-21
Publication Date
2025-05-13
Estimated Expiration
2041-12-21

AI Technical Summary

Technical Problem

Audiences watching e-sports events often find the video stream unsatisfactory due to a lack of content that aligns with their preferences, requiring manual selection and updating of viewports to capture specific game actions or player performances, which can be cumbersome and lead to dissatisfaction.

Method used

A method and system for dynamically selecting and updating viewports for video games based on audience profiles, player profiles, and gameplay data, providing a customized audience video stream that automatically adjusts to the audience's preferred viewing experience.

Benefits of technology

This solution enhances the audience's viewing experience by providing a seamless and customized video stream that captures the audience's preferred game actions and player performances, potentially increasing audience engagement and retention for e-sports events.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007675826000001
    Figure 0007675826000001
  • Figure 0007675826000002
    Figure 0007675826000002
  • Figure 0007675826000003
    Figure 0007675826000003
Patent Text Reader

Abstract

A method and system are provided for selecting a viewport into a video game for a spectator watching a video game played by a player. The method includes identifying a plurality of virtual cameras for providing a plurality of viewports into a scene of the video game. The method includes accessing a spectator playbook, the spectator playbook stored in association with a profile of the spectator. The spectator playbook identifies a viewing history of the spectator for types of video games watched by the spectator. The method includes accessing a player playbook, the player playbook stored in association with the profile of the player. The player playbook identifies a player's performance for types of video games played by the player. The method includes accessing gameplay data for a video game played by the player. The method includes selecting a viewport into the video game from a plurality of viewports. The selected viewport is dynamically updated based on processing the spectator playbook, the player playbook, and changes to the gameplay data. The method includes streaming a spectator video stream to the spectator. The spectator video stream changes automatically based on the dynamic update of the viewport while the spectator is watching the video game. In this manner, a viewport into the video game is selected and dynamically updated to provide a customized viewing experience for the spectator.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates generally to selecting a viewport into a video game, and more particularly, to a method and system for selecting a viewport into a video game to provide a customized spectator video stream to a spectator. [Background technology]

[0002] 2. Description of Related Art The video game industry has undergone many changes over the years. In particular, the electronics (e.g., E-Sports) industry has seen tremendous growth in terms of the number of live events, viewership, and revenue. To this end, developers are exploring ways to develop advanced interactions that would improve the viewing experience of spectators who may become bored, frustrated, or disinterested in the gaming action displayed to them while watching an E-Sports event.

[0003] There is a growing trend in the E-sports industry to develop unique methods to improve the viewing experience of spectators watching E-sports events. Unfortunately, many spectators watching E-sports events may be disappointed with the video stream they are watching because the video stream does not include the content they want to watch and does not include the particular perspective (e.g., camera angle) of the video game scene that they prefer to watch. For example, when a spectator visits an E-sports event to watch players participating in a competition, the spectator may be interested in the gameplay of a particular player participating in the competition. Unfortunately, some spectators may feel burdened with manually selecting and updating the viewport throughout the progression of the gameplay to capture the particular player they most want to watch. As a result, unfortunately, the spectators may become dissatisfied with their viewing experience and may not be interested in continuing to watch the video game competition or game. As a result, many spectators may find the process of watching a live or recorded E-sports event too cumbersome, and the spectators may lose interest in watching further events in the future.

[0004] It is in these situations that embodiments of the present disclosure arise. Summary of the Invention

[0005] Implementations of the present disclosure include methods, systems, and devices related to the selection of a viewport into a video game for a spectator watching a video game played by a player. In some embodiments, a method is disclosed for providing a customized spectator video stream to each spectator watching a video game, where the viewport into the video game is selected and dynamically updated based on a profile of the spectator, a profile of a player playing the video game, gameplay data, or a combination thereof. For example, a spectator watching the gameplay of a player participating in an E-sports event may be interested in watching the E-sports event from a particular perspective or may want to focus on the gameplay of a particular player participating in the E-sports event. Instead of requiring the spectator to manually select a desired viewport into the E-sports event (if available), the method disclosed herein outlines a method for dynamically selecting and updating a viewport into the video game such that the spectator is provided with a customized spectator video stream that includes a viewport that is predicted to be preferred by the spectator. In this way, the spectator's viewing experience is improved and the spectator may be attracted to watch additional video game events in the future.

[0006] Thus, a spectator may seamlessly watch a video game event while viewing a customized spectator video stream without having to manually select a viewport. Additionally, the customized spectator video stream may capture all of the key game action within the spectator's preferred video game. In some embodiments, dynamic data may be generated regarding the players playing the video game and presented in the spectator video stream while the spectator is viewing the video game. In one embodiment, the dynamic data may be customized for a particular spectator and may include data of interest to the spectator.

[0007] In one embodiment, a method is provided for selecting a viewport into a video game for a spectator watching a video game played by a player. The method includes identifying a plurality of virtual cameras for providing a plurality of viewports into a scene of the video game. The method includes accessing a spectator playbook, the spectator playbook stored in association with a profile of the spectator. The spectator playbook identifies a viewing history of the spectator for types of video games watched by the spectator. The method includes accessing a player playbook, the player playbook stored in association with the profile of the player. The player playbook identifies a player's performance for types of video games played by the player. The method includes accessing gameplay data for a video game played by the player. The method includes selecting a viewport into the video game from a plurality of viewports. The selected viewport is dynamically updated based on processing the spectator playbook, the player playbook, and changes to the gameplay data. The method includes streaming a spectator video stream to the spectator. The spectator video stream changes automatically based on the dynamic update of the viewport while the spectator is watching the video game. In this manner, a viewport into the video game is selected and dynamically updated to provide a customized viewing experience for the spectator.

[0008] In another embodiment, a method is provided for selecting a viewport into a video game for a spectator watching a video game played by a player. The method includes identifying, by a server, a plurality of virtual cameras for providing a plurality of viewports into a scene of the video game. The method includes accessing, by the server, a spectator playbook. The spectator playbook is stored in association with a profile of the spectator. The spectator playbook identifies a viewing history of the spectator for types of video games watched by the spectator. The method includes accessing, by the server, a player playbook. The player playbook is stored in association with the profile of the player. The player playbook identifies a player's performance for types of video games played by the player. The method includes accessing, by the server, gameplay data of the video game played by the player. The method includes selecting, by the server, a viewport into the video game from a plurality of viewports. The selected viewport is dynamically updated based on processing the spectator playbook, the player playbook, and changes to the gameplay data by the machine learning model. The machine learning model is configured to identify features from the spectator playbook, the player playbook, and the game play data to classify attributes of the spectators, and the spectator attributes are used to select a viewport. The method includes streaming, by a server, a spectator video stream to the spectators, the spectator video stream automatically changing based on dynamic updates of the viewport while the spectators are watching the video game.

[0009] Other aspects and advantages of the present disclosure will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the disclosure.

[0010] The present disclosure may be better understood by reference to the following description taken in conjunction with the accompanying drawings. [Brief description of the drawings]

[0011] [Figure 1] 1 illustrates an embodiment of a system configured to execute game play for multiple players and stream customized spectator video streams to each of multiple spectators watching the game play of the multiple players, in accordance with an embodiment of the present disclosure. [Diagram 2] 1 illustrates an embodiment of multiple game regions within a game environment of a video game, according to an embodiment of the present disclosure. [Diagram 3] 11A-11D illustrate various embodiments of spectator interfaces with corresponding viewports selected by the system based on processing of the spectator playbook, player playbooks, and game play data, according to embodiments of the present disclosure. [Figure 4] 1A-D illustrate various embodiments of spectator interfaces shown in figures illustrating dynamic data regarding players playing a video game, according to embodiments of the present disclosure. [Diagram 5] 1 illustrates an embodiment of a player profile table illustrating player game metrics and various information associated with multiple players playing a video game, according to an embodiment of the present disclosure. [Figure 6] 1 illustrates an embodiment of a method for using a viewport recommendation model to dynamically select and update a spectator viewport using a player playbook, a spectator playbook, and gameplay data as inputs, in accordance with an embodiment of the present disclosure. [Figure 7] 1 illustrates a method for selecting a viewport into a video game for a spectator watching a video game played by a player, according to an embodiment of the present disclosure. [Figure 8] 1 illustrates components of an exemplary device that can be used to implement aspects of various embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] The following embodiments of the present disclosure provide methods, systems, and devices for selecting a viewport into a video game for a spectator watching a video game played by a player or a group of players. Specifically, while watching gameplay of multiple players playing a video game, each spectator watching the video game may be provided with a customized spectator video stream including a viewport into a scene of the video game preferred by each of the spectators. As used herein, a viewport may include a virtual camera angle presented to a user for viewing a game scene. In some cases, the virtual camera angle is dynamically generated substantially in real time for the user. In other cases, the viewport is selected from among one or more running virtual camera angles. Thus, dynamic selection of a viewport during viewing facilitates an improved viewing experience for each spectator, since the viewport is selected based on each spectator's predicted viewing preferences.

[0013] As an example, while watching an E-sports event including a basketball game, each spectator may have preferences for particular viewpoints, viewing angles, events, game action, players, in-game characters, etc. that they would most like to view. Because a video game may include multiple virtual cameras providing multiple viewports into video game scenes, the viewports are selected and dynamically updated based on a spectator playbook, a player playbook, and processing of changes that occur throughout gameplay. Thus, throughout a portion of the progression of gameplay, spectators may be provided with spectator video streams that include viewports into video game scenes that are selected based on the spectator's preferences.

[0014] In some embodiments, dynamic data about players playing a video game (e.g., player information, player bios, player statistics, player special skills, etc.) may be generated and presented in a spectator video stream. In general, the methods described herein provide a seamless and efficient way for spectators to view a video game played by multiple players without having to manually select a viewport or look up specific information about one or more players playing the video game.

[0015] As used herein, the term "viewport" should be broadly understood to refer to various camera views into a particular video game. Typically, some video games are played by multiple players at different locations in a game world. In the game world, various actions occur simultaneously, such as actions by one or more players playing and taking actions within the game to score points, achieve objectives, and / or interact with the game environment and / or other users. In this regard, a game scene in the game world can include one or more camera views into the action, which can provide a spectator with a projection of various virtual camera views into the game scene or game scenes. Thus, a camera view provides a viewport into one or more of the game scenes.

[0016] As used herein, the term

[0017] As an example, in one embodiment, a method is disclosed that allows for selection of a viewport into a video game for a spectator watching a video game played by a player. The method includes identifying a plurality of virtual cameras for providing a plurality of viewports into a scene within the video game. In one embodiment, the method may further include accessing a spectator playbook. In one example, the spectator playbook is stored in association with a profile of the spectator, the spectator playbook identifying a viewing history of the spectator for types of video games watched by the spectator. In another embodiment, the method may include accessing a player playbook. In one example, the player playbook is stored in association with a profile of the player, the player playbook identifying a player's performance for types of video games played by the player. In some embodiments, the method includes accessing gameplay data of a video game played by the player. In another embodiment, the method includes selecting a viewport into the video game from a plurality of viewports. In one example, the selected viewport is dynamically updated based on processing the spectator playbook, the player playbook, and changes to the gameplay data. In another embodiment, the method includes streaming a spectator video stream to the spectator. In one example, the spectator video stream changes automatically based on dynamic updates of the viewport while the spectator is watching the video game. However, it will be apparent to one of ordinary skill in the art that the present disclosure may be practiced without some or all of the specific details currently described. In other examples, well known process operations have not been described in detail in order to not unnecessarily obscure the present disclosure.

[0018] According to one embodiment, a system for selecting a viewport into a video game for a spectator watching a video game, such as an online multiplayer video game, is disclosed. For example, multiple spectators may be connected to watch multiple players competing in a live gaming event, such as an E-sports event. In one embodiment, the system includes a connection to a network. In some embodiments, multiple spectators may be connected over a network to watch players competing against each other in a live gaming event. In some embodiments, one or more data centers and game servers may enable connections to multiple spectators and players in executing the game and hosting the video game. The one or more game servers in the one or more data centers may be configured to receive, process, and act on data from multiple devices operated by the spectators and players.

[0019] In some embodiments, a customized spectator video stream may be created for each spectator watching the video game. The customized spectator video stream includes a unique viewport selected for each spectator based on the spectator playbook, player playbook, and processing of changes occurring in the basketball game associated with each spectator. The viewport selected may vary for each spectator watching the basketball game. For example, a spectator watching a video game including a basketball game may be a fan of a particular player participating in the basketball game and may only be interested in the game action of that particular player. In response, the system may select a viewport that captures the game action of the particular player, whatever the particular player is doing in the basketball game (e.g., shooting, passing, blocking, playing defense, sitting on the bench, etc.).

[0020] In some embodiments, the system is configured to generate dynamic data about the player for presentation in the spectator video stream while the spectator is watching the video game. In one example, during the player's gameplay, the system can generate dynamic data including various information related to the player, such as player biographical information, player statistics, player special skills, etc. In some embodiments, the dynamic data is generated based on a profile of the spectator watching the video game and the gameplay data. In this manner, each spectator is provided with customized dynamic data that is preferred by the spectator.

[0021] With the above summary in mind, the following provides several illustrative figures to facilitate understanding of example embodiments.

[0022] FIG 1 illustrates an embodiment of a system configured to execute game play for multiple players 104 and stream customized spectator video streams to multiple spectators 102 viewing the game play of the multiple players 104. In one embodiment, FIG 1 illustrates spectators 102a-102n, players 104a-104n, a data center 114, a game server 116, and a network 108. The system of FIG 1 may be referred to as a cloud gaming system, where multiple data centers 114, game servers 116 may cooperate to provide broad access to spectators 102 and players 104 in a distributed and seamless manner.

[0023] In some embodiments, players 104 may play multiplayer online games in which players 104 are teammates or belong to opposing teams competing against each other. Players 104 may be configured to send game commands to data center 114 and game server 116 over network 108. In one embodiment, players 104 may be configured to receive encoded video streams and decode the video streams received by data center 114 and game server 116. In some embodiments, the video streams may be presented to players 104 on a display and / or on a separate device such as a monitor or television. In some embodiments, the player 104 device may be any connected device with a screen and an Internet connection.

[0024] In some embodiments, the spectators 102 may be coupled to and communicate with the data center 114 and the game server 116 via the network 108. The spectators 102 are configured to receive encoded video streams from the data center 114 and the game server 116 and decode the received video streams. For example, the encoded video streams are provided by a cloud gaming system, and the players' and spectator's devices provide inputs to interact with the game. In one embodiment, each of the spectators 102 may receive a customized spectator video stream, such as a video stream from a multiplayer online game being run by the players 104. In some embodiments, the customized spectator video streams of each of the spectators 102 may include a viewport into a scene of the video game that is selected and dynamically updated based on the spectator's 102's corresponding playbook, the players' playbooks, and changes in game play data.

[0025] As used herein, a playbook is a model that defines the preferences of a player or spectator. The preferences may be generated directly as input from a player or spectator, or may be generated automatically based on a player's or spectator's reactions, plays, how actions are taken, options selected, how tasks are completed, past actions, past choices, past communications, social interactions, actions not taken, preferences not selected, responses to challenges, trophies won, points scored, levels achieved, comments made, etc. The elements that define a playbook may be multi-dimensional and may change over time based on player or spectator actions or inactions. The playbook in some embodiments is itself defined by a model that is learned using artificial intelligence.

[0026] In some embodiments, the video stream may be presented to the spectator 102 on the spectator's display, or on a monitor, or a separate device such as a television or head mounted display, or a portable device. In some embodiments, the spectators 102 may be configured to send feedback to the data center 114 and the game server 116 over the network 108.

[0027] In other embodiments, cameras may be placed in the physical environment of the spectator 102 and configured to capture the spectator's reactions and movements while watching a video stream of the gameplay. In some embodiments, the cameras may include eye tracking to enable tracking of the spectator's gaze. The cameras may capture images of the spectator's eyes, which are analyzed to determine the spectator's gaze direction and associated dilation of the spectator's pupils. In some embodiments, the spectator's gaze direction and pupil dilation may be used to determine whether the spectator is engaged with a particular game scene that the spectator is viewing. In some embodiments, the cameras may be configured to track and capture the spectator's facial expressions during gameplay, which are analyzed to determine emotions associated with the spectator's facial expressions.

[0028] In one example, according to the embodiment shown in FIG. 1, a spectator 102 is shown connected to watch the gameplay of the players 104 on the display 106. As shown on the display 106, the gameplay of the players 104 illustrates a game scene of the players 104 competing in a basketball game. As shown in the game scene, player characters 104a'-104n' representing the players 104a-104n are shown on a basketball court, competing against each other in the basketball game. During the progress of the gameplay, the players 104a-104n can control various actions and movements of the corresponding player characters 104a'-104n', and the spectator 102 can watch various game actions taking place throughout the video game.

[0029] As further illustrated in the game environment shown on the display 106, in some embodiments, the video game may include multiple virtual cameras 110a-110n distributed throughout the game environment and configured to record gameplay. Each of the virtual cameras 110a-110n may have an associated camera point of view (POV) 112 configured to record and capture game activity occurring within its vicinity. Thus, the multiple virtual cameras 110a-110n may capture and provide one or more unique viewports into a game scene of the video game. In one embodiment, the virtual cameras 110a-110n may be fixed or may dynamically move with a corresponding game scene in the video game. As a result, because the multiple virtual cameras 110a-110n may move within the game environment, the viewports associated with the virtual cameras may include a variety of viewing angles into the video game scene. 1, virtual cameras 110a-110n may be adjusted such that their corresponding camera POVs 112a-112n can capture various viewpoint angles of the basketball court, such as a bird's-eye view, a side view, a top view, a bottom view, an end view, or a zoomed-in view. In this manner, various game actions in a basketball game, such as slam dunks, free throws, fouls, fights between player characters, facial expressions of player characters, crowd reactions, etc., can be captured and provided to a spectator.

[0030] FIG. 2 illustrates an embodiment of multiple game regions 202a-202d within a game environment of a video game. As shown in FIG. 2, a game scene of a video game may include multiple game actions occurring simultaneously at a given time. For example, the game scene of FIG. 2 illustrates game play of a 3on3 basketball game. As shown, player characters 104a', 104b', and 104c' belong to the same team and compete against opposing player characters 104d', 104e', and 104n'. Player character 104a' is shown dribbling a basketball and moving toward one end of the basketball court while being guarded by opposing player character 104n'. Player character 104b' is shown walking toward one end of the basketball court while being guarded by opposing player character 104d'. Player character 104c' is shown attempting to get into a desired position to receive a pass from player 104a' while opponent player character 104e' is guarding player character 104c'.

[0031] As described above, the virtual cameras 110a-110n may be positioned anywhere within the game environment and may be configured to capture various perspectives of the game action occurring in the game environment of the video game. Throughout the progression of game play, the virtual cameras 110a-110n may be dynamically adjusted to provide a spectator with a viewing angle that is preferred by the spectator. For example, in one embodiment, the position of the virtual cameras 110 may be adjusted such that the camera POV 112 includes a bird's-eye view of the player character 104' dunking a basketball. Thus, each of the virtual cameras 110 may be configured to move dynamically and its corresponding POV 112 may capture a unique perspective of the game scene and provide a unique viewport for the video game.

[0032] 3A-3D illustrate various embodiments of a spectator interface 302 with a corresponding viewport selected by the system based on processing of the spectator playbook, the player playbook, and the game play data. As described above, a viewport corresponds to a virtual camera 110 and a corresponding camera POV 112 in the game environment of a video game, providing a view into a game scene of the video game. In one embodiment, as shown in FIG. 3A, this figure illustrates a spectator interface 302a with a corresponding viewport (e.g., V8) selected for a particular spectator 102 watching a video game. As shown, the viewport (e.g., V8) corresponds to a game region 202b within the game environment that includes a game scene in which a player character 104a' is attempting to perform a slam dunk while an opposing player character 104n' is attempting to deflect the slam dunk attempt.

[0033] In one embodiment, the selection of viewports for inclusion in the spectator interface 302 is based on processing of the spectator's 102 playbook, the player's 104 playbook, and gameplay data of the video game played by the player 104. In one embodiment, each spectator 102 may have a corresponding playbook. The spectator's 102 playbook may include various attributes and information associated with the spectator 102, such as viewing preferences, favorite players, gender, age, gaming experience, gameplay history, viewing history, gaming skill level, interests, disinterests, etc. In some embodiments, the spectator's 102 playbook may include other features processed using artificial intelligence to define a model for the playbook, in addition to the features described above. In some embodiments, each player 104 may have a corresponding playbook. The playbook associated with a player 104 may include various attributes and information associated with the player 104, such as gameplay tendencies, specialized game skills, game skill level, player experience, preferred game moves, career information, statistics related to the player's gameplay, preferences, interests, disinterests, etc. Similar to the playbooks of spectators 102, the playbooks of players 104 may include the features described above, as well as other features processed using artificial intelligence to define models of the playbooks. Additionally, the gameplay data may include gameplay metadata, such as state data generated by the multiple players 104 during gameplay and identifying all of the actions, inputs, and movements made by each of the multiple players 104 during gameplay. In other embodiments, the gameplay data may include various information related to the video game played by the players 104, such as video game scenes, video game progress, scores, virtual camera positions and totals, available viewports, contextual data regarding video game scenes, etc.

[0034] In some embodiments, the selection of viewports for inclusion in the spectator interface 302 is based on processing the spectator 102 playbook, the player 104 playbook, and gameplay data via a viewport recommendation model. The viewport recommendation model is configured to identify features from the spectator 102 playbook, the player 104 playbook, and gameplay data and classify the features using one or more classifiers. The classified features are then used by the viewport recommendation model to predict and select viewports that may match the interests of the spectator 102 or may be preferred by the spectator 102. For example, the playbook of a spectator 102 may reveal that the spectator 102 is a 25-year-old female who enjoys watching defensive plays in basketball video games. Additionally, the playbook of a player 104 may indicate which of the players 104 playing the video game have strong attributes for having strong defensive abilities (e.g., guarding players, stealing the ball, blocking shots, etc.). In response, the system can predict the types of game actions that the player character 104' will perform based on the game play data and playbook of the player 104, and select a viewport for the spectator 102 that includes game actions related to defensive play. Thus, by using a viewport recommendation model that implements machine learning, a viewport is selected based on a prediction of what game actions the spectator will prefer, which may be configured to improve over time.

[0035] In another embodiment, FIG. 3B illustrates a spectator interface 302b having a corresponding viewport (e.g., V10) selected for a particular spectator 102 watching a video game. As shown, the viewport (e.g., V10) corresponds to a game area 202d within a game environment including a game scene in which a player character 104b' jumps into the air for a layup shot while an opponent player character 104d' guards the player character 104b'. As described above, the selection of viewports for inclusion in the spectator interface 302b is based on processing of the spectator's 102 playbook, the player's 104 playbook, and gameplay data via a viewport recommendation model. The selected viewport may be dynamically updated throughout the progression of gameplay, where the selected viewport is predicted to include game actions of the player 104 that are likely to occur and will be preferred by the spectator 102.

[0036] In another embodiment, FIG. 3C illustrates a spectator interface 302c having a corresponding viewport (e.g., V7) selected for a particular spectator 102 watching a video game. As shown, the viewport (e.g., V7) corresponds to a game area 202c within the game environment that includes a game scene in which a player character 104c′ jumps into the air to dunk a basketball. As described above, the selection of a viewport for inclusion in the spectator interface 302c is based on processing of the spectator's 102 playbook, the player's 104 playbook, and game play data via a viewport recommendation model. In this example, the spectator 102 prefers game action involving a slam dunk attempt by the player 104c, and therefore the viewport (e.g., V7) was selected for inclusion in the spectator interface 302c.

[0037] In another embodiment, FIG. 3D illustrates a spectator interface 302d with a corresponding viewport (e.g., V4) selected for a particular spectator 102 watching a video game. As shown, the viewport (e.g., V4) corresponds to a game area 202a in a game environment including a game scene in which a player character 104b' and an opposing player character 104d' play against each other in a basketball game. In this example, the spectator 102 prefers game actions involving defensive actions of the player character 104d', and therefore the viewport (e.g., V4) was selected for inclusion in the spectator interface 302d. Thus, throughout the progression of game play, the system can dynamically update the viewport to include game actions in which the opposing player character 104d' is predicted to perform defensive actions against the player character in the video game.

[0038] 4A-4D illustrate various embodiments of the spectator interfaces 302a-302d shown in FIGS. 3A-3D illustrating dynamic data 402 regarding a player 104 playing a video game. In one embodiment, the dynamic data 402 is customized for each spectator 102 and presented in the spectator video stream and displayed on the spectator 302 interface. In some embodiments, the dynamic data 402 includes information about the player 104 playing the video game, and the information about the player 104 is customized based on the spectator 102 profile and the spectator 102 preferences. For example, each spectator 102 watching a video game may have different preferences and interests in the gameplay of one or more players 104 competing in the video game. A spectator 102 may be interested in learning about the personal life of a player 104 playing a video game. Another spectator may be interested in learning more about the accolades and accomplishments of a player 104 playing a video game.

[0039] In other embodiments, the dynamic data 402 may include information about one or more spectators 102 watching the video game. For example, the spectators 102 watching the video game may be celebrity spectators with a large fan base. One or more of the spectators watching the video game may also be interested in the game scenes the celebrity spectators are watching and the dynamic data generated for the celebrity spectators. Thus, in some embodiments, the system may generate the dynamic data 402 or a viewport for a spectator based on the dynamic data and viewports generated for other spectators watching the video game.

[0040] In one example, a profile of a spectator watching a game play may indicate that the spectator has a strong interest in player data and analytics. Thus, when dynamic data 402 is generated for the spectator, the dynamic data 402 may include information about the players, such as game statistics, season statistics, projected statistics, etc. In another example, a profile of a spectator watching a video game may indicate that the spectator has an interest in the personal lives of particular players playing the video game. Thus, when dynamic data 402 is generated for the spectator, the dynamic data 402 may include personal information about the players, such as where the players grew up, their years of experience, what the players do for fun, their relationship status, etc.

[0041] To illustrate an example of dynamic data 402, refer to FIG. 4A, which illustrates a spectator interface 302a with a corresponding viewport (e.g., V8) showing a player character 104a' vaulting over a player character 104n' to perform a slam dunk. As shown, dynamic data 402a is generated and presented in a spectator video stream for a particular spectator 102 viewing the spectator interface 302a. The dynamic data 402a includes various information about the player controlling the player character 104a', such as the player's name, position, team, hometown, experience, and favorite hobbies. As described above, the information included in the dynamic data 402a is generated based on a profile of the spectator viewing the spectator interface 302a and is predicted to match the spectator's interests and preferences. As further illustrated in FIG. 4A, dynamic data 402n is generated, which includes information about the player controlling the player character 104n'. As shown, the dynamic data 402n includes information about various awards won by the player.

[0042] In another embodiment, as shown in FIG. 4B, this figure illustrates a spectator interface 302b with a corresponding viewport (e.g., V10) showing a player character 104b′ jumping into the air to take a layup shot. As shown, dynamic data 402b is generated and presented in a spectator video stream for a particular spectator 102 watching the spectator interface 302b. The dynamic data 402b includes various information about the player controlling the player character 104b′, such as the player's game summary, e.g., points, rebounds, assists, turnovers, etc. In some embodiments, background information about the player may be provided, including instances of past wins, history regarding types of opposing players, types of plays that may be performed, etc. The information included in the dynamic data 402b is generated based on a profile of the spectator watching the spectator interface 302b and is predicted to match the spectator's interests and preferences.

[0043] In another embodiment, as shown in FIG. 4C, this figure illustrates a spectator interface 302c with a corresponding viewport (e.g., V7) showing a player character 104c' attempting to dunk a basketball. As shown, dynamic data 402c is generated and presented in a spectator video stream for a particular spectator 102 viewing the spectator interface 302c. The dynamic data 402c includes various information regarding the player controlling the player character 104c', such as the player's career highlights, e.g., signature moves, field goal percentage, three-point percentage, free throw percentage, etc. As described above, the information included in the dynamic data 402c is generated based on a profile of the spectator viewing the spectator interface 302c and is predicted to match the spectator's interests and preferences.

[0044] In another embodiment, as shown in FIG. 4D, this view illustrates a spectator interface 302d with a corresponding viewport (e.g., V4) showing the player character 104d′ guarding the player character 104b′. As shown, dynamic data 402d is generated and presented in the spectator video stream for the particular spectator 102 viewing the spectator interface 302d. The dynamic data 402d includes various information regarding the player controlling the player character 104d′, such as the player's season statistics, e.g., rebounds per game, steals per game, blocks per game, etc. As described above, the information included in the dynamic data 402d is generated based on a profile of the spectator viewing the spectator interface 302d and is predicted to match the spectator's interests and preferences.

[0045] 5 illustrates an embodiment of a player profile table 502 illustrating player game metrics and various information associated with multiple players playing a video game. As shown, the player profile table 502 includes a player identification 504 and various information associated with each player. In one embodiment, the player profile table 502 can include information such as player information 506, player history 508, player signature skills 510, and various player season statistics 512. In one embodiment, the player season statistics 512 can include various statistical categories such as rankings, games played (GP), minutes played per game (MPG), field goal percentage (FGP), free throw percentage (FTP), rebounds per game (REB), assists per game (AST), steals per game (STL), blocks per game (BLK), turnovers per game (TO), and points per game (PTG).

[0046] To provide an illustration of the player profile table 502 of FIG. 5, in one example, the system may determine that in a basketball game, Player 2 plays shooting guard and attempts three-point shots from the corner area of ​​the basketball court 74% of the time. Using Player 2's profile information and gameplay data of the video game, the system may determine that Player 2 is more likely to attempt three-point shots when Player 2 is in possession of the ball along the corner area of ​​the basketball court. Thus, viewports that are predicted to capture three-point shot attempts by Player 2 may be selected for spectators 102 who may like game action that includes three-point shot attempts.

[0047] In some embodiments, the player profile table 502 may be used to generate dynamic data 402 about a player 104 for presentation in the spectator video stream of the spectator 102. For example, a spectator 102 may be interested in a player's personal life rather than statistics related to the player's gameplay. Thus, the system will generate dynamic data 402 for the spectator 102 that includes information from the Player Information 506 and Player History 508 sections of the table, rather than the Player Season Statistics 512 section of the table.

[0048] 6 illustrates an embodiment of a method for using a viewport recommendation model 620 to dynamically select and update a viewport for a spectator 102 using a player playbook 602, a spectator playbook 604, and gameplay data 606 as inputs. As described above, the selected viewport is unique for each spectator 102 watching a video game and can be included in the spectator video stream of the spectator 102 to provide the spectator 102 with a customized viewing experience of the video game.

[0049] As shown in FIG. 6, in one embodiment, the system may include feature extraction operations (e.g., 608, 610, 612) configured to identify various features in the player playbook 602, the spectator playbook 604, and the game play data 606. After the feature extraction operations identify features associated with the input, the classifier operations (e.g., 614, 616, 618) may be configured to classify the features using one or more classifiers. In some embodiments, the system includes a viewport recommendation model 620 configured to receive the classified features from the classifier operations. Using the classified features, the viewport recommendation model 620 may be used to recommend and select a viewport for the spectator 102. In some embodiments, the viewport recommendation model 620 may be used, via operation 622, to determine which viewport to select for a particular spectator 102. In other embodiments, the viewport recommendation model 620 may be used, via operation 622, to determine the type of information used to generate dynamic data for the spectator 102. After the viewport and dynamic data have been selected and generated for the spectator 102 , a spectator feedback 624 operation may be configured to capture spectator feedback that can be incorporated into the spectator playbook 604 .

[0050] In one embodiment, the system may process a player playbook 602. As described above, the player playbook 602 may include various attributes and information related to a player 104, such as gameplay tendencies, specific game skills, game skill level, player experience, preferred game moves, career information, statistics related to the player's gameplay, preferences, interests, disinterests, etc. In some embodiments, the player playbook extraction 608 operation is configured to process the player playbook 602 to identify and extract features related to a player's profile. After the player playbook extraction 608 operation processes and identifies features from the player playbook 602, the player playbook classifier 614 operation is configured to classify the features using one or more classifiers. In one embodiment, the features are labeled using a classification algorithm for further refinement by the viewport recommendation model 620.

[0051] In another embodiment, the system may process a spectator playbook 604. As described above, the spectator playbook 604 may include various attributes and information related to the spectator 102, such as viewport preferences, viewing angle preferences, favorite players, gender, age, gaming experience, game play history, viewing history, gaming skill level, interests, disinterests, etc. In some embodiments, the spectator playbook extraction 610 operation is configured to process the spectator playbook 604 to identify and extract features related to a spectator profile. After the playbook extraction 610 operation processes and identifies features from the spectator playbook 604, the playbook extraction 610 operation is configured to classify the features using one or more classifiers. In one embodiment, the features are labeled using a classification algorithm for further refinement by the viewport recommendation model 620.

[0052] In another embodiment, the system may process gameplay data 606. As described above, the gameplay data 606 may include various information related to the video game being played by the player 104, such as video game scenes, video game progress, scores, virtual camera positions, total number of virtual cameras, available viewports, contextual data about video game scenes, metadata, etc. In some embodiments, the gameplay data extraction 612 operation is configured to process the gameplay data 606 to identify and extract features related to the player's gameplay. After the gameplay data extraction 612 processes and identifies features from the gameplay data 606, the gameplay data extraction classifier 618 operation is configured to classify the features using one or more classifiers. In some embodiments, the features are labeled using a classification algorithm for further refinement by the viewport recommendation model 620.

[0053] In some embodiments, the viewport recommendation model 620 is configured to receive classified features (e.g., classified features of player playbook, classified features of spectator playbook, classified features of gameplay data) as inputs. In another embodiment, other inputs that are not direct inputs or lack of input / feedback may also be obtained as inputs to the viewport recommendation model 620. The viewport recommendation model 620 can use machine learning models to predict viewport and dynamic data to a video game scene for a spectator 102. For example, a spectator playbook 604 associated with a spectator 102 watching a video game indicates that the spectator enjoys watching the reaction of the crowd participating in the video game event. Using the player playbook 602 and gameplay data associated with a player playing a video game, the viewport recommendation model 620 can predict when the player 104 will perform a particular game move, e.g., a slam dunk, a game winning shot, a block shot, etc., that will result in a large reaction from the crowd. In response, the viewport recommendation model 620 may predict the viewports that contain the best reactions (eg, facial reactions, loudest cheers, high fives, etc.) from individuals reacting to the game move.

[0054] In some embodiments, operation 622 may use the viewport recommendation model 620 to determine which viewport to select for a particular spectator 102 watching a video game. In other embodiments, operation 622 may use the viewport recommendation model 620 to determine the type of dynamic data to generate for a particular spectator 102. Once the viewport and dynamic data are determined, the viewport and dynamic data may be included in a spectator video stream for the spectator. In some embodiments, while the spectator is watching a video game, the viewport and dynamic data may be dynamically updated by the system based on continuous processing of the player playbook, the spectator playbook, and the gameplay data.

[0055] In some embodiments, the spectator feedback 624 operation can be configured to evaluate the spectator's reaction to the selected viewport and dynamic data. In some embodiments, the spectator's feedback can be made explicitly or implicitly by the spectator. For example, if a spectator does not look at or focus on a viewport provided to the spectator, it can be implied that the spectator is not interested in the content. In another example, if a spectator manually zooms in or clicks on a particular content within a viewport, it can be implied that the spectator is interested in the content. Thus, these inferences can be captured by the spectator feedback 624 operation and incorporated into the spectator playbook 604.

[0056] FIG. 7 illustrates a method of selecting a viewport into a video game for a spectator 102 watching a video game played by a player 104. In one embodiment, the method described in FIG. 7 provides a customized viewing experience for the spectator 102 including a viewport selected based on the preferences of the spectator 102. In one embodiment, the method includes an operation 702 configured to identify multiple virtual cameras 110 for providing multiple viewports into a scene of the video game. For example, a video game may include multiple virtual cameras 110 distributed throughout a game environment and configured to record gameplay of a player 104. Each virtual camera 110 may have a corresponding camera POV 112 that provides a viewport into the video game. In some embodiments, the virtual cameras 110 may zoom in on a particular game area, dynamically move to capture a particular viewing angle into the game scene, and float to provide a bird's-eye view of the game environment.

[0057] The method depicted in FIG. 7 then proceeds to operation 704, where the operation is configured to access a spectator playbook 604. The spectator playbook 604 is stored in association with a spectator's profile and identifies the spectator's viewing history for types of video games viewed by the spectator. In some embodiments, the spectator playbook 604 includes information such as viewport preferences, viewing angle preferences, favorite players, gender, age, gaming experience, game play history, viewing history, gaming skill level, interests, disinterests, etc. In some embodiments, the spectator playbook 604 is stored in association with a profile of the spectator 102 and may include a model that may be initially trained using global features of users similar to the spectator 102. Over time, the model becomes more specifically trained to the spectator's likes and dislikes that may be used to more accurately predict what the spectator may want to watch based on the spectator's 102 inputs and actions, e.g., selections and viewings.

[0058] The method proceeds to operation 706, where the operation is configured to access a player playbook 602. The player playbook 602 is stored in association with a profile of the player 104 and identifies the player's performance for the type of video game played by the player. In one embodiment, since there may be multiple players 104 playing a video game, operation 706 is configured to access a particular player's playbook based on the player being more active than other players, or based on the player being identified for following by a spectator 102, or based on the player being a main character in a scene or action sequence of the game, or based on the player having a social relationship with a spectator 102.

[0059] In some embodiments, the player playbook 602 includes information such as gameplay tendencies, specialized game skills, game skill levels, player experience, preferred game moves, career information, statistics related to the player's gameplay, preferences, interests, disinterests, etc. In other embodiments, the player playbook 602 may include commentator-type trivia information related to one or more players, such as, for example, Player N won her first E-sports event in 2019, Player N began playing video games professionally when she was 16 years old, Player N holds the record for most assists in a game, etc. In some embodiments, the player playbook 602 may include a model that is stored in association with the player's 104 profile and may be initially trained using global features of users similar to the player 104. Over time, the model becomes more specifically trained to the player's gameplay tendencies and actions that can be used to more accurately predict what game actions the player 104 may perform based on the player's 104 inputs and actions.

[0060] 7 proceeds to operation 708, where the operation is configured to access gameplay data 606 of the video game being played by the player. As described above, the gameplay data 606 may be information associated with game scenes of the video game, video game progress, scores, virtual camera positions, total number of virtual cameras, contextual data about video game scenes, metadata, game actions performed by the player, and the like.

[0061] The method proceeds to operation 710, where the operation is configured to select a viewport into the video game from a plurality of viewports. In some embodiments, the viewport is selected and dynamically updated based on processing the spectator playbook 604, the player playbook 602, and changes to the game play data 606. As described above, the selected viewport is predicted to include game actions of the player 104 that are preferred by the spectator 102. In some embodiments, the selected viewport is predicted to include a viewing angle into a scene of the video game that is preferred by the spectator 102. For example, based on the spectator playbook 604, the system may determine that the spectator enjoys watching a player perform a slam dunk from a bird's eye view rather than a side view. Thus, when the player of the video game performs a slam dunk, the viewport will provide the spectator with an angle from the bird's eye view. In other embodiments, operation 710 is configured to generate dynamic data about the player 104 for presentation in the spectator video stream while the spectator 102 is watching the video game. In one embodiment, the dynamic data for the player 104 is customized based on the spectator playbook 604 .

[0062] 7 proceeds to operation 710 where the operation is configured to stream a spectator video stream to a spectator 102. The spectator video stream may include a selected viewport and generated dynamic data. Because the viewport and dynamic data are selected and generated based on spectator preferences, the spectator video stream is customized for each spectator 102, enabling the spectator to seamlessly and efficiently watch a video game.

[0063] FIG. 8 illustrates components of an exemplary device 800 that can be used to implement aspects of various embodiments of the present disclosure. The block diagram illustrates device 800, which can incorporate or be a personal computer, video game console, personal digital assistant, server, or other digital device suitable for implementing embodiments of the present disclosure. Device 800 includes a central processing unit (CPU) 802 for executing software applications and optionally an operating system. CPU 802 may be comprised of one or more homogeneous or heterogeneous processing cores. For example, CPU 802 is one or more general-purpose microprocessors having one or more processing cores. Further embodiments can be implemented using one or more CPUs with a microprocessor architecture that is particularly adapted for highly parallel and computationally intensive applications, such as interpreting queries, identifying contextually relevant resources, and immediately implementing and rendering contextually relevant resources within a video game. Device 800 may be one that is localized to a player playing a game segment (e.g., a game console) or one that is remote from the player (e.g., a back-end server processor), or one of many servers that use virtualization in a game cloud system for remote streaming of game play to clients.

[0064] Memory 804 stores applications and data used by CPU 802. Storage 806 provides non-volatile storage and other computer-readable media for applications and data and may include fixed disk drives, removable disk drives, flash memory devices, and CD-ROM, DVD-ROM, Blu-ray, HD-DVD, or other optical storage devices, as well as signal transmission and storage media. User input devices 808 communicate user input from one or more users to device 800, examples of which may include a keyboard, mouse, joystick, touchpad, touch screen, still or video recorder / camera, gesture-recognizing tracking device, and / or microphone. Network interface 814 enables device 800 to communicate with other computer systems over electronic communications networks, which may include wired or wireless communications over local area networks and wide area networks such as the Internet. The audio processor 812 is adapted to generate analog or digital audio output from instructions and / or data provided by the CPU 802, the memory 804, and / or the storage 806. The components of the device 800, including the CPU 802, the memory 804, the data storage 806, the user input device 808, the network interface 810, and the audio processor 812, are connected via one or more data buses 822.

[0065] A graphics subsystem 820 is further coupled to the data bus 822 and the components of the device 800. The graphics subsystem 820 includes a graphics processing unit (GPU) 816 and a graphics memory 818. The graphics memory 818 includes a display memory (e.g., a frame buffer) used to store pixel data for each pixel of an output image. The graphics memory 818 may be integrated in the same device as the GPU 808, may be coupled as a separate device from the GPU 816, and / or may be incorporated within the memory 804. The pixel data may be provided to the graphics memory 818 directly from the CPU 802. Alternatively, the CPU 802 provides data and / or instructions defining a desired output image to the GPU 816, from which the GPU 816 generates pixel data for one or more output images. The data and / or instructions defining the desired output image may be stored in the memory 804 and / or the graphics memory 818. In an embodiment, GPU 816 includes 3D rendering capabilities for generating pixel data for output images from instructions and data defining the geometry, lighting, shading, texturing, motion, and / or camera parameters of a scene. GPU 816 may further include one or more programmable execution units capable of executing shader programs.

[0066] Graphics subsystem 814 periodically outputs pixel data of an image from graphics memory 818 for display on display device 810. Display device 810 may be any device capable of displaying visual information in response to signals from device 800, including CRT, LCD, plasma, and OLED displays. Device 800 may provide analog or digital signals to display device 810, for example.

[0067] It should be noted that access services distributed over a wide geography, such as providing access to games in the current embodiment, often use cloud computing. Cloud computing is a computing paradigm in which dynamically scalable, often virtualized resources are provided as a service over the Internet. Users do not need to be experts in the technical infrastructure of the "cloud" that supports them. Cloud computing can be categorized into different services such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Cloud computing services often provide common applications, such as video games, online, accessed through a web browser, but the software and data are stored on servers in the cloud. The term cloud is used as a metaphor for the Internet based on how the Internet is depicted in computer network diagrams, and is an abstract concept that hides a complex infrastructure.

[0068] A game server may be used in some embodiments to perform the operation of a persistent information platform for video game players. Most video games played on the Internet operate through a connection to a game server. Typically, the game uses a dedicated server application that collects data from the player and distributes the collected data to other players. In other embodiments, the video game may be executed by a distributed game engine. In these embodiments, the distributed game engine may run on multiple processing entities (PEs), such that each PE executes a functional segment of the given game engine on which the video game is executed. Each processing entity is viewed by the game engine as simply a computational node. A game engine typically performs a functionally diverse set of operations to execute a video game application along with additional services experienced by the user. For example, the game engine implements game logic and performs game calculations, physics, geometry transformations, rendering, lighting, shading, audio, and additional in-game or game-related services. The additional services may include, for example, messaging, social utilities, audio communication, game play playback functions, help functions, and the like. The game engine may run on an operating system virtualized by a hypervisor on a particular server, but in other embodiments the game engine itself may be distributed across multiple processing entities, each of which may reside on a different server unit in a data center.

[0069] According to this embodiment, for execution, each processing entity may be a server unit, a virtual machine, or a container, depending on the needs of each game engine segment. For example, if a game engine segment is responsible for camera transformation, since it will be performing a lot of relatively simple mathematical operations (e.g., matrix transformations), that particular game engine segment may be provisioned with a virtual machine associated with a graphics processing unit (GPU). Other game engine segments, requiring fewer but more complex operations, may be provisioned with processing entities associated with one or more higher-powered central processing units (CPUs).

[0070] By distributing the game engine, the game engine has elastic computational characteristics that are not bound by the capabilities of a physical server unit. Instead, the game engine is provisioned with more or fewer computation nodes as needed to meet the demands of the video game. From the perspective of the video game and the video game player, a game engine that is distributed across multiple computation nodes is indistinguishable from a non-distributed game engine running on a single processing entity, since a game engine manager or supervisor distributes the workload and seamlessly integrates the results to provide the video game output component to the end user.

[0071] Users access remote services through a client device that includes at least a CPU, a display, and I / O. The client device may be a PC, a cell phone, a netbook, a PDA, etc. In one embodiment, a network running on the game server recognizes the type of device used by the client and adjusts the communication method employed. In another case, the client device accesses the application on the game server over the Internet using a standard communication method such as html.

[0072] It should be understood that a given video game or game application may be developed for a particular platform and a particular associated controller device. However, when making such games available through a game cloud system as presented herein, users may access the video game with different controller devices. For example, a game may be developed for a game console and its associated controller, but a user may access a cloud-based version of the game from a personal computer utilizing a keyboard and mouse. In such a scenario, the input parameter configuration may define a mapping from inputs that can be generated by the user's available controller device (in this case, a keyboard and mouse) to inputs that are acceptable for execution of the video game.

[0073] In another example, a user may access the cloud gaming system via a tablet computing device, a touchscreen smartphone, or other touchscreen driven device. In this case, the client device and the controller device are integrated together in the same device, and input is provided by detected touchscreen input / gestures. For such devices, the input parameter configuration may define a particular touchscreen input that corresponds to game input for the video game. For example, a button, a directional pad, or other type of input element may be displayed or overlaid during the execution of the video game to indicate locations on the touchscreen that the user may touch to generate game input. Gestures such as swipes in a particular orientation, or particular touch motions may also be detected as game input. In one embodiment, to familiarize the user with control operations on the touchscreen, a tutorial may be provided to the user showing how to input gameplay via the touchscreen, for example, before beginning gameplay of the video game.

[0074] In some embodiments, the client device serves as a connection point for the controller device. That is, the controller device communicates with the client device via a wireless or wired connection and transmits inputs from the controller device to the client device. The client device may then process these inputs and then transmit the input data to the cloud gaming server over a network (e.g., a network accessed via a local network device such as a router). However, in other embodiments, the controller itself may be a networked device that has the ability to communicate inputs directly to the cloud gaming server over a network, without the need for such inputs to be communicated through the client device first. For example, the controller may connect to a local network device (such as the aforementioned router) to send and receive data from the cloud gaming server. Thus, input latency may be reduced by allowing the controller to send inputs directly over the network to the cloud gaming server, bypassing the client device, while the client device may still be required to receive video output from the cloud-based video game and render it on a local display.

[0075] In one embodiment, the networked controller and client devices can be configured to transmit certain types of inputs directly from the controller to the cloud gaming server and other types of inputs via the client device. For example, inputs that are not dependent on any additional hardware or processing, apart from the controller itself, can be transmitted directly from the controller to the cloud gaming server over the network, bypassing the client device. Such inputs can include button inputs, joystick inputs, embedded motion detection inputs (e.g., accelerometers, magnetometers, gyroscopes), and the like. However, inputs that utilize additional hardware or require processing by the client device can be transmitted by the client device to the cloud gaming server. These can include video or audio captured from the gaming environment that can be processed by the client device prior to transmission to the cloud gaming server. In addition, inputs from the controller's motion detection hardware can be processed by the client device in conjunction with the captured video to detect the position and movement of the controller, which is then communicated by the client device to the cloud gaming server. It should be understood that the controller device according to various embodiments can also receive data (e.g., feedback data) from the client device or directly from the cloud gaming server.

[0076] It should be understood that the various embodiments defined herein may be combined or assembled into specific implementations that use various features disclosed herein. Thus, the examples provided are only some of the possible examples and are not intended to limit the various implementations that may be defined by combining various elements. In some examples, an implementation may include fewer elements without departing from the spirit of the disclosed or equivalent implementations.

[0077] Embodiments of the present disclosure may be practiced with a variety of computer system configurations including handheld devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, etc. Embodiments of the present disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a wire-based or wireless network.

[0078] Although the operations of the method have been described in a particular order, it should be understood that other housekeeping operations may be performed between operations, or operations may be coordinated to occur at slightly different times, or operations may be distributed within the system to allow processing operations to occur at various intervals relative to processing, so long as the processing of telemetry and game state data to generate modified game state is performed in the desired manner.

[0079] One or more embodiments may also be fabricated as computer readable code on a computer readable medium. The computer readable medium may be any data storage device that can store data. The data may then be read by a computer system. Examples of computer readable media include hard drives, network attached storage (NAS), read only memory, random access memory, CD-ROM, CD-R, CD-RW, magnetic tape, and other optical and non-optical data storage devices. The computer readable medium may include computer readable tangible media distributed across network connected computer systems such that the computer readable code is stored and executed in a distributed fashion.

[0080] In one embodiment, the video game is executed locally on a game console, personal computer, or server. In some cases, the video game is executed by one or more servers at a data center. When the video game is executed, some instances of the video game may be simulations of the video game. For example, the video game may be executed by an environment or server that generates a simulation of the video game. The simulation, in some embodiments, is an instance of the video game. In other embodiments, the simulation may be generated by an emulator. In either case, when the video game is represented as a simulation, the simulation may be executed to render interactive content that can be interactively streamed, executed, and / or controlled by user input.

[0081] Although the foregoing embodiments have been described in some detail for clarity of understanding, it will be apparent that certain changes and modifications can be practiced within the scope of the appended claims. Thus, the present embodiments should be considered as illustrative and not restrictive, and the present embodiments should not be limited to the details set forth herein, but may be modified within the scope of the appended claims and their equivalents.

Claims

1. 1. A method for selecting a viewport into a video game for a spectator watching said video game played by a player, comprising: identifying a plurality of virtual cameras for providing a plurality of viewports into the video game scene; accessing a spectator playbook, the spectator playbook being stored in association with a profile of the spectator, the spectator playbook identifying a viewing history of the spectator relative to types of video games viewed by the spectator; accessing a player playbook, the player playbook stored in association with the player's profile, the player playbook identifying the player's performance relative to types of video games played by the player; accessing game play data of the video game being played by the player during game play of the player; selecting a viewport into the video game from the plurality of viewports during gameplay, wherein the selected viewport is dynamically updated using the spectator playbook, the player playbook, and a machine learning model configured to identify features from the gameplay data to classify attributes of the spectators, and wherein feedback from the spectators associated with the dynamically updated at least one selected viewport is incorporated into the spectator playbook, and the feedback is processed to extract features that are classified to update the machine learning model; streaming a spectator video stream to the spectator, the spectator video stream presenting a plurality of viewports that automatically change based on the dynamic updating of the viewports while the spectator is viewing the video game during the gameplay; The method comprising:

2. The method of claim 1 , wherein the selected viewport is predicted to contain game action of the player that is favored by the spectators.

3. The method of claim 1 , wherein the selected viewport is predicted to include a viewing angle into the scene of the video game that is preferred by the spectator.

4. The method of claim 1 , wherein the player is one of a plurality of players, each of the plurality of players having a corresponding player playbook.

5. The method of claim 1 , wherein the player is a player that generates at least a portion of the gameplay data for the video game.

6. 2. The method of claim 1, wherein the player is one of a plurality of players, and the player is selected from among the plurality of players to access the player playbook based on the player being more active than other players, or the player being identified by the spectator to follow, or the player being a main character in a scene or action sequence of the video game, or the player having a social relationship with the spectator.

7. 2. The method of claim 1, wherein the selected viewport is dynamically updated based on calls to the machine learning model to obtain a prediction regarding a type of viewport that is likely to be preferred by the spectator while the spectator is watching the video game.

8. generating dynamic data about the player for presentation in the spectator video stream while the spectator is watching the video game; The method of claim 1 , wherein the dynamic data about the player is customized based on the profile of the spectator.

9. 9. The method of claim 8, wherein the dynamic data includes data providing statistics related to the video game played by the player, player game metrics for the player, biographical information for the player, information about other spectators watching the video game, or a combination of two or more thereof.

10. The method of claim 1 , wherein the plurality of virtual cameras are fixed or dynamically move with corresponding game action occurring within the video game.

11. The method of claim 1 , wherein the selected viewport is further based on processing a gaze direction of the spectator or a facial expression of the spectator in response to game action occurring within the video game.

12. 1. A method for selecting a viewport into a video game for a spectator watching said video game played by a player, comprising: identifying, by a server, a plurality of virtual cameras for providing a plurality of viewports into a scene of the video game; accessing, by the server, a spectator playbook, the spectator playbook stored in association with a profile of the spectator, the spectator playbook identifying a viewing history of the spectator for types of video games viewed by the spectator; accessing, by the server, a player playbook, the player playbook stored in association with the player's profile, the player playbook identifying the player's performance relative to a type of video game played by the player; accessing, by the server, game play data of the video game being played by the player during game play by the player; selecting, by the server, a viewport into the video game from the plurality of viewports, the selected viewport being dynamically updated based on processing the spectator playbook, the player playbook, and changes to the gameplay data with a machine learning model, the machine learning model being configured to identify features from the spectator playbook, the player playbook, and the gameplay data to classify attributes of the spectators, the attributes of the spectators being used to select the viewport, the dynamic updating of the selected viewport triggering feedback from the spectators associated with at least one dynamically updated selected viewport, the feedback being incorporated into the spectator playbook, and the feedback being processed to extract features that are classified to update the machine learning model; streaming, by the server, a spectator video stream to the spectator, the spectator video stream presenting a plurality of viewports that automatically change based on the dynamic updating of the viewports while the spectator is viewing the video game during the gameplay; The method comprising:

13. The method of claim 12 , wherein the selected viewport is predicted to contain game action of the player that is favored by the spectators.

14. The method of claim 12 , wherein the selected viewport is predicted to include a viewing angle into the scene of the video game that is preferred by the spectator.

15. 13. The method of claim 12, wherein the selected viewport is dynamically updated based on calls to the machine learning model to obtain a prediction regarding a type of viewport that is likely to be preferred by the spectator while the spectator is watching the video game.

16. generating, by the server, dynamic data regarding the player for presentation in the spectator video stream while the spectator is watching the video game; The method of claim 12 , wherein the dynamic data about the player is customized based on the profile of the spectator.

17. 17. The method of claim 16, wherein the dynamic data includes data providing statistics related to the video game played by the player, player game metrics for the player, biographical information for the player, information about other spectators watching the video game, or a combination of two or more thereof.

18. The method of claim 12 , wherein the selected viewport is further based on processing a gaze direction of the spectator or a facial expression of the spectator in response to game actions occurring within the video game.

Citation Information

Patent Citations

  • Per-viewer engagement-based video optimization

    US10735815B1

  • System and method to provide a spectator experience for networked gaming

    US20030038805A1

  • Cloud-based game streaming

    US20200030697A1