Data display overlays for esports streams
Patent Information
- Application Number
- CN202180094445.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-12-31
- Filing Date
- 2021-12-21
- Publication Date
- 2026-09-29
- Estimated Expiration
- 2041-12-21
Smart Images

Figure CN116867554B_ABST
Abstract
Description
1. Technical Field
[0002] This disclosure generally relates to selecting a viewport to enter a video game, and more specifically to methods and systems for selecting a viewport to enter a video game to provide a viewer with a customized video stream. Background Technology
[0003] 2. Relevant Technical Descriptions
[0004] The video game industry has undergone many changes over the years. In particular, the esports industry has seen tremendous growth in the number of live events, viewership, and revenue. To this end, developers have been exploring ways to develop complex controls that will enhance the viewing experience for viewers who might find the game actions displayed to them while watching esports events boring, frustrating, or uninteresting.
[0005] The growth trend of the esports industry has spurred the development of unique ways to enhance the viewing experience of esports events. Unfortunately, many esports viewers may be frustrated with the video streams they are watching because they don't include content they are interested in or specific viewpoints from which they prefer to view the video game scene, such as camera angles. For example, when a viewer visits an esports event to watch players compete, they may be interested in the gameplay of a particular player. Unfortunately, some viewers may find it cumbersome to manually select and update the viewport as the game progresses to capture the specific player they are most interested in. This can lead to viewer frustration and a loss of interest in continuing to watch the esports match or game. Therefore, many viewers may find watching live or recorded esports events too cumbersome, and may lose interest in watching future events.
[0006] In this context, embodiments of the present disclosure have been developed. Summary of the Invention
[0007] Implementations of this disclosure include methods, systems, and apparatus related to selecting a viewport for a viewer watching a video game played by one or more players. In some embodiments, a method is disclosed for providing a customized viewer video stream for each viewer watching a video game, wherein the viewport for entering the video game is selected and dynamically updated based on the viewer's profile, the profiles of the players playing the video game, gameplay data, or a combination thereof. For example, a viewer watching the gameplay of players participating in an esports event may be interested in watching the esports event from a specific viewpoint, or may want to focus on the gameplay of certain players participating in the esports event. The method disclosed herein outlines a way to dynamically select and update the viewport for entering the video game to provide a customized viewer video stream for the viewer, including a viewport predicted to be preferred by the viewer, without requiring the viewer to manually select the desired viewport for entering the esports event (if available). This enhances the viewer's viewing experience and allows the viewer to watch other future video game events.
[0008] Therefore, while watching a customized viewer video stream, viewers can seamlessly watch video game events without having to manually select a viewport. Furthermore, the customized viewer video stream can capture all key gameplay actions preferred by the viewer. In some embodiments, dynamic data about the players playing the video game can be generated and presented in the viewer video stream as the viewer watches the game. In one implementation, the dynamic data can be customized for a specific viewer and can include data of interest to the viewer.
[0009] In one embodiment, a method is provided for selecting a viewport to enter a video game for a viewer watching a player play the game. The method includes: identifying multiple virtual cameras for providing multiple viewports to enter a scene of the video game. The method includes: accessing a viewer's playbook, which is stored in association with the viewer's profile. The viewer's playbook identifies the viewer's viewing history for a type of video game watched by the viewer. The method includes: accessing a player's playbook, which is stored in association with the player's profile. The player's playbook identifies the player's performance for a type of video game played by the player. The method includes: accessing game performance data for the video game played by the player. The method includes: selecting a viewport from the multiple viewports for entering the video game. The selected viewport is dynamically updated based on changes in the viewer's playbook, the player's playbook, and the game performance data. The method includes: streaming a viewer video stream for the viewer. While the viewer is watching the video game, the viewer video stream automatically changes based on the dynamic updates of the viewport. In this way, the viewport entering the video game is selected and dynamically updated to provide viewers with a customized viewing experience.
[0010] In another embodiment, a method is provided for selecting a viewport to enter a video game for a viewer watching a player play a video game. The method includes: identifying multiple virtual cameras by a server for providing multiple viewports to the scene of the video game. The method includes: accessing a viewer's gamebook by the server. The viewer's gamebook is stored in association with the viewer's profile. The viewer's gamebook identifies the viewer's viewing history for the type of video game watched by the viewer. The method includes: accessing a player's gamebook by the server. The player's gamebook is stored in association with the player's profile. The player's gamebook identifies the player's performance for the type of video game played by the player. The method includes: accessing game performance data for the video game played by the player by the server. The method includes: selecting a viewport from multiple viewports to enter the video game by the server. The selected viewport is dynamically updated based on changes in the viewer's gamebook, player's gamebook, and game performance data processed by a machine learning model. The machine learning model is configured to identify features from the viewer's gamebook, player's gamebook, and game performance data to classify the viewer's attributes, which are used to select the viewport. The method includes: streaming a viewer video stream to a viewer via a server. While the viewer is watching the video game, the viewer video stream automatically changes based on the dynamic updates of the viewport.
[0011] Other aspects and advantages of this disclosure will become apparent from the following detailed description, which is illustrated by way of example in conjunction with the accompanying drawings, to illustrate the principles of this disclosure. Attached Figure Description
[0012] This disclosure can be better understood by referring to the following description in conjunction with the accompanying drawings, in which:
[0013] Figure 1 An embodiment of a system according to the present disclosure is shown, the system being configured to allow multiple players to perform a game and to stream customized viewer video streams to each of multiple viewers watching the game performance of the multiple players.
[0014] Figure 2 An embodiment of multiple game areas within the game environment of a video game according to an embodiment of this disclosure is shown.
[0015] Figures 3A-3D Various embodiments of a viewer interface according to the present disclosure are shown, the viewer interface having a corresponding viewport selected by the system based on processing viewer gamebooks, player gamebooks, and game performance data.
[0016] Figures 4A-4D Various embodiments of the viewer interface shown in the figures according to embodiments of the present disclosure are illustrated, showing dynamic data about players playing video games.
[0017] Figure 5 An embodiment of a player profile table according to an embodiment of the present disclosure is shown, the player profile representing player game metrics and various information associated with multiple players playing a video game.
[0018] Figure 6 An embodiment of a method for dynamically selecting and updating a viewport for a viewer using a viewport recommendation model, taking into account the player's gamebook, the viewer's gamebook, and game performance data as input, is shown according to an embodiment of the present disclosure.
[0019] Figure 7 A method for selecting a viewport for a viewer watching a video game played by a player, according to an embodiment of the present disclosure, is shown.
[0020] Figure 8 Components of an exemplary apparatus that can be used to carry out various embodiments of the present disclosure are shown. Detailed Implementation
[0021] The following embodiments of this disclosure provide methods, systems, and apparatus for selecting a viewport for a viewer watching a video game played by a player or a group of players. Specifically, while watching multiple players playing the video game, each viewer can be provided with a customized viewer video stream comprising a viewport for a scene preferred by each of the viewers. As used herein, the viewport may include a virtual camera angle presented to the user for viewing the game scene. In some cases, the virtual camera angle is dynamically generated for the user substantially in real time. In other cases, the viewport is selected from one or more virtual camera angles. Therefore, the dynamic selection of the viewport during viewing enhances the viewing experience for each viewer because the viewport is selected based on the predicted viewing preferences of the respective viewer.
[0022] For example, when watching an esports event involving basketball, each viewer may have preferences for specific viewpoints, viewing angles, events, game actions, players, and in-game characters that they are most interested in observing. Since video games can include multiple virtual cameras providing multiple viewports into the game's scenes, these viewports are selected and dynamically updated based on the processing of changes occurring in the viewer's game book, the player's game book, and throughout the game. Therefore, throughout the advanced portion of the game, a viewer video stream can be provided to the viewer, comprising viewports selected based on the viewer's preferences to enter the game's scenes.
[0023] In some implementations, dynamic data about the players playing the video game (e.g., player information, player biographies, player statistics, player skills, etc.) can be generated and presented in the viewer's video stream. Generally, the method described herein provides viewers with a seamless and efficient way to watch video games played by multiple players without having to manually select a viewport or search for specific information about one or more players.
[0024] As used herein, the term "viewport" should be broadly understood to refer to different camera perspectives used to enter a particular video game. Generally, some video games are played by multiple players from different locations within the game world. The game world features various actions occurring simultaneously, such as actions performed by one or more players and actions taken in the game to score points, achieve objectives, and / or interact with the game environment and / or other users. In this context, the game scene within the game world can include one or more camera perspectives used to enter actions, and these camera perspectives can provide the viewer with different virtual camera perspectives for entering one or more game scenes. Therefore, camera perspectives provide viewports for entering one or more game scenes.
[0025] As used herein, terminology
[0026] For example, in one embodiment, a method is disclosed for selecting a viewport to enter a video game for a viewer watching a player play the game. The method includes identifying multiple virtual cameras for providing multiple viewports to enter a scene within the video game. In one embodiment, the method may further include accessing a viewer's gamebook. In one example, the viewer's gamebook is stored in association with a viewer's profile, and the viewer's gamebook identifies the viewer's viewing history for the type of video game watched by the viewer. In another embodiment, the method may include accessing a player's gamebook. In one example, the player's gamebook is stored in association with a player's profile, and the player's gamebook identifies the player's performance for the type of video game played by the player. In some embodiments, the method includes accessing game performance data for the video game played by the player. In another embodiment, the method includes selecting a viewport from multiple viewports to enter the video game. In one example, the selected viewport is dynamically updated based on changes in the viewer's gamebook, the player's gamebook, and the game performance data. In another embodiment, the method includes streaming a viewer's video stream to the viewer. In one example, while a viewer is watching a video game, the viewer's video stream changes automatically based on dynamic updates of the viewport. However, it will be apparent to those skilled in the art that this disclosure can be practiced without some or all of the specific details currently described. In other instances, well-known procedures have not been described in detail to avoid unnecessarily obscuring this disclosure.
[0027] According to one embodiment, a system is disclosed for selecting a viewport for a viewer watching a video game, such as an online multiplayer video game. For example, multiple viewers can be connected to watch multiple players participate in live gaming events, such as esports events. In one embodiment, the system includes a connection to a network. In some embodiments, multiple viewers can be connected via a network to watch players compete against each other in live gaming events. In some embodiments, one or more data centers and game servers can execute the game and establish connections with multiple viewers and players while hosting the video game. One or more game servers in one or more data centers can be configured to receive, process, and execute data from multiple devices freely controlled by viewers and players.
[0028] In some implementations, a customized viewer video stream can be created for each viewer watching a video game. This customized viewer video stream includes a unique viewpoint selected for each viewer and based on processing changes occurring within the viewer's game book, player's game book, and basketball game context associated with each viewer. The selected viewpoint can be different for each viewer watching a basketball game. For example, a viewer watching a video game involving basketball might be a fan of a specific player participating in the game and only interested in the specific player's actions. Therefore, the system can select a viewpoint that captures the specific player's actions, regardless of what the specific player is doing in the basketball game, such as shooting, passing, blocking, defending, sitting on the bench, etc.
[0029] In some implementations, the system is configured to generate dynamic data about the player for presentation in the viewer's video stream while the viewer is watching the video game. In one example, the system can generate dynamic data during the player's gameplay, including various information associated with the player, such as player biography, player statistics, player skills, etc. In some implementations, the dynamic data is generated based on the viewer's profile and gameplay data. This provides each viewer with customized dynamic data tailored to their viewing preferences.
[0030] In view of the above overview, several exemplary figures are provided below to facilitate understanding of exemplary embodiments.
[0031] Figure 1 An implementation of a system is illustrated, wherein the system is configured to allow multiple players 104 to perform a game and to stream customized viewer video streams to each of multiple viewers 102 who are watching the game performance of the multiple players 104. In one implementation, Figure 1 Viewers 102a-102n, players 104a-104n, data center 114, game server 116, and network 108 are shown. Figure 1 The system can be called a cloud gaming system, in which multiple data centers 114 and game servers 116 can work together to provide extensive access to viewers 102 and players 104 in a distributed and seamless manner.
[0032] In some implementations, player 104 may be playing a multiplayer online game, where the players are teammates or competing against each other in opposing teams. Player 104 may be configured to send game commands to data center 114 and game server 116 via network 108. In one implementation, player 104 may be configured to receive and decode encoded video streams received by data center 114 and game server 116. In some implementations, the video stream may be presented to player 104 on a display and / or a separate device such as a monitor or television. In some implementations, player 104's device may be any connected device with a screen and an internet connection.
[0033] In some implementations, viewer 102 can be coupled to and communicate with data center 114 and game server 116 via network 108. Viewer 102 is configured to receive encoded video streams and decode video streams received from data center 114 and game server 116. For example, the encoded video stream is provided by a cloud gaming system, while player and viewer devices provide input for interacting with the game. In one implementation, each of viewer 102 can receive a customized viewer video stream, such as a video stream from a multiplayer online game being played by player 104. In some implementations, the customized viewer video stream for each of viewer 102 may include a viewport into the scene of the video game, which is selected and dynamically updated based on changes in the viewer 102's corresponding gamebook, the player's gamebook, and game progress data.
[0034] As used herein, a gamebook is a model that defines the preferences of a player or viewer. Preferences can be generated directly as input from the player or viewer, or they can be generated automatically based on: how the player or viewer reacts, plays, takes actions, selects options, completes tasks, historical actions, historical choices, historical communications, social interactions, actions not taken, preferences not selected, responses to challenges, trophies earned, scores, levels achieved, comments made, etc. The factors defining the gamebook can be multidimensional and can be based on changes in the player's or viewer's actions or inactions over time. In some implementations, the gamebook itself is defined by a model learned using artificial intelligence.
[0035] In some implementations, the video stream can be presented to the viewer on the viewer's monitor 102 or on a separate device such as a monitor, television, head-mounted display, or portable device. In some implementations, the viewer 102 can be configured to send feedback to the data center 114 and the game server 116 via network 108.
[0036] In other embodiments, while watching a video stream of the game, a camera may be positioned in the viewer's physical environment and configured to capture the viewer's reactions and movements. In some embodiments, the camera may include gaze tracking to track the viewer's gaze. The camera may capture images of the viewer's eyes, which are analyzed to determine the viewer's gaze direction and any dilation associated with the viewer's pupils. In some embodiments, the viewer's gaze direction and pupil dilation may be used to determine whether the viewer is interested in a particular game scene they are watching. In some embodiments, the camera may be configured to track and capture the viewer's facial expressions during gameplay, which are analyzed to determine the emotions associated with the viewer's facial expressions.
[0037] In one example, according to Figure 1 In the illustrated embodiment, viewer 102 is shown watching player 104's game progress via a connected display 106. As shown on display 106, player 104's game progress depicts a game scene of player 104 participating in a basketball game. As shown in the game scene, player characters 104a'-104n' representing players 104a-104n are shown competing against each other on a basketball court. During the game, players 104a-104n can control various actions and movements of their corresponding player characters 104a'-104n', and viewer 102 can watch various game actions occurring throughout the video game.
[0038] As further illustrated in the game environment shown on display 106, in some embodiments, the video game may include multiple virtual cameras 110a-110n dispersed throughout the game environment and configured to record gameplay. Each of the virtual cameras 110a-110n may have an associated camera viewpoint (POV) 112 configured to record and capture game activity occurring within its periphery. Thus, the multiple virtual cameras 110a-110n can capture and provide one or more unique viewports into the game scene of the video game. In one embodiment, the virtual cameras 110a-110n may be fixed or may move dynamically with the corresponding game scene within the video game. Consequently, since the multiple virtual cameras 110a-110n can move within the game environment, the viewports associated with the virtual cameras can include various viewing angles into the scene of the video game. For example, as... Figure 1As shown on the monitor 106, the virtual cameras 110a-110n can be adjusted so that their corresponding POV cameras 112a-112n can capture various viewpoints of the basketball court, such as bird's-eye view, side view, top view, bottom view, end view, or magnified view. This allows for the capture of various game actions in the basketball game (such as dunks, free throws, fouls, battles between player characters, facial expressions of player characters, crowd reactions, etc.) and their presentation to the viewer.
[0039] Figure 2 An implementation scheme for multiple game areas 202a-202d within the game environment of a video game is shown. For example... Figure 2 As shown, a game scene in a video game can include multiple game actions that occur simultaneously at a given time. For example, Figure 2 The game scene depicts a 3v3 basketball game. As shown, player characters 104a', 104b', and 104c' are on the same team and are playing against opposing player characters 104d', 104e', and 104n'. Player character 104a' is shown dribbling the basketball and moving towards one end of the court, while being defended by opposing player character 104n'. Player character 104b' is shown walking towards one end of the court, while being defended 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 opposing player character 104e' is defending player character 104c'.
[0040] As noted above, virtual cameras 110a-110n can be positioned anywhere within the game environment and are configured to capture different perspectives of game actions occurring within the video game's environment. Throughout the game, virtual cameras 110a-110n can be dynamically adjusted to provide the viewer with a preferred viewing angle. For example, in one embodiment, the position of virtual camera 110 can be adjusted such that camera POV 112 includes a bird's-eye view of the player character 104' dunking a basketball. Therefore, each of the virtual cameras 110 can be configured to move dynamically, and its corresponding POV 112 can capture unique perspectives of the game scene and provide a unique viewpoint into the video game.
[0041] Figures 3A-3D Various embodiments of a viewer interface 302 are shown, the viewer interface having a corresponding viewport selected by the system based on processing viewer gamebook, player gamebook, and game progress data. As noted above, the viewport corresponds to a virtual camera 110 and its corresponding camera POV 112 in the video game's game environment, the camera POV providing a perspective for entering the game scene within the video game. In one embodiment, such as Figure 3A As shown, the figure illustrates a viewer interface 302a with a corresponding viewport (e.g., V8) selected for a specific viewer 102 watching a video game. As shown, the viewport (e.g., V8) corresponds to a game area 202b in the game environment, which includes a game scenario where a player character 104a' attempts to dunk while an opposing player character 104n' attempts to interfere with the dunk attempt.
[0042] In one implementation, the selection of the viewport includes processing data in the viewer interface 302 based on the gamebook of viewer 102, the gamebook of player 104, and the game performance data for the video game played by player 104. In one implementation, each viewer 102 may have a corresponding gamebook. The gamebook of viewer 102 may include various attributes and information associated with viewer 102, such as viewing preferences, favorite players, gender, age, gaming experience, gaming history, viewing history, gaming skill level, interests, disinterests, etc. In some implementations, the gamebook of viewer 102 may include the above-mentioned features and additionally include other features that have been processed using artificial intelligence to define a model for the gamebook. In some implementations, each player 104 may have a corresponding gamebook. The gamebook associated with player 104 may include various attributes and information associated with player 104, such as gaming tendencies, professional gaming skills, gaming skill level, player experience, signature gaming moves, biographical information, statistics associated with the player's gaming performance, preferences, interests, disinterests, etc. Similar to the gamebook of viewer 102, the gamebook of player 104 may include the features described above, and additionally include other features that have been processed using artificial intelligence to define the model of the gamebook. Furthermore, game progress data may be generated by multiple players 104 during their gameplay and includes game progress metadata, such as state data identifying all actions, inputs, and movements made by each of the multiple players 104 during gameplay. In other embodiments, game progress data may include various information associated with the video game played by player 104, such as the scene in the video game, the progress of the video game, the score, the position and total number of virtual cameras, the available viewports, background data about the scene in the video game, etc.
[0043] In some implementations, viewport selection includes processing viewer 102's gamebook, player 104's gamebook, and gameplay data via a viewport recommendation model in viewer interface 302. The viewport recommendation model is configured to identify features from viewer 102's gamebook, player 104's gamebook, and gameplay data, classifying these features using one or more classifiers. The classified features are then used by the viewport recommendation model to predict and select viewports that align with or are preferred by viewer 102's interests. For example, viewer 102's gamebook might reveal that viewer 102 is a 25-year-old woman who enjoys watching defensive plays in basketball video games. Furthermore, player 104's gamebook might indicate which player 104 in the video game possesses strong attributes related to defensive skills (e.g., defending players, stealing the ball, blocking shots, etc.). Therefore, based on player 104's gameplay data and gamebook, the system can predict the type of gameplay actions player character 104' will perform and select viewports for viewer 102 that include gameplay actions related to defensive plays. Therefore, by using a viewport recommendation model that implements machine learning, the selection of the viewport is based on predictions of what game actions the viewer might prefer, and these predictions can be configured to improve over time.
[0044] In another implementation scheme, Figure 3B A viewer interface 302b is shown with a corresponding viewport (e.g., V10) selected for a specific viewer 102 watching a video game. As shown, the viewport (e.g., V10) corresponds to a game area 202d in the game environment, which includes a game scenario where player character 104b' jumps in the air to attempt a layup while opposing player character 104d' defends player character 104b'. As noted above, the selection of the viewport is based on data processed in the viewer interface 302b, including the viewer 102's gamebook, player 104's gamebook, and game progress data via a viewport recommendation model. The selected viewport can be dynamically updated as the game progresses, where the prediction of the selected viewport includes possible game actions of player 104 that will be preferred by viewer 102.
[0045] In another implementation scheme, Figure 3CA viewer interface 302c is shown with a corresponding viewport (e.g., V7) selected for a specific viewer 102 watching a video game. As shown, the viewport (e.g., V7) corresponds to a game area 202c in the game environment, which includes a game scene where the player character 104c' jumps in the air to dunk a basketball. As noted above, the selection of the viewport is to include data in the viewer interface 302c based on the viewer 102's gamebook, the player 104's gamebook, and the game itself, processed through a viewport recommendation model. In this example, the viewport (e.g., V7) is selected to be included in the viewer interface 302c because the viewer 102 has a preference for game actions involving dunk attempts by the player 104c.
[0046] In another implementation scheme, Figure 3D A viewer interface 302d is shown with a corresponding viewport (e.g., V4) selected for a specific viewer 102 watching a video game. As shown, the viewport (e.g., V4) corresponds to a game area 202a in the game environment, which includes a game scene in a basketball game where player character 104b' and opposing player character 104d' are matched against each other. In this example, the viewport (e.g., V4) is selected to include it in the viewer interface 302d because viewer 102 has a preference for game actions involving defensive moves by player character 104d'. Therefore, as the game progresses, the system can dynamically update the viewport to include game actions, where the opposing player character 104d' is predicted to make defensive moves against the player character in the video game.
[0047] Figures 4A-4D It shows Figures 3A-3D Various embodiments of the viewer interfaces 302a-302d shown illustrate dynamic data 402 about player 104 playing the video game. In one embodiment, dynamic data 402 is customized for each viewer 102 and presented in the viewer's video stream for display on the viewer's interface 302. In some embodiments, dynamic data 402 includes information about player 104 playing the video game, and this information is customized based on the viewer 102's profile and preferences. For example, each viewer 102 watching the video game may have various preferences and interests regarding the gameplay of one or more players 104 participating in the video game. Viewers 102 may be interested in learning about the personal life of player 104 playing the video game. Other viewers may be interested in learning more about player 104's achievements and accomplishments.
[0048] In other embodiments, dynamic data 402 may include information about one or more viewers 102 watching the video game. For example, a viewer 102 watching the video game may be a celebrity viewer with a large fan base. One or more of the viewers watching the video game may be interested in the game scene being viewed by the celebrity viewer and the dynamic data generated for the celebrity viewer. Therefore, in some embodiments, the system may generate dynamic data 402 or viewports for viewers based on dynamic data and viewports generated for other viewers watching the video game.
[0049] In one example, a viewer's profile could indicate that the viewer watching the game has a strong interest in player data and analytics. Therefore, when generating dynamic data 402 for the viewer, dynamic data 402 could include information about the player, such as game statistics, season statistics, prediction statistics, etc. In another example, a viewer's profile watching a video game could indicate that the viewer is interested in the personal life of a specific player playing the video game. Therefore, when generating dynamic data 402 for the viewer, dynamic data 402 could include personal information about the player, such as where the player grew up, years of experience, the player's hobbies, relationship status, etc.
[0050] To illustrate an example of dynamic data 402, refer to... Figure 4A The figure illustrates a viewer interface 302a with a corresponding viewport (e.g., V8) showing player character 104a' attempting a dunk over player character 104n'. As shown, dynamic data 402a is generated and presented in a viewer video stream for a specific viewer 102 watching the viewer interface 302a. Dynamic data 402a includes various information about the player controlling player character 104a', such as the player's name, location, team, hometown, experience, and preferences. As noted above, the information included in dynamic data 402a is generated based on the viewer's profile watching the viewer interface 302a and is predicted to be consistent with the viewer's interests and preferences. Figure 4A As further shown, dynamic data 402n is generated and includes information about the player controlling the player character 104n'. As illustrated, dynamic data 402n includes information about various rewards obtained by the player.
[0051] In another implementation scheme, such as Figure 4BAs shown, the figure illustrates a viewer interface 302b with a corresponding viewport (e.g., V10) showing a player character 104b' jumping in the air to attempt a layup. Dynamic data 402b is generated and presented in a viewer video stream for a specific viewer 102 watching the viewer interface 302b. Dynamic data 402b includes various information about the player controlling the player character 104b', such as the player's game profile, including scores, rebounds, assists, turnovers, etc. In some implementations, background information about the player may be provided, including past winning examples, history against different types of players, and the likelihood of performing different playstyles. The information included in dynamic data 402b is generated based on the viewer's profile watching the viewer interface 302b and is predicted to be consistent with the viewer's interests and preferences.
[0052] In another implementation scheme, such as Figure 4C As shown, the figure illustrates a viewer interface 302c with a corresponding viewport (e.g., V7) showing a player character 104c' attempting to dunk a basketball. Dynamic data 402c is generated and presented in a viewer video stream for a specific viewer 102 watching the viewer interface 302c. Dynamic data 402c includes various information about the player controlling the player character 104c', such as the player's career highlights, including signature moves, field goal percentage, three-point percentage, free throw percentage, etc. As noted above, the information included in dynamic data 402c is generated based on the viewer's profile watching the viewer interface 302c and is predicted to be consistent with the viewer's interests and preferences.
[0053] In another implementation scheme, such as Figure 4D As shown, the figure illustrates a viewer interface 302d with a corresponding viewport (e.g., V4) showing player character 104d' defending player character 104b'. As shown, dynamic data 402d is generated and presented in a viewer video stream for a specific viewer 102 watching the viewer interface 302d. Dynamic data 402d includes various information about the player controlling player character 104d', such as the player's season statistics, like average rebounds, average steals, average blocks, etc. As noted above, the information included in dynamic data 402d is generated based on the viewer's profile watching the viewer interface 302d and is predicted to be consistent with the viewer's interests and preferences.
[0054] Figure 5An embodiment of player profile table 502 is shown, which represents player game metrics and various information associated with multiple players playing a video game. As shown, player profile table 502 includes player identifier 504 and various information associated with each player. In one embodiment, player profile table 502 may include information such as: player information 506, player biography 508, player signature moves 510, and various player season statistics 512. In one embodiment, player season statistics 512 may include various statistical categories such as rank, games played (GP), minutes 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).
[0055] In order to provide for Figure 5 The description of player profile table 502 in the system, in one example, shows that in a basketball game, player 2 plays as a shooting guard and attempts three-pointers from the corner area of the basketball court 74% of the time. Using player 2's profile information and video game performance data, the system can determine that when player 2 dribbles the ball along the corner area of the basketball court, the player is likely to attempt a three-pointer. Therefore, a viewport for predicting and capturing player 2's three-point attempts can be selected for a viewer 102 who may have a preference for game actions involving three-point attempts.
[0056] In some implementations, the player profile table 502 can be used to generate dynamic data 402 about player 104 for presentation in the viewer's video stream for viewer 102. For example, viewer 102 may be interested in statistics related to the player's personal life rather than the player's gameplay. Therefore, the system will generate dynamic data 402 for viewer 102, which includes information from the player information 506 and player biography 508 portions of the table, but not from the player season statistics 512 portion of the table.
[0057] Figure 6 An implementation scheme for a method of dynamically selecting and updating the viewport for viewer 102 using a viewport recommendation model 620, taking into account player gamebook 602, viewer gamebook 604, and game performance data 606 as inputs. As noted above, the selected viewport can be unique for each viewer 102 watching the video game and is included in the viewer video stream of viewer 102 to provide viewer 102 with a customized viewing experience of the video game.
[0058] like Figure 6As shown, in one embodiment, the system may include feature extraction operations (e.g., 608, 610, 612) configured to identify various features in the player's gamebook 602, the viewer's gamebook 604, and the game progress data 606. After the feature extraction operations identify features associated with the input, 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 classified features from the classifier operations. Using the classified features, the viewport recommendation model 620 may be used to recommend and select viewports for viewer 102. In some embodiments, operation 622 may use the viewport recommendation model 620 to determine which viewports to select for a particular viewer 102. In other embodiments, operation 622 may use the viewport recommendation model 620 to determine the type of information used to generate dynamic data for viewer 102. After selecting and generating viewport and motion data for viewer 102, the viewer feedback 624 operation can be configured to capture viewer feedback, which can be incorporated into the viewer's gamebook 604.
[0059] In one implementation, the system may process player gamebook 602. As noted above, player gamebook 602 may include various attributes and information associated with player 104, such as play trends, professional gaming skills, skill level, player experience, signature game moves, biographical information, statistics related to the player's play, preferences, interests, and disinterests. In some implementations, player gamebook extraction 608 is configured to process player gamebook 602 to identify and extract features associated with the player's profile. After player gamebook extraction 608 processes and identifies the features from player gamebook 602, player gamebook classifier 614 is configured to classify the features using one or more classifiers. In one implementation, a classification algorithm is used to label the features for further refinement by viewport recommendation model 620.
[0060] In another implementation, the system may process the viewer's game book 604. As noted above, the viewer's game book 604 may include various attributes and information associated with the viewer 102, such as viewport preferences, viewing angle preferences, favorite players, gender, age, gaming experience, gaming history, viewing history, gaming skill level, objects of interest, objects of disinterest, etc. In some implementations, the viewer's game book extraction 610 operation is configured to process the viewer's game book 604 to identify and extract features associated with the viewer's profile. After the game book extraction 610 operation processes and identifies the features from the viewer's game book 604, the game book extraction 610 operation is configured to classify the features using one or more classifiers. In one implementation, a classification algorithm is used to label the features for further refinement by the viewport recommendation model 620.
[0061] In another implementation, the system may process game progress data 606. As noted above, game progress data 606 may include various information associated with the video game being played by player 104, such as the scene in the video game, the progress of the video game, the score, the position of the virtual camera, the total number of virtual cameras, the available viewports, background data about the scene in the video game, metadata, etc. In some implementations, the game progress data extraction 612 operation is configured to process game progress data 606 to identify and extract features associated with the player's game progress. After game progress data extraction 612 processes and identifies the features from game progress data 606, the game progress data extraction classifier 618 operation is configured to classify the features using one or more classifiers. In some implementations, a classification algorithm is used to label the features for further refinement by the viewport recommendation model 620.
[0062] In some implementations, the viewport recommendation model 620 is configured to receive categorized features (e.g., categorized features of the player's gamebook, categorized features of the viewer's gamebook, and categorized features of the game performance data) as input. In another implementation, other inputs that are not direct inputs or lack input / feedback can also be used as input to the viewport recommendation model 620. The viewport recommendation model 620 can use a machine learning model to predict the viewport and dynamic data for the viewer 102 entering the video game scene. For example, the viewer's gamebook 604 associated with the viewer 102 watching the video game indicates that the viewer likes to watch the reactions of the crowd attending the video game event. Using the player's gamebook 602 associated with the player playing the video game and the game performance data, the viewport recommendation model 620 can predict when the player 104 will make a specific game action that will produce a loud reaction in the crowd, such as a dunk, a game-winning shot, a blocked shot, etc. Therefore, the viewport recommendation model 620 can predict the viewport that includes the best reactions from individuals reacting to game actions (e.g., facial reactions, loudest cheers, high-fives, etc.).
[0063] In some implementations, operation 622 may use viewport recommendation model 620 to determine which viewport to select for a specific viewer 102 watching the video game. In other implementations, operation 622 may use viewport recommendation model 620 to determine the type of dynamic data to be generated for a specific viewer 102. Once the viewport and dynamic data are determined, they can be included in the viewer's video stream for the viewer. In some implementations, the viewport and dynamic data may be dynamically updated by the system based on continuous processing of data from the player's game book, the viewer's game book, and the game while the viewer is watching the video game.
[0064] In some implementations, the viewer feedback 624 operation can be configured to assess the viewer's response to a selected viewport and dynamic data. In some implementations, the viewer's feedback can be explicit or implied by the viewer. For example, if the viewer does not look at the viewport provided to the viewer or does not focus their attention on the viewport, it can imply that the viewer is not interested in the content. In another example, if the viewer manually zooms in or clicks on specific content in the viewport, it can imply that the viewer is interested in that content. Therefore, these inferences can be captured by the viewer feedback 624 operation and incorporated into the viewer playbook 604.
[0065] Figure 7 A method is shown for selecting a viewport for a viewer 102 watching a video game played by player 104 to enter the video game. In one embodiment, Figure 7The method described herein provides viewer 102 with a customized viewing experience including viewport selection based on viewer 102's preferences. In one embodiment, the method includes operation 702, configured to identify multiple virtual cameras 110 for providing multiple viewports into a video game scene. For example, the video game may include multiple virtual cameras 110 distributed throughout the game environment and configured to record player 104's gameplay. Each virtual camera 110 may have a corresponding camera POV 112 providing a viewport into the video game. In some embodiments, the virtual cameras 110 may zoom in on specific game areas, move dynamically to capture specific viewing angles within the game scene, and float to provide a bird's-eye view of the game environment.
[0066] Figure 7 The method then proceeds to operation 704, which is configured to access the viewer's game book 604. The viewer's game book 604 is stored in association with the viewer's profile and identifies the viewer's viewing history for the type of video game viewed by the viewer. In some embodiments, the viewer's game book 604 includes information such as: viewport preferences, viewing angle preferences, favorite players, gender, age, gaming experience, gaming history, viewing history, gaming skill level, things of interest, things of disinterest, etc. In some embodiments, the viewer's game book 604 may be stored in association with the profile of viewer 102 and includes a model that can be initially trained using global features of users similar to viewer 102. Over time, based on viewer 102's inputs and actions (e.g., selections and viewing), the model will be trained more specifically for the viewer's preferences and dislikes, which can be used to predict with greater accuracy what the viewer might want to watch.
[0067] The method proceeds to operation 706, whereby the operation is configured to access the player's game book 602. The player's game book 602 is stored in association with the profile of player 104 and identifies the player's performance for the type of video game played by the player. In one embodiment, since multiple players 104 may be playing the video game, operation 706 is configured to access a specific player's game book based on: the player being more active than other players; or the player being followed by spectator 102; or the player being a protagonist in a scene or sequence of actions within the game; or the player having a social relationship with spectator 102.
[0068] In some implementations, the player's game book 602 includes information such as: game progression trends, professional gaming skills, skill level, player experience, signature game moves, biographical information, statistics associated with the player's game progression, preferences, interests, and disinterests. In other implementations, the player's game book 602 may include commentator-style trivia associated with one or more players, such as player N winning her first esports tournament in 2019, player N starting to play video games professionally at age 16, player N holding the record for most assists in a game, etc. In some implementations, the player's game book 602 may be stored in association with a profile of player 104 and includes a model that can be initially trained using global features similar to those of player 104. Over time, based on player 104's inputs and actions, the model will be trained more specifically for the player's game progression trends and actions, which can be used to predict what game moves player 104 is likely to perform with greater accuracy.
[0069] Figure 7 The method then proceeds to operation 708, which is configured to access game progress data 606 for the video game played by the player. As noted above, game progress data 606 may be related to information such as: game scenes in the video game, the progress of the video game, scores, the position of virtual cameras, the total number of virtual cameras, background data about the scenes in the video game, metadata, and game actions performed by the player.
[0070] The method proceeds to operation 710, whereby the operation is configured to select a viewport from a plurality of viewports entering the video game. In some embodiments, the viewport is selected and dynamically updated based on changes in the viewer's game book 604, the player's game book 602, and the game progress data 606. As discussed above, the predicted viewport includes the game actions preferred by the viewer 102 of player 104. In some embodiments, the predicted viewport includes the viewing angle of the scene preferred by the viewer 102 entering the video game. For example, based on the viewer's game book 604, the system can determine that the viewer prefers to watch a player dunk from a bird's-eye view rather than a side view. Therefore, when a player dunks in the video game, the viewport will provide the viewer with an angle from the bird's-eye view. In other embodiments, operation 710 is configured to generate dynamic data about player 104 for presentation in the viewer's video stream while the viewer 102 is watching the video game. In one embodiment, the dynamic data about player 104 is customized based on the viewer's game book 604.
[0071] Figure 7The method shown then proceeds to operation 710, which is configured to stream a viewer video stream for viewer 102. The viewer video stream may include a selected viewport and generated motion data. Because the viewport and motion data are selected and generated based on viewer preferences, the viewer video stream is tailored to each viewer 102 and allows the viewer to watch video games in a seamless and efficient manner.
[0072] Figure 8 Components of an exemplary apparatus 800 that can be used to perform various embodiments of the present disclosure are shown. This block diagram illustrates apparatus 800, which may be incorporated into or may be a personal computer, video game console, personal digital assistant, server, or other digital device suitable for practicing embodiments of the present disclosure. Apparatus 800 includes a central processing unit (CPU) 802 for running software applications and optionally running an operating system. CPU 802 may consist 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. Additional embodiments may be implemented using one or more CPUs with a microprocessor architecture particularly adapted to highly parallel and computationally intensive applications, such as handling operations such as interpreting queries, identifying context-dependent resources, and immediately implementing and rendering context-dependent resources in video games. Apparatus 800 may be located locally (e.g., at a game console) for a player playing a segment of the game, or remotely relative to the player (e.g., at a back-end server processor), or in a game cloud system using virtualization to remotely stream the game to a client from one of many servers.
[0073] Memory 804 stores applications and data for use by CPU 802. Storage device 806 provides non-volatile storage for applications and data and other computer-readable media, and may include fixed disk drives, removable disk drives, flash memory devices, and CD-ROMs, DVD-ROMs, Blu-ray, HD-DVDs, or other optical storage devices, as well as signal transmission and storage media. User input device 808 transmits user input from one or more users to device 800. Examples of such devices may include a keyboard, mouse, joystick, touchpad, touchscreen, still or video recorder / camera, gesture tracking device, and / or microphone. Network interface 814 allows device 800 to communicate with other computer systems via electronic communication networks and may include wired or wireless communication over local area networks and wide area networks such as the Internet. Audio processor 812 is adapted to generate analog or digital audio output from instructions and / or data provided by CPU 802, memory 804, and / or storage device 806. The components of device 800 (including CPU 802, memory 804, data storage device 806, user input device 808, network interface 814, and audio processor 812) are connected via one or more data buses 822.
[0074] The graphics subsystem 820 is also connected to the data bus 822 and 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 display memory (e.g., a frame buffer) for storing pixel data for each pixel of an output image. The graphics memory 818 may be integrated with the GPU 808 in the same device, connected to the GPU 816 as a separate device, and / or implemented within memory 804. Pixel data may be provided directly from the CPU 802 to the graphics memory 818. Alternatively, the CPU 802 provides the GPU 816 with data and / or instructions defining the desired output image, and the GPU 816 generates pixel data for one or more output images based on the data and / or instructions. The data and / or instructions defining the desired output image may be stored in memory 804 and / or graphics memory 818. In the implementation, GPU 816 includes 3D rendering capabilities for generating pixel data for an output image based on instructions and data defining geometry, lighting, shadows, textures, motion, and / or camera parameters for a scene. GPU 816 may also include one or more programmable execution units capable of executing shader programs.
[0075] The graphics subsystem 820 periodically outputs pixel data of an image from the graphics memory 818 for display on the display device 810. The display device 810 can be any device capable of displaying visual information in response to signals from the device 800, including CRT, LCD, plasma, and OLED displays. The device 800 can provide, for example, analog or digital signals to the display device 810.
[0076] It should be noted that access services delivered over vast geographical areas (such as providing access to games in current implementations) often utilize cloud computing. Cloud computing is a computing paradigm in which dynamically scalable and often virtualized resources are provided as a service via the internet. Users do not need to be experts in the technical infrastructure that supports their “cloud.” 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 typically provide commonly used applications (such as video games) online and accessible from a web browser, while the software and data are stored on servers in the cloud. Based on how the internet is depicted in computer network diagrams, the term cloud is used as a metaphor for the internet and is an abstraction of its hidden, complex infrastructure.
[0077] In some implementations, a game server can be used to operate a platform for recording video game player duration information. Most video games played over the internet operate via a connection to a game server. Typically, games use dedicated server applications that collect data from players and distribute it to other players. In other implementations, the video game can be executed by a distributed game engine. In these implementations, the distributed game engine can run on multiple processing entities (PEs), such that each PE executes a functional segment of a given game engine on which the video game runs. The game engine simply treats each processing entity as a computing node. The game engine typically performs a diverse range of operations to execute additional services for the video game application and the user experience. For example, the game engine implements game logic, performs game calculations, physics effects, geometric transformations, rendering, lighting, shadows, audio, and additional in-game or game-related services. Additional services may include, for example, messaging, social utilities, audio communication, gameplay replay functionality, help functionality, etc. While game engines can sometimes run on an operating system virtualized by a hypervisor of a specific server, in other implementations, the game engine itself is distributed across multiple processing entities, each of which may reside on a different server unit in a data center.
[0078] According to this implementation, the appropriate processing entity for execution can 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 transformations, a virtual machine associated with a graphics processing unit (GPU) can be provided to that particular game engine segment, as it will perform a large number of relatively simple mathematical operations (e.g., matrix transformations). Processing entities associated with one or more higher-powered central processing units (CPUs) can be provided to other game engine segments that require fewer but more complex operations.
[0079] By distributing the game engine, it possesses elastic computing properties unconstrained by the capabilities of physical server units. Alternatively, more or fewer compute nodes can be provided to the game engine as needed to meet the demands of the video game. From the perspective of the video game and its players, a game engine distributed across multiple compute nodes is no different from a non-distributed game engine running on a single processing entity, because the game engine manager or oversight program distributes the workload and seamlessly integrates the results to deliver the video game output components to the end user.
[0080] Users access remote services using client devices, which include at least a CPU, a display, and I / O. Client devices can be PCs, mobile phones, laptops, PDAs, etc. In one embodiment, the network on the game server identifies the type of device used by the client and adjusts the communication method accordingly. In other cases, the client device uses standard communication methods such as HTML to access applications on the game server via the Internet.
[0081] It should be understood that a given video game or game application can be developed for a specific platform and a specific associated controller device. However, when such a game is made available via a game cloud system as presented herein, users may access the video game with different controller devices. For example, a game may have been developed for a game console and its associated controllers, while the user may be accessing a cloud-based version of the game from a personal computer using a keyboard and mouse. In this case, input parameter configuration can limit the mapping from input generated by the user's available controller device (in this case, a keyboard and mouse) to input acceptable for executing the video game.
[0082] In another example, users can access the cloud gaming system via tablet computing devices, touchscreen smartphones, or other touchscreen-driven devices. In this case, the client device and controller device are integrated into the same device, where input is provided via detected touchscreen input / gestures. For such devices, input parameter configuration can define specific touchscreen inputs corresponding to game inputs in the video game. For example, during the operation of the video game, buttons, directional keys, or other types of input elements may be displayed or overlaid to indicate locations on the touchscreen that the user can touch to generate game inputs. Gestures (such as swipes in a specific direction or specific touch movements) can also be detected as game inputs. In one implementation, guidance can be provided to the user on how to provide input for playing the game via the touchscreen, for example, providing guidance before starting to play a video game to familiarize the user with the operation of controls on the touchscreen.
[0083] In some implementations, 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 send input from the controller device to the client device. The client device can then process this input and transmit the input data to a cloud gaming server via a network (e.g., a network accessed via a local networking device such as a router). However, in other implementations, the controller itself can be a networking device with the ability to transmit input directly to the cloud gaming server via the network, without first transmitting such input through the client device. For example, the controller can connect to a local networking device (such as the router mentioned above) to send and receive data from the cloud gaming server. Therefore, 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, input latency can be reduced by allowing the controller to send input directly to the game cloud server via the network, thus bypassing the client device.
[0084] In one implementation, the networked controller and client device can be configured to send certain types of input directly from the controller to the cloud gaming server, and other types of input via the client device. For example, input whose detection does not rely on any additional hardware or processing outside the controller itself can 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 utilizing additional hardware or requiring processing by the client device can be sent to the cloud gaming server by the client device. These may include video or audio captured from the game environment, which can be processed by the client device before being sent to the cloud gaming server. Additionally, input from the controller's motion detection hardware can be processed by the client device in conjunction with captured video to detect the controller's position and movement, which the client device then transmits 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.
[0085] It should be understood that the various embodiments defined herein can be combined or assembled into specific implementations using the various features disclosed herein. Therefore, the examples provided are merely some possible examples and are not limited to the various implementations that could be defined by combining various elements. In some examples, some implementations may include fewer elements without departing from the spirit of the disclosed or equivalent implementations.
[0086] The embodiments of this disclosure can be practiced with various computer system configurations, including handheld devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, etc. The embodiments of this disclosure can also be practiced in distributed computing environments where transactions are performed via remote processing devices based on wired or wireless network links.
[0087] Although the method operations are described in a specific order, it should be understood that other housekeeping operations may be performed between operations, or operations may be adjusted so that they occur at slightly different times, or operations may be distributed across a system that allows processing operations to occur at various intervals associated with the processing, as long as the processing of telemetry and game state data is performed in the desired manner to generate the modified game state.
[0088] One or more embodiments may also be made into computer-readable code on a computer-readable medium. A computer-readable medium is any data storage device that can store data that can then be read by a computer system. Examples of computer-readable media include hard disk drives, network attached storage devices (NAS), read-only memory, random access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tape, and other optical and non-optical data storage devices. Computer-readable media may include computer-readable tangible media distributed across network-coupled computer systems, enabling the distributed storage and execution of computer-readable code.
[0089] In one implementation, the video game is executed locally on a game console, a personal computer, or on a server. In some cases, the video game is executed by one or more servers in a data center. When a video game is executed, some instances of the video game can be simulations of the video game. For example, the video game can be executed by an environment or server that generates a simulation of the video game. In some implementations, the simulation is an instance of the video game. In other implementations, the simulation can be generated by an emulator. In either case, if the video game is represented as a simulation, the simulation can be executed to render interactive content that can be interactively streamed, executed, and / or controlled by user input.
[0090] Although the foregoing embodiments have been described in slightly more detail for the purpose of clarity, it will be apparent that certain variations and modifications may be practiced within the scope of the appended claims. Therefore, the embodiments of the invention are to be considered illustrative rather than restrictive, and are not limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.
Claims
1. A method for selecting a viewport for a viewer watching a video game played by a player, the method comprising: Identify multiple virtual cameras used to provide multiple viewports for entering the scene of the video game; Access the viewer's game book, which is stored in association with the viewer's profile and identifies the viewer's viewing history for the type of video game watched by the viewer; Access the player's game book, which is stored in association with the player's profile and identifies the player's performance for the type of video game played by the player; Access game data for the video game played by the player during the player's gameplay; During gameplay, a viewport is selected from the plurality of viewports entering the video game, wherein the selected viewport is dynamically updated using a machine learning model configured to identify features from the viewer's gamebook, the player's gamebook, and the gameplay data to classify the viewer's attributes, and feedback from the viewer relating to at least one dynamically updated selected viewport is incorporated into the viewer's gamebook, the feedback being processed to extract features that are classified to update the machine learning model; as well as The streaming is a viewer video stream for the viewer, which is presented in multiple viewports and automatically changes based on the dynamic updates of the viewports while the viewer is watching the video game during gameplay.
2. The method of claim 1, wherein the selected viewport is predicted to include the player's preferred game actions by the viewer.
3. The method of claim 1, wherein the selected viewport is predicted to include a viewing angle of the scene preferred by the viewer for entering the video game.
4. The method of claim 1, wherein the player is one of a plurality of players, and each of the plurality of players has a corresponding player game book.
5. The method of claim 1, wherein the player is a player who generates at least a portion of the game data for the video game.
6. The method of claim 1, wherein the player is one of a plurality of players, and the player is selected from the plurality of players for access to the player's game book based on: the player being more active than other players; or the player being followed by the viewer; or the player being a protagonist in a scene or action sequence of the video game; or the player having a social relationship with the viewer.
7. The method of claim 1, wherein the selected viewport is dynamically updated based on calls to the machine learning model to obtain predictions about viewport types that may be preferred by the viewer while the viewer is watching the video game.
8. The method according to claim 1, further comprising: Dynamic data about the player is generated for presentation in the viewer's video stream while the viewer is watching the video game, wherein the dynamic data about the player is customized based on the viewer's profile.
9. The method of claim 8, wherein the dynamic data includes data providing statistics associated with the video game played by the player, player game metrics of the player, biographical information of the player, information related to other viewers watching the video game, or a combination of two or more of these.
10. The method of claim 1, wherein the plurality of virtual cameras are fixed or move dynamically in response to corresponding game actions occurring within the video game.
11. The method of claim 1, wherein the selected viewport is further based on: processing the viewer's gaze direction or the viewer's facial expression in response to game actions occurring within the video game.
12. A method for selecting a viewport for a viewer watching a video game played by a player, the method comprising: Multiple virtual cameras, identified by the server, are used to provide multiple viewports for entering the scene of the video game; The server accesses the viewer's game book, which is stored in association with the viewer's profile and identifies the viewer's viewing history for the type of video game watched by the viewer. The server accesses the player's game book, which is stored in association with the player's profile and identifies the player's performance for the type of video game played by the player. During the player's gameplay, the server accesses game data for the video game played by the player. The server selects a viewport from a plurality of viewports entering the video game, wherein the selected viewport is dynamically updated based on changes in the viewer's gamebook, the player's gamebook, and the game execution data processed by a machine learning model, the machine learning model being configured to identify features from the viewer's gamebook, the player's gamebook, and the game execution data to classify the viewer's attributes, the viewer's attributes being used to select the viewport, and wherein the dynamic updating of the selected viewport results in feedback from the viewer associated with at least one dynamically updated viewport, the feedback being incorporated into the viewer's gamebook, and the feedback being processed to extract features that are classified to update the machine learning model; as well as The server streams a viewer video stream for the viewer, and during gameplay, while the viewer is watching the video game, the viewer video stream, presented in multiple viewports, automatically changes based on the dynamic updates of the viewports.
13. The method of claim 12, wherein the selected viewport is predicted to include the player's preferred game actions by the viewer.
14. The method of claim 12, wherein the selected viewport is predicted to include a viewing angle of the scene preferred by the viewer for entering the video game.
15. The method of claim 12, wherein the selected viewport is dynamically updated based on calls to the machine learning model to obtain predictions about viewport types that may be preferred by the viewer while the viewer is watching the video game.
16. The method according to claim 12, further comprising: The server generates dynamic data about the player to be presented in the viewer's video stream while the viewer is watching the video game, wherein the dynamic data about the player is customized based on the viewer's profile.
17. The method of claim 16, wherein the dynamic data includes data providing statistics associated with the video game played by the player, player game metrics of the player, biographical information of the player, information related to other viewers watching the video game, or a combination of two or more of these.
18. The method of claim 12, wherein the selected viewport is further based on: processing the viewer's gaze direction or the viewer's facial expression 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