Method and system for predicting duration of multiplayer game session

By accessing player historical data in the online game session system and predicting the game session duration, the problem of users' difficulty in predicting the game session duration is solved, and the satisfaction of the game experience is improved.

CN119730930APending Publication Date: 2025-03-28SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380063746.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-07-18
Filing Date
2023-07-12
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

The existing online game session system cannot provide users' game entertainment history information about users in groups organized by the game service, which makes it difficult for users to predict the duration and continuity of game sessions when selecting game partners, affecting the gaming experience.

Method used

By organizing game sessions, identifying players and accessing player history duration measurement data in the database, predicting player time measurements in game sessions, and updating game session duration.

Benefits of technology

It provides an estimate of the expected duration of the game session, helps users choose the right game partner, and improves the satisfaction of the game experience and prediction accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119730930A_ABST
    Figure CN119730930A_ABST
Patent Text Reader

Abstract

A method for generating a game duration measure includes organizing a game session of a game, wherein the game session identifies a first player and a second player; and accessing a database including a historical duration measure for each of the first player and the second player to play the game. The method further includes accessing contextual data relating to the game session to be played by the first player and the second player; and generating a prediction of a time measure of the first player and the second player. The predicted time measure provides an estimated duration of time for playing the game session. The method also includes executing the game session for the first player and the second player. The duration of the game session is periodically updated as the first player and the second player advance the game session.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] To establish an online game session, a user typically connects to a game service and selects a game to play. If a user is interested in playing a multiplayer online game, the user may select one or more users from a group of users interested in playing the game to play the game with. Groups of users interested in playing the game may be organized by the game service and displayed to the user via a suitable interface for selection. One drawback of this method is that the user does not have any information about the game play history of the users in the group organized by the game service. This may result in an unsatisfactory gaming experience for the user.

[0002] For example, consider a situation where a user (Player A) wants to play a relatively long game session (e.g., a game session lasting 2 or 3 hours). If Player B, selected by user Player A from a group of other interested users, stops playing the game after only 10 or 15 minutes, Player A will likely be disappointed that the time period for playing the game is so short. Alternatively, if Player B actually plays a relatively long game session but takes a break from game play every 5 or 10 minutes, Player A will likely be frustrated by the discontinuity of the game play.

[0003] It is under this circumstance that the present embodiment is formed. Summary of the invention

[0004] In an exemplary embodiment, a method for generating a game duration measure is provided. The method includes: organizing a game session of a game, wherein the game session identifies a first player and a second player; and accessing a database, the database including a historical duration measure of each of the first player and the second player playing the game. The method also includes accessing contextual data related to the game session that the first player and the second player are about to play; and generating a prediction of a time measure for the first player and the second player. The predicted time measure provides an estimated duration of playing the game session. The method also includes executing the game session for the first player and the second player. As the first player and the second player progress through the game session, periodically updating the duration of the game session.

[0005] In one embodiment, the method further comprises receiving a selection of a third player and a removal of the second player; and performing said prediction of said generating said time measures again to generate predicted time measures for said first player and said third player. In one embodiment, said accessing said database comprising said historical duration measures comprises accessing a connection database comprising connection usage data regarding a player's gameplay of said game. In one embodiment, said connection usage data regarding the player's gameplay of said game comprises metadata identifying a connect time of said player, a disconnect time of said player, and a total duration of said player's gameplay of said game.

[0006] In one embodiment, accessing the context data associated with the game session that the first player and the second player are about to play includes accessing a session database that includes metadata about the game session and state data about the game session. In one embodiment, the metadata about the game session includes metadata about the duration of the game session and metadata about the connection time of the players in the game session. In one embodiment, the state data about the game session includes state data about the state of game play in the game session, state data about the players involved in the game session, state data about the players leaving the game session, and state data about the game context of the players leaving the game session.

[0007] In one embodiment, the predicted time measure also provides an estimated duration of a break in game play to be performed during the game session. In one embodiment, the method further comprises generating display data for presentation to one or both of the first player and the second player to display the estimated duration of playing the game session; and prior to performing the game session, receiving an indication from the first player and the second player that the game session will be performed. In one embodiment, the method further comprises generating display data presenting a recommendation to the first player to continue the performance of the game session with the second player.

[0008] In another exemplary embodiment, a method for generating a game duration measure is provided. The method includes organizing a game session of a game, wherein the game session identifies options for a first player and one or more other players; and accessing a database, the database including historical duration measures of the first player and at least one of the other players playing the game. The method also includes accessing contextual data related to the game session that the first player and at least one of the other players are about to play; and generating a prediction of a time measure for the first player and at least one of the other players. The predicted time measure provides an estimated duration of playing the game session. The method also includes executing the game session for the first player and at least one of the other players. As the first player and at least one of the other players advance the game session, the duration of the game session is periodically updated.

[0009] In one embodiment, the accessing of the database including the historical duration measure includes accessing a connection database including connection usage data about the player's game play of the game. In one embodiment, the connection usage data about the player's game play of the game includes metadata identifying the player's connection time, the player's disconnection time, and the total duration of the player's game play of the game. In one embodiment, the accessing of the context data related to the game session to be played by the first player and at least one of the other players includes accessing a session database including metadata about the game session and state data about the game session. In one embodiment, the metadata about the game session includes metadata about the duration of the game session and metadata about the player's connection time in the game session. In one embodiment, the state data about the game session includes state data about the state of the game play in the game session, state data about the players involved in the game session, state data about the players leaving the game session, and state data about the game context of the player leaving the game session.

[0010] In one embodiment, the predicted time measure also provides an estimated duration of a break in game play to be performed during the game session. In one embodiment, the method further comprises: generating display data for presentation to the first player or to at least one of the first player and the other players to display the estimated duration of playing the game session; and receiving an indication from the first player and at least one of the other players that the game session will be performed before performing the game session. In one embodiment, the method further comprises generating display data presenting a recommendation to the first player to continue the performance of the game session with one or more of the other players.

[0011] In one embodiment, the estimated duration of playing the game session is for the first player, the second player, and one or more of the other players organized to play together in the game session, or for a team playing a team-type game during the game session, wherein the team includes the first player, the second player, and one or more of the other players.

[0012] In another exemplary embodiment, a non-transitory computer-readable medium containing program instructions for generating a game duration measure is provided. Execution of the program instructions by one or more processors of a computer system causes the one or more processors to: perform operations for organizing a game session of a game, wherein the game session identifies a first player and a second player, accesses a database comprising historical duration measures of each of the first player and the second player playing the game; accesses contextual data related to the game session that the first player and the second player are about to play; generates a prediction of a time measure for the first player and the second player, wherein the predicted time measure provides an estimated duration of playing the game session; and executes the game session for the first player and the second player. As the first player and the second player progress through the game session, the duration of the game session is periodically updated.

[0013] Other aspects and advantages of the present disclosure herein will become apparent from the following detailed description read in conjunction with the accompanying drawings which illustrate by way of example the principles of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 is a simplified schematic diagram showing the manner in which players may participate in a multiplayer online video game.

[0015] Figure 2 is a simplified schematic diagram illustrating the manner in which game duration metrics are collected during a game session according to one embodiment.

[0016] Figure 3 is a simplified schematic diagram showing additional details regarding a connection database and a session database according to one embodiment.

[0017] Figure 4 is a simplified schematic diagram illustrating the generation of a game duration metric according to one embodiment.

[0018] Figure 5A Additional details of the predicted game play duration panel are shown according to one embodiment.

[0019] Figure 5B Shown are additional details of a recommendations panel according to one embodiment.

[0020] Figure 6 is a schematic diagram of a computing system and components that may be used in accordance with one or more embodiments of the present disclosure. DETAILED DESCRIPTION

[0021] In the following description, numerous specific details are set forth to provide a thorough understanding of the exemplary embodiments. However, it will be apparent to those skilled in the art that the exemplary embodiments may be practiced without some of these specific details. In other instances, process operations and implementation details are not described in detail if they are already well known.

[0022] Embodiments of the present invention provide a method and system for predicting how long a video game will last based on who is playing the game. The method and system can also be used to arrange a game play interval. The method and system use historical game play measurements from users. In one embodiment, the historical game play measurement is metadata including the state data of one or more previous game plays of a particular game. In some embodiments, the previous game play of the game can be a previous game play of the game currently being played (or to be played) or a previous game play of another game with similar game mechanisms. Using machine learning, the system can predict the duration of each user's game play. For example, if a player group including player A, player B, and player C is playing a multiplayer online game together, the system can provide data on how long the game session is expected to last to each of these users. In some instances, calendar data from users can be accessed to enhance the accuracy of the prediction end of the game session. This calendar data can also be used to arrange a game play interval at the time expected by the player group currently playing the game. The predicted length of the game session can be provided to the player in a suitable user interface. Information about when a player will most likely want to pause the game for a break (or end a gaming session and resume playing at a later time) may also be provided in the user interface.

[0023] Figure 1is a simplified schematic diagram showing the manner in which players may participate in a multiplayer online video game. Figure 1 , game service 100 is hosted game catalog (e.g., game A, B, C, D, E, F and X) on multiple game servers 102. In one embodiment, game service 100 is a part of a data center, which includes servers, data storage, streaming logic, user account management and other services and other infrastructure that enable games. In one embodiment, game service is a digital entertainment service, such as a game console network (PSN). Game service 100 also includes a connection manager 104, which sets up a game session to play one of the games (e.g., game A, game B, etc.) hosted by the game service. In one embodiment, the game session is a multi-player game session, such as a game session with player A and player B, a game session with player A, player B and player N, or a game session with more than three players.

[0024] It is known to those skilled in the art that players can play video games via console games, online games, and streaming (cloud) games. In console games, video games are loaded onto game consoles via disks, cassettes, or digital downloads, and then executed locally by the game console to display on a screen (e.g., TV, computer monitor, etc.). In an example where a game console is connected to a game server (e.g., one of the game servers 102 of game service 100), the game console can communicate with the game server to provide game state and state data, which can be used to track the progress of the player in the game. This enables the game server to monitor the game points accumulated by the player, and in appropriate cases, rewards the player with prizes or adds the player's name to the leaderboard. When the player wants to play the game himself, the player usually uses a console game. However, multiplayer games can be performed via console games, but the second player (and any other player) must be physically located in the same place as the game console.

[0025] In a multiplayer online game, the game console of each of the game players executes and the game server communicates with each of the game consoles. The game can be loaded onto the game console of the player via a disk, a cassette or a digital download. The game server, which also executes the instance of the game, receives the state data uploaded from each of the game consoles and transmits the state data about other players back to each of the game consoles. The state data about other players may include background scenes, roles, role movements, game levels, etc. This state data about other players enables the game console of each of the other players to reconstruct the multiplayer game entertainment including all players and displays the reconstructed multiplayer game entertainment to the screen of the game console connected to each of the players, such as TV, computer tablet, etc.

[0026] In a streaming (cloud) game involving multiple players, the game is executed on a game server (e.g., one of the game servers 102 of the game service 100). The game server receives input (e.g., button presses) from the players involved in the game to drive the interaction at the game server and sends the video stream and audio stream back to the connected device of each of the players. For example, the player's connected device may include a computer, tablet, smart phone, TV, and head-mounted display (HMD). For example, when a player presses a "jump" button for a character, this input is uploaded to the game server, and typically within about 250 to 500 microseconds, the game server sends back a video frame showing the character jumping to be displayed on the screen of each of the player's connected devices.

[0027] Figure 2 is a simplified schematic diagram illustrating the manner in which game duration metrics are collected during a game session according to one embodiment. Figure 2 As shown in FIG. 1 , player A connects to game engine 112 via connection manager 104 to play game X. As known to those skilled in the art, game engine 112 includes various game components used by game logic 114 to enable the running of game X. In embodiments involving streaming games, on a game server (e.g., game server 102 of game service 100 (see FIG. 1 ), game engine 112 includes various game components used by game logic 114 to enable the running of game X. Figure 1 )) executes a game engine 112 on a game console. In embodiments involving a multiplayer online game, the game engine 112 executes on a game console of each of the players, and the game server transmits state data about the other players to each of the game consoles, as described in more detail above. The connection manager 104 communicates with the connection database 106 and the session agent 108. The session agent 108 communicates with the session database 110 and the game engine 112. The game engine 112 communicates with the session database 110.

[0028] To play Game X via the gaming service, Player A first connects with the connection manager 104. In one embodiment, Player A connects with the connection manager 104 by clicking on a user interface for Game X. The connection manager 104 starts the session agent 108 and communicates with the game engine 112 to run Game X. Once the gaming session is established and gaming play of Game X begins between Player A and one or more other players, the game engine 112 generates state data about the gaming play and outputs the state data to populate the session database 110, as will be described with reference to FIG. Figure 3During a gaming session, the connection manager 104 sends connection usage data about player A's gaming of game X to the connection database 106. Also during the gaming session, the session agent 108 sends additional contextual data related to the gaming session to the session database 110. Figure 3 Additional details are set forth regarding the connection database 106 and the session database.

[0029] Figure 3 is a simplified schematic diagram showing additional details about the connection database and the session database according to one embodiment. Figure 2 As described above, during a game session, the connection manager 104 sends connection usage data about the game play to the connection database 106. In one embodiment, Figure 3 As shown in , the connection database 106 stores the connection usage data in a table and stores the connection usage data for each player in a separate table. Figure 3 As shown in FIG. 1 , table 200 - 1 of connection database 106 includes connection usage data for player A, table 200 - 2 includes connection usage data for player B, and table 200 - 3 includes connection usage data for player N.

[0030] In one embodiment, the connection usage data includes the date and time that the player connected to the game (indicated as "connection" in the table), the date and time that the player disconnected from the game ("disconnection"), the total duration that the player spent playing the game ("total duration"), the specific game played ("game"), the identity of other players who played the game during the game session ("other players"), and the number of game sessions of the player ("session"), where the number of game sessions corresponds to the cumulative number of game sessions in which the player has participated. It can be seen in Table 200-1 that in Session 1, Player A plays Game X with two other players: Player B and Player N. Player A connects to the game at 6 pm (18:00:00) on January 1, 2022 (2022-01-01) and disconnects from the game at 8:10 pm (20:10:00). The total duration of player A's game play in Session 1 is 2 hours and 10 minutes (2:10:00). The session database 110 also contains additional information about Player A's Session 1, as will be explained in more detail below.

[0031] As described above, during a game session, session database 110 receives contextual data related to the game session. In one embodiment, contextual data related to the game session includes contextual data from session agent 108 (see Figure 2 ) and state data about game play from the game engine 112. In one embodiment, Figure 3As shown in , the session database 110 stores contextual data related to a game session in a table and stores contextual data related to each player's game session in a separate table. Figure 3 As shown in , table 250-1 of session database 110 includes contextual data related to player A's game session, table 250-2 includes contextual data related to player B's game session, and table 250-3 includes contextual data related to player N's ​​game session.

[0032] Figure 3 Table 250-1 of session database 110 shows contextual data related to game session 1 of player A. Game session 1 of player A shown in table 250-1 of session database 110 corresponds to game session 1 of player A shown in table 200-1 of connection database 106. Thus, both table 200-1 of connection database 106 and table 250-1 of session database 110 indicate that the total duration of game session 1 of player A is 2 hours and 10 minutes. Table 250-1 of session database 110 also includes information from session agent 108 (see Figure 2 ) about the time other players (i.e., player B and player N) spent playing game X during game session 1. Specifically, it can be seen in table 250-1 that player B played the game for 1 hour and 30 minutes (1:30:00) during player A's game session 1, and player N played the game for 15 minutes (0:15:00) during player A's game session 1.

[0033] Table 250-1 of session database 110 also includes state data about game play received from game engine 112. In one embodiment, the state data about game play received from game engine 112 includes state data corresponding to game scenarios in which other players involved in the game session leave the game. During game session 1 of player A lasting 2 hours and 10 minutes, player B plays for 1 hour and 30 minutes and player N plays for 15 minutes. Thus, table 250-1 includes state data about game play when player B leaves the game ("Quit Player B") and state data about game play when player N leaves the game ("Quit Player N"). For example, if game X is a racing game and player B leaves the game when a crash occurs and a yellow warning flag is issued, the state data "Game Scenario" of player B included in table 250-1 is state data corresponding to this warning flag scenario. In another example, if game X is a golf game and player N leaves the game after three strokes over par on a hole, the state data "Game Scenario" of player N included in table 250-1 is state data corresponding to this three strokes over par scenario.

[0034] Turning now to table 250-2 of session database 110, this table shows scenario data associated with game session 2 of player B. In game session 2, player B played game C (see table 200-2 of connection database 104 for this information) with player F and player J for 1 hour, 15 minutes, and 10 seconds. It can be seen in table 250-2 that player J played game C for 18 minutes during player B's game session 2. On the other hand, player F also played game C for 1 hour, 15 minutes, and 10 seconds. In other words, player F played the game for the entire game session 2 of player B. When player F played the game for the entire game session, the state data "game scenario" of exiting player F included in table 250-2 is the state data corresponding to the stage of game C when completing player B's game session 2.

[0035] Figure 4 is a simplified schematic diagram showing the generation of a game duration metric according to one embodiment. Figure 4 In the example shown in , player A has logged into a gaming service (e.g. Figure 1 ) and clicks on the appropriate interface to initiate the process of playing game X. Upon receiving a request from player A to play game X, the game service generates a player pool 400 including a list of other players who want to play game X, and causes the player pool to be provided to player A, for example, via a suitable user interface. Upon generating the player pool 400, at the back end of the game service, a game duration prediction engine 402 processes data including historical duration measures and other measures about the players in the player pool 400 and player A, and generates predictions about how long each of these players is likely to play game X, as will be explained in more detail below.

[0036] exist Figure 4 In the example shown in , player A has selected player B and player N as potential players to play game X with, and these selected players Figure 4The rectangle formed by the solid lines is indicated. The rectangle formed by the dashed lines indicates the non-selected players in the player pool 400 (i.e., player C, player D, player E, and player F). Upon receiving player A's selection of player B and player N as potential players to play game X with, the game duration prediction engine 402 outputs a time measurement 406 for each of player A, player B, and player N. In one embodiment, the time measurement 406 is output as a metadata file and the time measurement for each player includes a time measurement 406-1, which is the duration predicted for the player to play the game; and a time measurement 406-2, which is the duration and the frequency of game play breaks predicted for the player while playing the game. The time measurement 406 can be displayed to applicable players via a suitable user interface 408 as part of the game service. In one embodiment, the user interface 408 includes one or more of a predicted game play duration panel 410 and a recommendation panel 412. References are made to each of the following: Figure 5A and Figure 5B Additional details regarding the predicted game play duration panel 410 and the recommendations panel 412 are described.

[0037] In one embodiment, the game duration prediction engine 402 uses data pulled from the connection database 106 and the session database 110 to generate a time measurement 406. In one embodiment, the data pulled from the connection database 106 includes a historical duration measurement of a game (e.g., a game X that players (e.g., player A, player B, and player N) organized for a game session are going to play), such as connection time. In one embodiment, the data pulled from the session database 110 includes contextual data related to the game session that the organized players are going to play. In some embodiments, the game duration prediction engine 402 also accesses the player's calendar data to generate the time measurement 406. Specifically, the calendar data can be used to improve the prediction of the potential end of the game session by, for example, identifying when the player has a scheduled activity that overlaps with the game session. The game duration prediction engine 402 uses a machine learning algorithm 404 to process the data pulled from the connection database 106 and the session database 110 and generate a prediction, as will be explained in more detail below. In an embodiment using calendar data from a player, the machine learning algorithm 404 can also be used to process the calendar data.

[0038] In one embodiment, machine learning algorithm 404 uses machine learning training process to generate game duration prediction model for predicting how long a player will play a specific game. In this machine learning training process, data from many game entertainment sessions performed by players are collected for generating game duration prediction model. In one embodiment, for each player, the data collected include the total duration of the connection time of each game session, the specific game being played, other players in the game session, the total duration of the connection time of each of the other players in the game session and the state data related to the game scenario of each of the other players leaving the game session. In some embodiments (e.g., embodiments using supervised learning technology), machine learning processing needs to identify and classify data content. In these embodiments, in order to promote the identification of data content, various tag generators can be used to label the collected data. Then, the tags generated by the tag generator can be classified into identifiable categories for use in the model.

[0039] In some embodiments, the game duration prediction model is a neural network that uses various tags and classifications to create relationships that form a model. The relationships that form the game duration prediction model are used to predict the time measurement about how long a player will play a specific game. In one embodiment, the predicted time measurement includes not only predicting the duration of a player's game play, but also the duration and the frequency of the game play breaks that the player performs when playing the game. In some embodiments, the game duration prediction model uses machine learning techniques to adjust the model over time and thereby generate better predictions when data from more game sessions are included in the model. In some embodiments, the machine learning algorithm 404 uses a reinforcement learning algorithm to train the game duration prediction model to generate better predictions over time.

[0040] In one embodiment, the game engine 112 communicates with the game duration prediction engine 402 during a game session, such as Figure 4 406-1).

[0041] In one embodiment, the game duration prediction engine 402 re-performs the generation of the time measurement 406 whenever the selected player changes. To this end, the game service communicates the change of the player selected from the list of players in the player pool 400 to the game duration prediction engine 402, such as Figure 4 Indicated by the dotted arrow BB in the figure. After player A has selected player B and player N to play game X Figure 4 In the example shown in , if Player A were to remove Player B and select Player C instead (so the selected players would be Player C and Player N), the game duration prediction engine 402 would generate a predicted time measure 406 for the newly organized group of players (i.e., Player A, Player C, and Player N) upon receiving the change in the selected players.

[0042] Figure 5A FIG. 4 shows additional details of a predicted game play duration panel according to one embodiment. Figure 5A As shown in , the predicted game play duration panel 410 includes an indication of the game to be played (Game X) and the time measurements 406-1 and 406-2 generated for each of Player A, Player B, and Player N. Figure 5A As can be seen in FIG. 4 , player A's time measurement is shown on top of the corresponding time measurements 406-1 and 406-2 of each of player B and player N (players selected by player A as potential players with whom to play game X). Figure 5A , player A's time measurement 406-1 is indicated as "will probably play for 57 minutes" and player A's time measurement 406-2 is indicated as "will probably take a 1 minute break every 24 minutes." Directly below player A's time measurement 406-1 is shown for each of player B and player N. Specifically, player B's time measurement 406-1 is indicated as "will probably play for 75 minutes" and player N's ​​time measurement 406-1 is indicated as "will probably play for 22 minutes." Directly below each of these players' time measurement 406-1 is shown for each of player B and player N. Specifically, player B's time measurement 406-2 is indicated as "will probably take a 1 minute break every 34 minutes" and player N's ​​time measurement 406-2 is indicated as "will probably take a 2 minute break every 10 minutes." In the event that Player A were to change the selected players (e.g., remove Player B and select Player C) and the game duration prediction engine 402 generates a predicted time measure for the newly organized group of players, the predicted game play duration panel 410 would be updated to display the time measure for this group of players (i.e., Player A, Player C, and Player N). Those skilled in the art will appreciate that the game play duration panel 410 may be modified. Figure 5A The format of the predicted game play duration panel 410 shown in and the content included in the predicted game play duration panel can be adapted to the needs of a particular application.

[0043] Figure 5B 4 shows additional details of a recommendation panel according to one embodiment. In one embodiment, the recommendation panel 412 includes an indication of the player (or players) to whom the game duration prediction engine 402 recommends playing a particular game. Figure 5B As shown in FIG. 4 , the recommendation panel 412 includes an indication of a recommendation that player A should select player B to play game X. Specifically, the recommendation for player A is indicated as “Select player B—you will likely play game X for 67 minutes.” Those skilled in the art will appreciate that the recommendation panel 412 may be modified to include a recommendation that player A should select player B to play game X. Specifically, the recommendation for player A is indicated as “Select player B—you will likely play game X for 67 minutes.” Figure 5B The format of the recommendation panel 412 shown in and the content included in the recommendation panel can be modified to suit the needs of a specific application. For example, in one embodiment, the recommendation panel can be modified to include a recommended time to pause game play so that players can take a break. In one embodiment, the game duration prediction engine 402 accesses the player's calendar data and uses this calendar data in the process of generating the recommended time to pause game play to increase the likelihood that the recommended time for the break meets each of the players.

[0044] In one embodiment, the game duration prediction engine 402 monitors the state of game play to ensure that the player takes sufficiently long breaks during a longer game session. If the game duration prediction engine 402 determines that the player has played for a relatively long period of time (e.g., 1 hour or more) without a break, the game duration prediction engine can cause the recommendation panel 412 to provide a recommendation for the player to pause the game and take a break. For example, the recommendation can be indicated as "Time to drink water!" or "Wow, this is a long session, you should give your eyes a break." In some embodiments, the game duration prediction engine 402 can synchronize the time at which the break recommendation is issued with the current game play state, so that the player takes a break at the point in the game that is most suitable for pausing game play.

[0045] In another embodiment, the game duration prediction engine 402 may include logic for determining or suggesting whether a team (e.g., a team including player A, player B, and player N) should play another game or switch teammates based on their game play history. In the case of a team-based game, the estimated duration of playing a game session generated by the game duration prediction engine 402 may be used for one or all teams playing the game during the game session. In some embodiments, the programmatic logic associated with the game duration prediction engine 402 may take into account the average time it takes to reach another stopping point in game play or the average time it takes to complete a round / inning in a particular game.

[0046] In the event that player A wants to play game X with player B based on the recommendation provided in recommendation panel 412, the game session may not be performed until player B provides an indication that a game session should be performed. Thus, in one embodiment, user interface 408 including recommendation panel 412 is configured to enable player A to click a button or other suitable graphical user interface (GUI) to accept the recommendation to play game X with player B and send an invitation to player B to play game X. In one embodiment, game service 100 generates display data for presenting the invitation to player B to play game X with player A, the display data including an estimated duration of the game session with player A. In the event that player B accepts the invitation, such as by clicking a button or other suitable GUI, the game service will begin performing a game session with players A and B to play game X.

[0047] Figure 6 Components of an exemplary device 600 that can be used to perform various aspects of various embodiments of the present disclosure are shown. This block diagram shows a device 600 that can be incorporated into or can be a personal computer, a video game console, a personal digital assistant, a server, or other digital devices suitable for practicing embodiments of the present disclosure. Device 600 includes a central processing unit (CPU) 602 for running software applications and optionally an operating system. CPU 602 can be composed of one or more homogeneous or heterogeneous processing cores. For example, CPU 602 is one or more general-purpose microprocessors with one or more processing cores. Other embodiments can be implemented using one or more CPUs with a microprocessor architecture that is particularly suitable for highly parallel and computationally intensive applications, such as processing interpretation queries, identifying context-related resources, and immediately implementing and rendering context-related resources in video games. Device 600 can be localized to a player (e.g., a game console) playing a game clip, or away from the player (e.g., a back-end server processor), or is one of many servers that use virtualization in a game cloud system to remotely stream game entertainment to a client.

[0048] Memory 604 stores applications and data for use by CPU 602. Storage 606 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 device 608 transmits user input from one or more users to device 600, examples of which may include keyboards, mice, joysticks, touch pads, touch screens, static or video recorders / cameras, tracking devices for identifying gestures, and / or microphones. Network interface 614 allows device 600 to communicate with other computer systems via an electronic communication network, and may include wired or wireless communications through local area networks and wide area networks (such as the Internet). Audio processor 612 is suitable for generating analog or digital audio output from instructions and / or data provided by CPU 602, memory 604 and / or storage 606. The components of device 600 , including CPU 602 , memory 604 , data storage device 606 , user input device 608 , network interface 610 , and audio processor 612 , are connected via one or more data buses 622 .

[0049] The graphics subsystem 620 is further connected to the data bus 622 and the components of the device 600. The graphics subsystem 620 includes a graphics processing unit (GPU) 616 and a graphics memory 618. The graphics memory 618 includes a display memory (e.g., a frame buffer) for storing pixel data for each pixel of an output image. The graphics memory 618 may be integrated into the same device as the GPU 608, connected to the GPU 616 as a separate device, and / or implemented in the memory 604. The pixel data may be provided directly from the CPU 602 to the graphics memory 618. Alternatively, the CPU 602 provides the GPU 616 with data and / or instructions defining the desired output image, and the GPU 616 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 the memory 604 and / or the graphics memory 618. In one embodiment, GPU 616 includes 3D rendering capabilities that generate pixel data for output images from instructions and data that define the geometry, lighting, shading, textures, motion, and / or camera parameters of a scene. GPU 616 may also include one or more programmable execution units capable of executing shader programs.

[0050] Graphics subsystem 620 periodically outputs pixel data of an image from graphics memory 618 for display on display device 610. Display device 610 may be any device capable of displaying visual information in response to a signal from device 600, including CRT, LCD, plasma, and OLED displays. For example, device 600 may provide analog or digital signals to display device 610.

[0051] It should be noted that access services delivered over a wide geographic area (such as providing access to games of the current embodiment) often use cloud computing. Cloud computing is a computing method in which dynamically scalable and usually virtualized resources are provided as services over the Internet. Users do not need to be experts in the technical infrastructure in the "cloud" that supports them. Cloud computing can be divided into different services, such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Cloud computing services typically provide common applications (such as video games) accessed online from a web browser, while the software and data are stored on servers in the cloud. Based on the way the Internet is depicted in computer network diagrams, the term cloud is used as a metaphor for the Internet and is an abstraction of the complex infrastructure that it hides.

[0052] In some embodiments, a game server can be used to perform the operation of a duration information platform for video game players. Most video games played over the Internet are operated via a connection to a game server. Typically, a game uses a dedicated server application that collects data from a player and distributes the data to other players. In other embodiments, a video game can be performed by a distributed game engine. In these embodiments, a distributed game engine can be performed on multiple processing entities (PEs) so that each PE performs a functional fragment of a given game engine on which a video game runs. The game engine simply regards each processing entity as a computing node. The game engine typically performs a series of operations with various functions to perform video game applications and additional services for user experience. For example, a game engine implements game logic, performs game calculations, physical 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 communications, gameplay replay functions, help functions, etc. Although a game engine can sometimes be performed on an operating system virtualized by a hypervisor of a specific server, in other embodiments, the game engine itself is distributed between multiple processing entities, each of which can reside on different server units in a data center.

[0053] According to this embodiment, the corresponding processing entity for performing the operation can be a server unit, a virtual machine, or a container, depending on the needs of each game engine fragment. For example, if a game engine fragment is responsible for camera transformations, a virtual machine associated with a graphics processing unit (GPU) can be provided to that particular game engine fragment, because it will perform a large number of relatively simple mathematical operations (e.g., matrix transformations). Other game engine fragments that require fewer but more complex operations can be provided with processing entities associated with one or more higher-powered central processing units (CPUs).

[0054] By distributing the game engine, the game engine is provided with elastic computing properties that are not constrained by the capabilities of the physical server units. Instead, more or fewer computing nodes are provided to the game engine as needed to meet the needs of the video game. From the perspective of the video game and the video game player, the game engine distributed across multiple computing nodes is no different than a non-distributed game engine executed on a single processing entity, as the game engine manager or supervisor distributes the workload and seamlessly integrates the results to provide the video game output components to the end user.

[0055] The user accesses the remote service with a client device, which includes at least a CPU, a display, and an I / O. The client device can be a PC, a mobile phone, a netbook, a PDA, etc. In one embodiment, the network identification client executed on the game server uses the device type and adjusts the communication method adopted. In other cases, the client device uses a standard communication method (such as HTML) to access the application on the game server through the Internet. 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, the user may access the video game with different controller devices. For example, a game may have been developed for a game console and its associated controller, and the user may access the cloud-based version of the game from a personal computer using a keyboard and mouse. In this scenario, the input parameter configuration can define the mapping of the input generated from the user's available controller device (in this case, i.e., keyboard and mouse) to the execution of the video game acceptable input.

[0056] In another example, a user may access the cloud gaming system via a tablet computing device, a touch screen smart phone, or other touch screen driven device. In this case, the client device and the controller device are integrally formed in the same device, wherein input is provided by means of a detected touch screen input / gesture. For such a device, the input parameter configuration may define a specific touch screen input corresponding to a game input of a video game. For example, during the running of a video game, a button, a directional pad, or other type of input element may be displayed or overlaid to indicate a position on the touch screen where the user may touch to generate a game input. Gestures (such as swipes or specific touch movements in a particular direction) may also be detected as game inputs. In one embodiment, for example, before starting the gameplay of a video game, a user may be provided with instructions on how to provide input via a touch screen for gameplay, so as to adapt the user to operating controls on a touch screen.

[0057] In some embodiments, the client device is used as a connection point for the controller device. That is, the controller device communicates with the client device via a wireless or wired connection to transmit input from the controller device to the client device. The client device can process these inputs in turn, and then transmit the input data to the cloud game server via the network (for example, accessed via a local networking device (such as a router)). However, in other embodiments, the controller itself can be a networked device with the ability to directly communicate the input to the game cloud server via the network without first communicating such input through the client device. For example, the controller can be connected to a local networking device (such as, the aforementioned router) to send and receive data from the cloud game server. Therefore, when the client device may still be needed to receive the video output from the cloud-based video game and present it on a local display, the input latency can be shortened by allowing the controller to bypass the client device and send the input directly to the cloud game server via the network.

[0058] In one embodiment, the networked controller and client device may be configured to send certain types of inputs directly from the controller to the cloud gaming server, and to send other types of inputs via the client device. For example, the inputs whose detection does not depend on any additional hardware or processing other than the controller itself may be sent directly from the controller to the cloud gaming server via the network, bypassing the client device. The inputs may include button inputs, joystick inputs, embedded motion detection inputs (e.g., accelerometers, magnetometers, gyroscopes), etc. However, inputs that utilize additional hardware or need to be processed by the client device may be sent to the cloud gaming server by the client device. These may include video or audio captured from the gaming environment, which may be processed by the client device before being sent to the cloud gaming server. In addition, the inputs from the motion detection hardware of the controller may be processed by the client device in conjunction with the captured video to detect the position and motion of the controller, which is then communicated to the cloud gaming server by the client device. It should be understood that the controller device according to various embodiments may also receive data (e.g., feedback data) from the client device or directly from the cloud gaming server.

[0059] In one embodiment, various technical examples can be implemented using a virtual environment via a head mounted display (HMD). The HMD may also be referred to as a virtual reality (VR) headset. As used herein, the term "virtual reality" (VR) generally refers to the interaction of a user with a virtual space / environment, which involves viewing the virtual space in a real-time response to the movement of the HMD (controlled by the user) through the HMD (or VR headset) to provide the user with a feeling in a virtual space or metaverse. For example, a user can see a three-dimensional (3D) view of the virtual space when facing a given direction, and when the user turns to one side and thus turns the HMD in the same manner, the view of this side in the virtual space is rendered on the HMD. The HMD can be worn in a manner similar to glasses, goggles, or a helmet, and is configured to display video games or other metaverse content to the user. The HMD can provide a highly immersive experience to the user because it provides a display mechanism close to the user's eyes. Therefore, the HMD can provide a display area that occupies most of the user's or even the entire field of view to each eye of the user, and can also provide viewing with three-dimensional depth and perspective.

[0060] In one embodiment, the HMD may include a gaze tracking camera configured to capture images of the user's eyes as the user interacts with the VR scene. The gaze information captured by the gaze tracking camera may include information related to the user's gaze direction and specific virtual objects and content items in the VR scene that the user is focusing on or interested in interacting with. Thus, based on the user's gaze direction, the system can detect specific virtual objects and content items that may be potential focus points for the user, where the user is interested in interacting and interacting with, for example, game characters, game objects, game props, etc.

[0061] In some embodiments, the HMD may include an outward-facing camera configured to capture images of the user's real-world space, such as the user's body movements and any real-world objects that may be located in the real-world space. In some embodiments, the images captured by the outward-facing camera may be analyzed to determine the position / orientation of the real-world objects relative to the HMD. Using the known position / orientation of the HMD, real-world objects, and inertial sensor data from the HMD, the user's gestures and movements can be continuously monitored and tracked during the user's interaction with the VR scene. For example, when interacting with a scene in a game, a user may make various gestures, such as pointing and walking toward specific content items in the scene. In one embodiment, gestures may be tracked and processed by the system to generate predictions of interactions with specific content items in the game scene. In some embodiments, machine learning may be used to facilitate or assist the predictions.

[0062] During the use of the HMD, various single-hand and two-hand controllers can be used. In some embodiments, the controller itself can be tracked by tracking the lights included in the controller or tracking the shapes, sensors and inertial data associated with the controller. Using these different types of controllers or even just using gestures made and captured by one or more cameras, the virtual reality environment or metaverse rendered on the HMD can be docked, controlled, manipulated, interacted with and participated in the virtual reality environment or metaverse. In some cases, the HMD can be wirelessly connected to the cloud computing and game system through a network. In one embodiment, the cloud computing and game system maintain and execute the video game being played by the user. In some embodiments, the cloud computing and game system are configured to receive input from the HMD and interface objects through the network. The cloud computing and game system are configured to process input to affect the game state of the video game being executed. The output (such as video data, audio data and tactile feedback data) from the video game being executed is transmitted to the HMD and the interface object. In other embodiments, the HMD can communicate wirelessly with the cloud computing and game system through an alternative mechanism or channel such as a cellular network.

[0063] In addition, although the implementations in the present disclosure may be described with reference to a head-mounted display, it should be understood that in other implementations, a non-head-mounted display may be substituted, including but not limited to a portable device screen (e.g., a tablet, a smart phone, a laptop computer, etc.) or any other type of display that can be configured to render video and / or provide a display of an interactive scene or virtual environment according to the present implementation. It should be understood that the various features disclosed herein can be used to combine or assemble the various embodiments defined herein into specific implementations. Therefore, the examples provided are only some possible examples and are not limited to various implementations that can define more implementations by combining various elements. In some examples, some implementations may include fewer elements without departing from the spirit of the disclosed or equivalent implementations.

[0064] Embodiments of the present disclosure may be practiced with various 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.

[0065] Although the method operations may be described in a particular order, it should be understood that other housekeeping operations may be performed between the operations, or the operations may be adjusted so that they occur at slightly different times, or may be distributed in a system that allows processing operations to occur at various intervals associated with the processing, so long as the processing of telemetry and game state data is performed in the desired manner.

[0066] One or more embodiments may also be manufactured as 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 drives, network attached storage devices (NAS), read-only memories, random access memories, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. Computer readable media may include computer readable tangible media distributed on network coupled computer systems so that computer readable code is stored and executed in a distributed manner.

[0067] In one embodiment, 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 executing the video game, 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. In some embodiments, the simulation is an instance of the video game. In other embodiments, the simulation may be produced 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 a user input.

[0068] Therefore, the disclosure of the exemplary embodiments is intended to illustrate, but not to limit, the scope of the present disclosure, as set forth in the appended claims. Although the exemplary embodiments of the present disclosure are described in some detail for the purpose of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope and equivalents of the appended claims. In the following claims, elements and / or steps do not imply any particular order of operation unless expressly stated in the claims or implicitly required by the present disclosure.

Claims

1. A method for generating a game duration measure, the method comprising: organizing a game session of a game, the game session identifying a first player and a second player; accessing a database comprising a historical duration measure of play of the game by each of the first player and the second player; accessing contextual data associated with the gaming session to be played by the first player and the second player; generating a prediction of the time measurements of the first player and the second player, the predicted time measurements providing an estimated duration of playing the game session; as well as The gaming session is executed for the first player and the second player, and the duration of the gaming session is periodically updated as the first player and the second player progress through the gaming session.

2. The method of claim 1, further comprising: receiving a selection of a third player and a removal of the second player; as well as The prediction of generating the time measures is performed again to generate predicted time measures for the first player and the third player.

3. The method of claim 1, wherein said accessing said database comprising said historical duration measures comprises accessing a connection database comprising connection usage data regarding a player's gaming of said game.

4. The method of claim 3, wherein the connection usage data regarding the player's gameplay of the game includes metadata identifying the player's connection time, the player's disconnection time, and the total duration of the player's gameplay of the game.

5. The method of claim 1, wherein accessing the contextual data associated with the game session that the first player and the second player are about to play comprises accessing a session database that includes metadata about the game session and state data about the game session.

6. The method of claim 5, wherein the metadata about the gaming session includes metadata about a duration of the gaming session and metadata about a connection time of a player in the gaming session.

7. A method as claimed in claim 5, wherein the status data about the game session includes status data about the status of game play in the game session, status data about players involved in the game session, status data about players leaving the game session, and status data about the game scenario in which the players leave the game session.

8. The method of claim 1, wherein the predicted time measure also provides an estimated duration of gaming breaks performed during the gaming session.

9. The method of claim 1, further comprising: generating display data for presentation to one or both of the first player and the second player to display the estimated duration of play of the gaming session; as well as Prior to executing the gaming session, an indication is received from the first player and the second player that the gaming session will be conducted.

10. The method of claim 1, further comprising: Display data is generated that presents a recommendation to the first player to continue the execution of the gaming session with the second player.

11. A method for generating a game duration measure, the method comprising: organizing a game session of a game, the game session identifying options for a first player and one or more other players; accessing a database comprising a historical duration measure of play of the game by the first player and at least one of the other players; accessing contextual data associated with the gaming session to be played by the first player and at least one of the other players; generating a prediction of a time measurement for at least one of the first player and the other players, the predicted time measurement providing an estimated duration of play of the gaming session; as well as The gaming session is performed for the first player and at least one of the other players, and the duration of the gaming session is periodically updated as the first player and at least one of the other players progress through the gaming session.

12. The method of claim 11, wherein said accessing said database comprising said historical duration measures comprises accessing a connection database comprising connection usage data regarding a player's game play of said game.

13. The method of claim 12, wherein the connection usage data regarding the player's gameplay of the game includes metadata identifying the player's connection time, the player's disconnection time, and the total duration of the player's gameplay of the game.

14. The method of claim 11, wherein the accessing of the contextual data associated with the game session to be played by the first player and at least one of the other players comprises metadata about the game session and a session database of state data about the game session.

15. The method of claim 14, wherein the metadata about the gaming session includes metadata about a duration of the gaming session and metadata about a connection time of a player in the gaming session.

16. A method as claimed in claim 15, wherein the status data about the game session includes status data about the status of game play in the game session, status data about players involved in the game session, status data about players leaving the game session, and status data about the game scenario in which the players leave the game session.

17. The method of claim 11, wherein the predicted time measure also provides an estimated duration of gaming breaks performed during the gaming session.

18. The method of claim 11, further comprising: generating display data for presentation to the first player or to at least one of the first player and the other players to display the estimated duration of play of the gaming session; as well as Prior to executing the gaming session, an indication is received from at least one of the first player and the other players that the gaming session is to be conducted.

19. The method of claim 11, further comprising: Display data is generated that presents a recommendation to the first player to continue the execution of the gaming session with one or more of the other players.

20. A method as claimed in claim 11, wherein the estimated duration of playing the game session is for the first player, the second player, and one or more of the other players who are organized to play together in the game session, or for a team playing a team-type game during the game session, the team including the first player, the second player, and one or more of the other players.

21. A non-transitory computer readable medium containing program instructions for generating a game duration metric, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to perform the following operations: organizing a game session of a game, the game session identifying a first player and a second player; accessing a database comprising a historical duration measure of play of the game by each of the first player and the second player; accessing contextual data associated with the gaming session to be played by the first player and the second player; generating a prediction of the time measurements of the first player and the second player, the predicted time measurements providing an estimated duration of playing the game session; as well as The gaming session is executed for the first player and the second player, and the duration of the gaming session is periodically updated as the first player and the second player progress through the gaming session.