CN112569590B - Optimizing user experience using connection quality history - Google Patents

Optimizing user experience using connection quality history Download PDF

Info

Publication number
CN112569590B
CN112569590B CN202011299250.1A CN202011299250A CN112569590B CN 112569590 B CN112569590 B CN 112569590B CN 202011299250 A CN202011299250 A CN 202011299250A CN 112569590 B CN112569590 B CN 112569590B
Authority
CN
China
Prior art keywords
game
user
data center
request
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011299250.1A
Other languages
Chinese (zh)
Other versions
CN112569590A (en
Inventor
J.古斯塔夫森
R.H.布里德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment America LLC
Original Assignee
Sony Computer Entertainment America LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment America LLC filed Critical Sony Computer Entertainment America LLC
Priority to CN202011299250.1A priority Critical patent/CN112569590B/en
Publication of CN112569590A publication Critical patent/CN112569590A/en
Application granted granted Critical
Publication of CN112569590B publication Critical patent/CN112569590B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • A63F13/493Resuming a game, e.g. after pausing, malfunction or power failure
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/535Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Pinball Game Machines (AREA)

Abstract

The present invention relates to a method and system for distributing a data center to service requests from user accounts, including receiving a login request to a cloud game server. The login request is checked to identify a user account. A user history of the cloud game server is checked to identify a data center. The user account is assigned to the data center to begin a streaming game play session at a server within the data center. The data center is identified without performing connection testing operations.

Description

Optimizing user experience using connection quality history
The application is a divisional application of an application patent application with the application number 201680014084.1 and the application date 2016, 03 and 01, and the application name of 'optimizing user experience by using connection quality history'.
Technical Field
The present disclosure relates to systems and methods for providing games for user interaction, and more particularly, for providing quick access to games for playing cloud games.
Background
Description of related Art
One of the rapidly evolving technologies is in the field of cloud gaming. A user can access multiple games on a cloud gaming site over a network, such as the internet, and begin interacting/playing the games. The user accesses his/her account on the cloud gaming site and selects a game to play from a list of available games for the user's account. When a user selects a game to view and/or play, the user will have to wait until the cloud gaming site identifies the data center closest to the user on which the game code is to be executed, and then wait for the selected game to load before allowing the user to access the game for play. The data centers are identified by pre-testing the user's connections to several data centers to determine which data centers provide the best connection speed for the user's game play. The pre-test step results in additional waiting by the user and may be detrimental to the game developer, as the additional waiting may lose the user's interest in the game and cease interaction with the game site, resulting in a potential loss of game developer/game site owner.
Within this context, embodiments of the present invention result.
Disclosure of Invention
Embodiments of the present invention disclose methods and systems for providing faster access to games available on cloud game servers in order to allow instant game play of the games. When a user accesses the cloud gaming system and requests play of a game, in one embodiment, the system uses the user historical game play data to determine a data center that was previously used to provide a game for the user to play, and such historical game play data identifies connections based on previous connection tests. In another embodiment, the system may obtain stream quality data from a previous streaming play session to determine a data center that may be used to service a current request from a user. The game that the user requests to play is a game that the user has previously interacted with. The system routes user requests to the identified data center to allow instant access to the game for game play. Because the data center has been used to service the user's previous requests for games, and thus includes game instances, there is no latency in servicing the user requests. In addition, as the user continues to return to the game, it is apparent that the processing resources previously provided by the data center are sufficient to allow the user to play the game so as to have an optimal or satisfactory game play experience. After the data center is designated, in one embodiment, quality of service testing is performed periodically during the user gaming session to ensure that the assigned data center provides the processing resources and connection speeds required by the user for current game play. In another embodiment, quality of service testing is performed by continuously monitoring data transmissions between client devices used for game play and an assigned data center to ensure that the required quality of resources and connection speed are maintained. Embodiments provide a way to service a user game play request by specifying a data center using previous user game performance at the data center.
In one embodiment, a method is provided that includes receiving a login request to a cloud game server and checking the login request to identify a user account. The method includes checking a user history associated with a user account over a period of time, wherein the user history of the user account is provided at a cloud gaming server. The checking of the user history is used to identify the data center previously assigned to service the user request and to assign the user account to the data center to begin a streaming game play session with the cloud game server. The data center is identified without performing connection testing operations. In one configuration, the connection test operation is performed after a streaming game play session is started, and the connection test is performed using game data from the current game play. In another configuration, the data centers are identified using a predictive process that determines which of the plurality of data centers will provide the best connection speed to a game play handled by the user account, or at least similar to the connection speed provided by the data center in a previous session.
Information about previous game play performance is maintained in a user history database and a data center history database. The historical information provided in these historical databases may include connection quality history, connection test results, network routing used, network characteristics, user geographic location, data center geographic location, connection speed required, connection speed provided, processing resources required, processing resources provided, desired performance of each resource, actual performance of each resource during game play, performance usage of game play by the user (such as graphics used, display presented, game scene intensity, level of game being played, game play mode (multi-person or single person, shared or not shared, etc.), time and/or time of week selected for game play, etc.), historical information is used to determine connection quality and performance quality in order to provide similar or better game play performance to optimize user experience.
Traditionally, specifying data centers requires the system to perform a pre-test to determine which of the data centers available to the game cloud system have the processing resources and connection speeds (i.e., bandwidth) necessary to service the request. Based on the pre-test results, the data center geographically closest to the user is selected to allow the user to have the best play experience. The user must wait for the pre-test to complete before the user is allowed access to the game. In addition, if the identified data center has the processing and communication resources (i.e., connection speed) required to service the user's request, but a game instance is missing on any of the servers within the data center, the user is forced to wait for an additional period of time for the game code of the game to be instantiated on at least one of the servers within the identified data center before allowing the user to access the game. Such waiting may make it undesirable for the user to go back into the game because the time to access the game to play is too long. Various embodiments of the present invention provide instant access to games for game play while performing the necessary quality of service (QoS) tests after designation to ensure that game quality is not compromised.
In one embodiment, a method is provided. The method includes receiving a request from a user at a cloud gaming site. The request is received from a user account. The game history maintained for the user account is analyzed in response to the request to identify games to be played and user game profiles. The user game profile provides sufficient information for identifying data centers within the cloud gaming site that were previously assigned to service past game play requests received from the user. The identified data center is assigned to service the request from the user. The allocation of the data center results in a communication connection being established between the servers available within the identified data center and the requesting computing device to allow game play of the game. After the data center is assigned, connection attributes of the communication connection established between the user computing device and the server of the identified data center are verified to ensure that the identified data center appears to conform to the connection requirements expected for the service request. When it is determined that the connection attributes of the identified data center do not meet the connection requirements necessary for servicing the request, the verification may result in the data center being handed over to servicing the request.
In another embodiment, a system is disclosed. The system includes a cloud game server that provides a plurality of games for game play. The cloud game server is configured to service game play requests received from users. The cloud game server executes the connection module. The connection module is configured to analyze the game history maintained for the user account in response to the request received from the user account to determine a game profile of the user initiating the request. The performance prediction engine within the connection module is configured to predict one or more connection attributes required for the service request by analyzing the game history of the user. The data center selection engine within the connection module is configured to analyze the data center history maintained for each of the data centers within the cloud gaming site to identify data centers that were used to service past requests for game play from users, wherein the identified user centers include necessary resources to satisfy connection attributes required to service previous requests for game play from users. The data center identified by the data center selection engine is assigned to service the request from the user, wherein the assignment results in a communication connection being established between a server from the identified data center and a client device of the user initiating the request to allow game play for the game.
In some embodiments, the cloud gaming site further comprises: a quality of service (QoS) engine configured to verify connection attributes of a communication connection established between a user computing device and a server identified in a data center. The QoS engine is configured to generate a signal to switch to a second data center when a communication connection established between the user computing device and the data center does not satisfy a connection attribute required for the service request.
In some embodiments, a game history database is also provided to collect user account metrics associated with user accounts of one or more users and update them with information from game play of the game.
In some embodiments, a data center history database is provided to collect data center metrics associated with a data center and update it with information from the request as the request is serviced from one or more users.
In another embodiment, a computer-readable medium having computer-executable instructions stored thereon is disclosed. The computer readable medium includes: program instructions for receiving a request from a user account, wherein the request identifies a game for game play; program instructions for analyzing a game history maintained for a user account to identify a game profile of the user, wherein the game profile provides information identifying a data center available within the cloud gaming site that was previously assigned to service a previous request received from the user for game play of the game; program instructions for allocating a data center to service a request from a user, the program instructions for allocating comprising program instructions for causing a communication connection to be dynamically established between a server in the data center and a computing device of the user that originated the request, so as to allow game play of a game; and verifying connection attributes at the communication connection after assigning the identified data center to determine that the identified data center appears to conform to connection requirements expected to service the request from the user. The program instructions for verifying further comprise program instructions for causing the data center to switch to service the request when the assigned connection attribute of the data center does not meet the connection requirements necessary for servicing the request.
Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
Drawings
The invention and further advantages of the invention may be best understood by reference to the following description taken in conjunction with the accompanying drawings.
FIG. 1 sets forth a simplified block diagram of an exemplary system for distributing data centers useful with cloud gaming sites to service requests for game play received from users according to embodiments of the present invention.
FIG. 2 illustrates an example connection module for identifying a data center for distributing a user's request for game play according to an embodiment of the present invention.
FIG. 3A illustrates a game usage chart used to determine a game history of a user initiating a request for game play in accordance with one embodiment of the invention.
FIG. 3B illustrates a game usage intensity chart identifying usage intensities at different times in a sample day, according to an embodiment of the present invention.
FIG. 4 illustrates process operations involving identifying a data center to service a request from a user, according to one embodiment of the invention.
Fig. 5 illustrates process operations involving identifying a data center to service a login request from a user in accordance with an alternative embodiment of the present invention.
Fig. 6 illustrates an exemplary information service provider architecture for delivering information content and services to geographically dispersed and connected via a network according to one embodiment of the invention.
FIG. 7 illustrates exemplary components of a computing device for controlling content presented to a user according to one embodiment of the invention.
Detailed Description
In the following description, numerous specific details are set forth in order to provide a more thorough understanding of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps have not been described in detail in order to avoid obscuring the present invention.
According to embodiments of the present invention, a user may access a cloud gaming site through a user account at the cloud gaming site and select games available within the cloud gaming site for game play. The user game history maintained in the cloud gaming site or on a local server, remote server, or anywhere else on the cloud and accessed through the cloud gaming site is analyzed in response to the request to determine a user game profile. The game profile identifies the user's preferences for games over different game play time periods (including days of the week, time of day, etc.), game performance usage (including graphics of the selected game, display preferences, game play intensity, game level preferences, geographic location of the user at the time the game request was initiated, etc.). The game profile is used to identify a data center of the cloud gaming site that is assigned to service requests received from users for game play of the game. The identified data center is assigned to service the current request from the user. The allocation causes the server of the identified data center to dynamically establish a communication connection with the computing device of the requesting user to allow game play. After distribution and during game play, connection attributes of the communication connection between the computing device and the identified server of the data center are verified by performing a quality of service test to determine whether the connection attributes meet connection requirements from the user that are desired for the service request. If the communication connection does not meet the connection requirements desired to service the request from the user, the data center allocated to service the user request is handed over to a second data center, which may provide communication resources that meet the connection attributes required to service the request.
In some implementations, geographic location and/or temporal features provided in the user's game profile can be used to determine which data center distributes requests from the user. Typically, for example, users local to a particular geographic location are served by the same Internet Service Provider (ISP) and/or will have similar connection attributes to a particular game. Using local time (current or recent) streaming data from such users sharing the same ISP and/or geographic location of the user initiating the request, it is easy to predict the connection properties of the request from the initiating user and identify a data center for distributing the request from the user for service. In such embodiments, if sufficient connection attribute data is available from other users at the same ISP/geographic location, quality of service connection testing performed after the data center is specified may be avoided altogether, thereby further saving time during verification of the requested connection attributes while providing a connection with the required connection resources between the data center in the cloud gaming site and the computing device of the requesting user.
Cloud gaming sites used in the present application are local servers, virtual computers, cloud servers, digital media stores, game developers/game sponsors' storefronts, websites, remote servers, game consoles on cloud servers, or any other content provider store/site capable of hosting one or more game applications (including providing/specifying processing resources for executing the game applications) that a user can access and interact with during game play.
After a connection is established between the assigned data center and the user computing device, the connection attributes are monitored using data from the current game play. If the connection attributes of the connection satisfy the desired connection requirements, then the identified data center is used to continue servicing requests from the user. However, if the connection attributes do not meet the expected connection requirements, the data center may be switched to provide the user with the best gaming experience. The connection attributes may include one or more processing resources or connection speeds provided by a communication connection between the user computing device and a server assigned to serve the data center requested by the user. In some embodiments, the processing resources provided at the data center may exceed the performance requirements necessary to service the request, or may exceed the performance usage of the user. In such embodiments, the processing resources specified within the server may be adjusted to allow efficient service requests while achieving optimal use of the processing resources.
After servicing the request from the user, the user's game profile within the game history may be updated with information from game play of the game associated with the request. The game history will provide each game information such as date, time of day, performance usage (i.e., intensity of games that the user has selected to play, intensity of user performance, etc.), etc., from which the user's game profile can be easily inferred. For example, user performance uses may include graphics level, display, scene, game level, single user play with multiple users, and so forth. Like the game profile maintained for each user in the game history, each data center may be associated with a data center profile in a data center history maintained within the cloud game site. The data center profile identifies connection attributes used when requests are received from multiple users and served by respective data centers within the cloud gaming site. Since each data center can service requests of multiple users at any given time, the data center profile of the corresponding data center is dynamically updated at this time as the user requests are serviced. The data center profiles of all data centers and the game profiles of all users provide a rich source of historical information that can be used to route user requests so that the users are provided with appropriate processing and communication resources (including communication speed or bandwidth) to allow the users to have a rich game play experience. For example, from information captured in the data center profile and the user's game profile, usage at a particular time may be mapped for each game and each user.
Various embodiments described herein avoid connection testing by legacy applications before a user requests that the necessary resources be allocated to begin game play. According to a conventional method, when a user request is received, the user request is checked to determine a game to be played for selection. In identifying games, connection tests are performed to test the connection of client devices to different data centers and identify the data center that will provide the best connection speed to service the user's request. In addition to the connection test, the resources of each data center are determined to identify the data center that will provide the best processing resources and the connection speed. Such pre-testing prior to designating/assigning a data center results in the user having to wait before the user can access the resources to play the game. As games become more graphics and/or performance intensive and require more resources, pre-testing may become more involved, resulting in more waiting. Such waiting may cause the user to lose interest in the game and cease interaction with the game site, resulting in a potential loss of revenue for the game developer/game site owner.
The present embodiments disclose a way to provide a user with instant access to a game stream of a game in response to a request from the user for game play. Instant access is provided by assigning a data center that was used to service a user's previous game play requests. The data center is allocated without performing connection tests to check processing resources and/or to verify the connection speed between the data center and the client device of the user from which the request originated. The current embodiment enables rapid specification of a data center by: the past connection test results, the quality of the connection at the time of servicing the past requests, the network routing, and a history of network characteristics used for each game, each user, each data center, and the user's geographic area are maintained, and the data centers are designated with historical information about the users and data centers to service the user requests.
When a user's request for game play is received, one or more attributes provided by the user in the user's request (such as user identification, day of the week the request was made, time of day the request was made, etc.) may be used to search the history information in-flight to identify the game and the data center previously used to service the previous request for game play from the user during the different time periods specified in the previous request. It should be noted that a single data center may have served all previous game play requests for a game that originate from a user, or a different data center may have served previous game play requests, depending on the time at which the previous game play requests were served. Thus, when servicing a user's current request, the moment at which the request was initiated is considered in identifying the appropriate data center. The identified data center is assigned to service the current game request from the user. The distribution data center results in a dynamic establishment of a communication connection between a game server within the identified data center that includes the instantiated game and a computing device (i.e., client device) of the user that initiated the user request in order to allow instant access to the streaming content of the game.
Connection speed testing and processing resource assignment testing is performed after a user begins interaction with a game instance, and such testing is performed to ensure that the assigned data center has the necessary resources and communication bandwidth to allow the user to have an optimal game experience. Testing is performed using streaming game data packets being exchanged during the current game play. During testing, when it is determined that the connection speed or other communication resource is not at a level required for the user to have an optimal gaming experience, a signal may be generated to initiate a handoff in the data center allocated to service the user's game play request. Similarly, when it is determined that the specified processing resources are below the required level, the server may be switched to a different server within the same data center, or may be switched to a server in a different data center. Or if the game is being executed on a game console, a signal may be generated to switch the designated game console to a different game console within a server and/or data center or on a different server on a different data center. When it is determined during game play that more processing resources are specified than are required or are being used by the user (based on the user's performance usage), the resources may be adjusted so that the processing resources are optimally used while providing a satisfactory game experience to the user. Such adjustment may include narrowing down the processing resources designated for servicing the user's game play request.
In some embodiments, once the user is assigned the data center 400 and game server 402 and/or game console 404 and begins playing the game, a quality of service (QoS) engine 304 within the cloud gaming site may periodically or continuously monitor the communication and processing bandwidth of the connection to ensure that the quality of service is maintained at the level required by the user's request. During game play or during a period of testing, qoS engine 304 may determine that data bandwidth has begun to drop even when the intensity or quality of game play remains high or at a desired level. One cause of the reduced connection bandwidth may be due to a reduced connection speed on the communication line established between the user's computing device 100 and the server 402 and/or game console 404 of the identified data center 400, due to an on-demand ordering of the communication line or due to an increased load of data packets being transmitted. Of course, the connection speed drop is just one example, and there may be many other reasons that may result in a drop in the connection bandwidth. To maintain quality, a quality of service (QoS) engine 304 within the cloud gaming site 300 may recognize a mismatch of an expected quality of service and a quality of service to be provided and send a signal to the game server to dynamically reduce the resolution of the game data to address the mismatch so that overall service is not adversely affected. Once the connection speed is restored, the resolution of the game data may be adjusted to the original level by sending another signal to restore the original resolution. The adjustment of the resolution is performed in a way that does not affect the user gaming experience. With a general understanding of the present invention, specific embodiments will now be described with reference to the various drawings.
FIG. 1 illustrates a simplified block diagram of a system for identifying and distributing data centers to service game play requests from users in one embodiment of the invention. The system includes a client computing device 100 communicatively connected to a cloud gaming site 300 over a network 200, such as the internet. When a request is received from a client device 100 to access cloud gaming site 300, cloud gaming site 300 accesses user account information stored in user data store 302 to identify a user associated with the requesting client device 100.
In one embodiment, cloud gaming site 300 may determine that the user is authorized to view/play all games, retrieve the game title, and return the game title to the list for presentation on the display screen of client device 100. User interaction at one of the game titles presented on the client device 100 is detected and a signal is sent to the cloud game site 300. The signals include user-related information including selected game titles, user identifiers, user geographic locations, day of the week, time of initiation of the request, time, etc. In some implementations, a Global Positioning System (GPS) mechanism within the client device 100 can be used to determine the user geographic location, the IP address of the client, the ping information of the client, and so forth. Of course, the above-described manner for detecting a user geographic location may be exemplary, and other types of mechanisms or tools may be used to determine a user geographic location.
The connection module 500, which may be used with the cloud gaming site 300, actively determines a data center to service previous game play requests for the same game received from a user in response to the signal. The identified data center is known to include the required communication connections and processing resource bandwidth to service the previous requests from the user because the user has a satisfactory game play experience, which is repeatedly accessed by the user to cloud game sites and repeated proof of selection of the game.
In another embodiment, once the user identity is determined from the request, a connection module (e.g., a quick connect module) available to the cloud gaming site may predict a game to play based on a user game profile obtained from historical information retained by the connection module 500. The connection module 500 may use information provided in the request (such as a user identifier, time of day, day of week) to identify the user and use the user's identity to obtain the user's game profile. The game profile is used to predict games that a user would like to play over a particular period of time. The connection module 500 may use information from the user's game profile to further predict game performance requirements, system requirements, user geographic location, etc., and identify a data center that serves the user's previous request for a game.
The connection module 500 identifies the user's game profile by retrieving user account metrics 502 for the user's user account. The connection module 500 maintains user account metrics 502 for each user account associated with each user requesting game play for games available at the cloud gaming site 300. The user account metrics 502 identify a user's game history by determining the games, dates, times of day, performance usage of each game the user requests need, user skill level, etc. the user requests at the cloud game site 300. The performance uses of the game desired by the user may also include game graphics, display options, scene graphic intensity, game level the user has mastered, game level the user is currently playing, game level the user prefers to begin playing, game play mode (multiplayer or single-user game, shared and non-shared game), and so forth. When a request for game play is received, the connection module uses the user account information provided in the request to retrieve user account metrics 502 for the user in operation to identify a user game history. The game history identifies resources within the data center 400 that are used to service a user's previous requests for the same game.
The connection module 500 then retrieves the data center attributes of the identified data center from the data center metrics 514. The data center metrics 514 maintain a data center history of all data centers 400 available at the cloud gaming site 300. As requests for one or more games are serviced by the corresponding data center 400 to provide the current status of the data center 400 and corresponding data center attributes (e.g., available processing resource types, status of each of the processing resources at the data center, etc.), and at this time, the information in the data center metrics 514 is continually updated. The connection module 500 (e.g., a quick connect module) uses the retrieved data center attributes of the data center 400 identified by the user account index. The connection module 500 then communicates the identified data center information (including data center attributes) to the cloud gaming site 300. The cloud gaming site 300 uses this information to send a signal to the data center 400 to establish a communication connection with the client device 100 and specify the processing resources specified in the retrieved data center attributes in order to service the user game play request. It should be noted that since the data center 400 has previously serviced requests for games, game instances have been loaded and made available for servicing requests. Thus, the user can access the game on-the-fly without waiting for the game instance to load.
Based on the signals from cloud gaming site 300, game console 404 or game server 402 of data center 400, which is executing the instantiated game, establishes a direct connection between itself and client computing device 100 in order to allow for the exchange of game data between game console 404 or game server 402 of identified data center 400 and client computing device 100. Once the communication connection is established, the user can access to begin game play for the selected game. During game play, quality of service (QoS) engine 304 may monitor the level of service provided by data center 400 by testing the quality of service provided by the data center in order to determine whether the quality of service meets the level required by the user for the service desired by the game. In some embodiments, the quality of service test may be performed during game play for a defined period of time. In alternative embodiments, the quality of service test may be performed continuously during game play. In some embodiments, the quality of service required for game play may be indicated in the user account indicator for the user. Based on the quality test, the data center assigned for the service request may be maintained or switched. In some embodiments, the quality test examines connection speed, resource optimal allocation, service level provided by each of the resources, etc., and such test is performed with actual game data exchanged between the client computing device and the data center from which the game data is streamed to the client computing device.
FIG. 2 illustrates various modules within a connection module 500 of the data center 400 for identifying and distributing user requests for game play in one embodiment of the invention. A user (user a) may initiate a request for game play by logging into a user account at a cloud game server 300 accessed over network 200. As previously mentioned, the request may include user-related information such as a user identifier, a game identifier, a user geographic location, a date, a day of the week, a time of day, and the like. Connection module 500 executing on cloud gaming site 300 may receive a user request and may determine in operation which data center is to route user a's request. To help determine the data center, the connection module 500 may engage the performance predictor engine 501. The performance predictor engine 501 uses the user account information provided in the request to query the user account metrics 502 to obtain the game profile 508 for user a. Connection module 500 maintains a game history 506 for each user account available at cloud gaming site 300. The game history 506 may include game related information (506-A to 506-N) for each user of each game, such as a user identifier, a selected game title, a request date, a request time, a user performance usage, a game play mode, and the like. In one embodiment, the information provided in the game history is used to determine a game profile 508 for the user of each game. In another embodiment, the information provided in the game history is used to determine the overall game profile of the users of all games. The overall game profile may identify game preferences of the user over different time periods, the amount of time the user participates in playing different games, and so forth. The connection module 500 generates user account metrics 502 for each user account (502A-502N) of the user, including game profile information 508 obtained from the game history 506. When a request from a user is received at the connection module 500, the performance prediction engine 501 determines the user identifier of the user, the date and time the user's current request was received, the user's geographic location, and so forth. The performance predictor engine 501 then retrieves the user account indicators 502 for the user account identified from the request. The predictor engine 501 uses information in the user account metrics 502 to predict one or more predicted attributes of the request, such as games that are typically selected for game play at a time identified from the user's current request, game performance and/or resource requirements (i.e., connection speed) of the game, system performance requirements for efficient game play for the game, user geographic location, and so forth. The above-mentioned predictive properties are exemplary and have been provided as examples. Other predictive attributes may be identified to help identify a data center for servicing a request. In some embodiments, predictor engine 501 may then weight the predicted attributes based on the assigned certainty value for each predicted attribute collected from the usage history defined in user account index 502. For example, at the time associated with the request, if user A has selected game 3 for game play 7 out of the previous 10 times, the certainty value of the predicted attribute identifying game 3 for game play is about 70%.
The predicted attributes identified by the predictor engine 501 and their relative weights are forwarded to the data center selection engine 504. The data center selection engine 504 uses the predictive attributes to identify the user's geographic location and predict the data center 400 to serve the user's current request. The data center forecast may be based on geographic location and data center allocation history used to service previous requests of users received at the same time as the current request. The data center selection engine 504 knows the processing and communication resources required by the user's previous request received by the identified data center provisioning service at the time identified by the current request. The data center selection engine 504 then retrieves the identified data center metrics 514 of the data center 400 to obtain the current state of the processing resources available at the data center 400. The connection module 500 maintains a data center history 516 of all data centers 400 available at the cloud gaming site 300. The data center history 516 maintains history information of the various requests served at each data center, including the date each data center 400 served the request (for the game identified in the request or any other game instantiated in the data center 400), the time of day of this service, the performance usage of each processing resource (such as central processing unit (i.e., processor), memory, graphics engine, power supply, etc.) available at the data center 400, connection speed, etc. The history information 516 is used to determine a data center profile 518 for each data center, including the identified data center 400. The data center selection engine 504 then forwards the identified data center 400 data center information to the cloud gaming site 300, which sends a signal to the data center 400 instructing the game server or game controller at the data center 400 to establish a connection with the client device 100 to service the request from the client device 100. After assigning the identified data center to service the user's current request, the data center selection engine 504 updates the data center metrics 514 of the identified data center 400 with the current request. Thus, the cloud gaming system allocates data centers based entirely on the predicted attributes provided by the performance prediction engine 501, which is dependent on data center history and user game history, and runs connection tests after allocating data centers.
As requests from different users are serviced by the identified data center and when requests from different users are serviced by the identified data center, the data center metrics of the identified data center are updated to provide a current status of processing resources available at the identified data center 400. Similarly, the user account indicia 502 of the user is updated with a request from the user to provide the user's current game history.
After the communication connection is established, qoS engine 304 within cloud gaming site 300 participates in monitoring the connection and performing QoS tests to determine the quality of the communication connection and to determine whether the communication connection is at a desired level of needs for the service request. In some implementations, as part of the QoS test, qoS engine 304 performs a latency test to test the quality of the communication connection established between the assigned data center and the client device of the requesting user. QoS engine 304 identifies the game session, the communication sockets used to establish the communication connection, the connection parameters used, the communication connection lines established between the user's client device and the assigned data center for exchanging communications during the game. The QoS 304 engine also knows the connection requirements of the game. QoS engine 304 uses the connection information and connection requirements to determine whether the connection quality reaches a level required for the session of the game identified in the request.
When the QoS test indicates that the quality is not at the desired level, the QoS engine 304 sends a signal to the cloud gaming site 300 to switch the data center 400, e.g., to improve the communication connection. If, for example, the geographic location of the user from which the request originated has changed from the predicted geographic location identified by the predictor engine 501, the quality of the communication connection may be affected. The change in the geographic location of the user may result in increased latency during the transfer of data between the client device 100 and the cloud gaming site 300. In this case, the signal from QoS engine 304 will trigger cloud gaming site 300 to identify the current geographic location of the user in operation and identify an alternative data center that may be near the current geographic location of the user to service the request. The alternative data center is identified based on the availability of instances of the game at the alternative data center such that no waiting is required when accessing the game. In addition, the alternative data center is selected such that it has sufficient processing and communication resources to service the request so that game data can be streamed between the client device 100 and the alternative data center with minimal latency. QoS testing is performed in the background using real-time data provided from the current connection between client device 100 and cloud gaming system 300. By using real-time data from the current game play, a more accurate communication connection state can be established.
This is in contrast to conventional methods that use random test data to perform QoS testing prior to specifying a data center. Based on background QoS testing using real-time data from current game play, the cloud gaming system may maintain a connection with an assigned data center or reroute a connection to a different data center. After the data center assignment has been completed, testing and switching (if necessary) is performed. Such post-designation testing allows the user to access the game more quickly while maintaining the level of service required by the request.
The cloud gaming system may perform data center switching at transition points defined for the game. For example, a transition point may be defined as completing a certain game play level or completing a current game play, etc. The handover may be performed in any number of ways. For example, the switching may be performed by stopping game play for the game and switching. In this example, the previous gameplay is discarded and a new game is started, where the new gameplay is assigned to the switched data center. In another example, game play for the game is paused and the data center is switched. In this example, the data center allocated for game play will be the data center that was switched when game play was continued. In another example, the cloud gaming system may provide the user with an option to switch data centers. In this example, the data center used to play the game may be switched based on the user's response to the option. When a data center switches in the middle of game play, the cloud gaming system may store the game state of the game from the old data center and load the game state of the game to a server in the switched data center before allowing the user to continue his game play. The game status of the game will be user-related game data.
FIG. 3A shows a user's usage chart for a game in one embodiment of the invention. As shown, the user's usage may vary from day to day of the week. The information provided by the usage chart may be used to generate a game profile for the user. Each point in the chart may be selected to provide an expanded view of the intensity of use of the game, as shown in fig. 3B. When the user selects the point corresponding to monday in fig. 3A, a chart representing the intensity of game use by the user at different times on monday and at different times on part on tuesday is presented. This allows the system to identify the user's interests or preferences for a particular game and the games that the user likes to play at a particular time to enable the predictor engine to provide more accurate predicted attributes of the game to the data center selection engine. The predictive attributes are used to ensure that the identified data center has sufficient bandwidth to service the user request so that the user will have a satisfactory gaming experience. With a detailed description of the various embodiments, a method for preloading games will now be described with reference to FIG. 4.
FIG. 4 illustrates various method operations for distributing a data center to service requests received from users in one embodiment of the invention. The method begins at operation 410, where a request to access a cloud gaming site is received from a user account at the cloud gaming site. The game history maintained for the user account is analyzed in response to the request to determine a game profile of the user associated with the user account, as shown at operation 420. The game profile provides information identifying games that the user typically plays when the request is received and data centers available within the cloud gaming site that are assigned to service past requests received from the user.
The data center identified in the game profile is assigned to provide instant services for the request from the user, as identified in operation 430. The allocation of the data center results in a communication connection being established between a server from the identified data center and a client device of the requesting user to allow instant access to the game for game play. Connection attributes of the communication connection established between the server and the client device are monitored and verified, as shown in operation 440. Verification is performed after the data center is assigned to service the request from the user to ensure that the identified data center appears to conform to the connection requirements expected to service the request from the user. When it is determined that the connection attribute of the assigned data center does not meet the connection requirement necessary for the service request, the authentication may cause a handover of the data center for the service request. Or verification may result in the identified data center being reserved for the service request, as it may be determined that the assigned connection attributes of the data center at least meet the connection requirements necessary for the service request. In some embodiments, one or more resources may be curtailed to ensure optimal allocation of resources when the connection attributes of the assigned data center exceed requirements. The various embodiments described herein provide an efficient way to designate a data center to service user requests, and such designation occurs prior to performing connection testing, enabling users to access games on the fly. Connection testing is performed after specification to ensure that the quality of service and connection is manifested at a level that provides the user with a satisfactory game play experience requirement.
FIG. 5 illustrates various method operations for distributing data centers for requests received from users in one embodiment of the invention. The method begins at operation 510, where a login request to a cloud game server is received. The login request is checked to identify the user account associated with the login request, as shown in operation 520. The cloud game server retains user accounts of the plurality of users, and upon receiving the login request, the cloud game server will verify the login request against the locally retained user account to determine user identification information associated with the user account. The usage history of the cloud game server associated with the user account is checked over a period of time, as shown in operation 530. The usage history provides information related to previous accesses of the user account to the cloud game server, including the number of times the user account was used to access the cloud game server, access time (including day, date), time spent at the cloud game server, game type selected for streaming game play, game title, and the like. The information history provided in use is used to identify a data center from a plurality of data centers available at the cloud game server, the data center being used to provide the necessary resources during a previous streaming game play session for servicing the game type identified in the login request.
Based on the examination of the cloud game server usage history, the identified data center is assigned to the user account to allow the user account to begin a streaming game play session with the server within the data center, as shown in operation 540. The data center is assigned to the user account without performing any connection testing operations. In another embodiment, usage history of multiple users from the geographic location where the login request was received may be checked to identify a data center serving the user account. Typically, a user account at a geographic location may be served by a single data center. In such embodiments, the user accounts identified in the login request may be assigned to the same data center identified from the user histories of the plurality of users. In any event, the user account is assigned a data center to service the login request without performing any connection test operations, enabling the user associated with the user account to more quickly access to begin a streaming game play session. In one embodiment, the connection testing operation is performed after the data center is assigned and the user game play session has been initiated. When the connection test exhibits a less than satisfactory experience at the assigned data center, the system actively switches the data center to provide the user with a satisfactory game play experience. Active handoff may be based on the current geographic location of the user, available resources at the assigned data center, and the data center being handed off.
There are many advantages to distributing the data center to service user requests before performing connection tests. For example, the user does not have to wait for the connection test to complete or for the game code to be loaded, as the user can immediately access the games that have been loaded into the data center. The data center is assigned based on a user's previous interaction history related to a particular game or games at the cloud gaming site. The distributed data center must provide a satisfactory game play experience as evidenced by the user repeatedly returning to the cloud game server. In addition, the quality of service provided by the identified data center is verified in the background during the game play session to ensure that the quality of service is maintained at the user's desired level. Other advantages will become apparent to those skilled in the art upon reading the various embodiments described herein.
FIG. 6 illustrates an embodiment of an information service provider architecture that may be used to provide access to different games. Information Service Provider (ISP) 1070 delivers a number of information services through network 1086 to geographically dispersed and connected users 1082. While various embodiments have been discussed with reference to providing quick access to games, embodiments may be extended to provide one or more types of other services. For example, an ISP may deliver only one type of service, such as a game, or may deliver multiple services, such as games, stock price updates, broadcast media, news, sports, games, and so forth. In addition, the services provided by each ISP may be dynamic, that is, services may be added or deleted at any point in time. Thus, ISPs that provide specific types of services to specific individuals may change over time. For example, a user may be served by an ISP that is close to the user when the user is at her home, and may be served by a different ISP when the user travels to a different city. The home ISP will communicate the required information and data from the user's game or access profile to the new ISP through the connection module so that the user information "follows" the user to the new city, thereby bringing the data closer to the user and easier to access. In another embodiment, a host server relationship may be established between a host ISP that manages information for a user and a server ISP that interfaces directly with the user under the control of the host ISP. In another embodiment, data is transferred from one ISP to another ISP as the client moves around the world (i.e., during a data center handoff assigned to a user), and such transfer may be based on the compatibility of the services provided by the respective ISPs to make the ISP located in the better location of the service user the ISP that delivers those services.
ISP 1070 comprises an Application Service Provider (ASP) 1072 that provides computer-based services to clients through a network. The software provided using the ASP model is sometimes also referred to as on demand software or software as a service (SaaS). A simple form of providing access to a particular application, such as customer relationship management, is through the use of standard protocols, such as HTTP. For example, the application software resides on the vendor's system, which the user can access through a web browser using HTML, through vendor-provided dedicated client software, or other remote interface (such as a thin client).
Services delivered over a wide geographic area typically use cloud computing. Cloud computing is a computing approach in which dynamically extensible and often virtualized resources are provided as services over the internet. Users need not be specialists 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 online business applications accessed from web browsers, while software and data are stored on servers. Based on how the internet is depicted in a computer network graph, the term "cloud" serves as a metaphor for the internet (e.g., using servers, storage, and logic) and is an abstraction of the complex infrastructure that it hides.
In addition, ISP 1070 includes a Game Processing Server (GPS) 1074 that is used by game clients to play single and multi-player video games. Most video games played over the internet operate via a connection to a game server. Typically, games use dedicated server applications to collect player data and distribute the data to other players. This is less efficient and effective than point-to-point values, but it requires a separate server to host the server application. In another embodiment, the GPS establishes communication between players and their respective gaming devices, exchanging information without relying on a centralized GPS.
The dedicated GPS is a server that operates independently of the client. Such servers typically run on dedicated hardware located in a data center, providing more bandwidth and dedicated processing power. Dedicated servers are the preferred method for most PC-based multiplayer game hosting game servers. The massively multiplayer online game runs on a dedicated server, typically hosted by the software company that owns the game title, allowing them to control and update the content.
A Broadcast Processing Server (BPS) 1076 distributes audio or video signals to the audience. Broadcasting to a very narrow range of audience is sometimes referred to as narrowcasting. The last segment of the broadcast distribution is how the signal passes to the audience or viewer, and it may be over the air to an antenna and receiver like a radio or television station, or may be transmitted over a cable TV or cable broadcast (or "wireless cable") via a station or directly from the network. The internet may also bring the radio or TV to the recipient, especially with multicasting to allow sharing of signals and bandwidth. Historically, broadcasts have been divided by geographic area, such as national broadcasts or regional broadcasts. However, with the popularity of the fast internet, broadcasting is no longer geographically limited, as content can reach almost any country in the world.
A Storage Service Provider (SSP) 1078 provides computer storage and related management services. SSPs also provide periodic backup and archiving. By providing storage as a service, a user can order more storage space as desired. Another major advantage is that SSPs include backup services and users will not lose all of their data even if their computer's hard drive fails. Additionally, multiple SSPs can have full or partial copies of user data, allowing users to access the data in an efficient manner, regardless of where the user is or where the device to be used to access the data is. For example, a user may access personal files in a home computer, as well as personal files in a mobile phone while the user is moving.
Communication provider 1080 provides connectivity to the user. One communication provider is an Internet Service Provider (ISP) that provides access to the internet. ISPs connect their customers using data transmission technologies suitable for delivering internet protocol datagrams, such as dial-up, DSL, cable modem, fiber optic, wireless, or dedicated high-speed interconnect. The communication provider may also provide messaging services such as email, instant messaging, and SMS text messaging. Another type of communication provider is a Network Service Provider (NSP), which sells bandwidth or network access by providing direct backbone access to the internet. The network service provider may consist of a carrier, a data carrier, a wireless communication provider, an internet service provider, a cable television operator providing high-speed internet access, etc.
Data exchange 1088 interconnects several modules within ISP1070 and connects these modules to user 1082 via network 1086. The data exchange 1088 may cover a small area where all modules of the ISP1070 are in close proximity, or may cover a large geographic area when the different modules are geographically dispersed. For example, data exchange 1088 may include fast gigabit ethernet (or faster) within a data center cabinet or within an intercontinental virtual area network (VLAN).
The user 1082 accesses the remote service using a client device 1084 that includes at least a CPU, memory, display, and I/O. The client device may be a PC, mobile phone, netbook, tablet, gaming system, PDA, or the like. In one embodiment, ISP 1070 identifies the type of device used by the client and adjusts the communication method employed. In other cases, the client device accesses the ISP 1070 using standard communication methods, such as HTML.
Embodiments of the invention may be practiced with a variety of computer system configurations, including hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a wired or wireless-based network.
In view of the above, it should be appreciated that the present invention can employ various computer-implemented operations involving data stored in computer systems. The operations are those requiring physical manipulations of physical quantities. Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to an apparatus or device for performing these operations. The apparatus may be specially constructed for the required purposes, or it may be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
The present invention may also be embodied as computer readable code on a computer readable medium. Or the computer readable code may be downloaded from a server using the data exchange interconnection described above. The computer readable medium is any data storage device that can store data which can thereafter be read by a computer system. Examples of computer readable media include hard disk drives, network Attached Storage (NAS), read-only memory, random-access memory, CD-ROMs, CD-R, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. The computer readable medium can comprise a computer readable tangible medium distributed over a network coupled computer system such that the computer readable code is stored and executed in a distributed fashion.
Although the method operations are described in a particular order, it should be understood that other housekeeping operations may be performed between the operations, or the operations may be adjusted so that they occur at slightly different times, or the operations may be distributed throughout the system, which allows the processing operations to occur at various intervals associated with the processing, so long as overlapping operations are performed in a desired manner.
The foregoing invention has been described in some detail for purposes of clarity of understanding. It is to be understood, however, that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the described embodiments.
Fig. 7 schematically illustrates a game console (such asPlaystation/>Entertainment device), the game console may be compatible with the controller in order to implement embodiments of the present invention. A system unit 1400 is provided, wherein various peripheral devices may be connected to the system unit 1400. The system unit 1400 is similar to the cloud game server 300 of fig. 2. The system unit 1400 includes: cell processor 1428; /(I)A dynamic random access memory (XDRAM) unit 1426; a real synthesizer (Reality Synthesizer) graphics unit 1430 with a dedicated Video Random Access Memory (VRAM) unit 1432; and an I/O bridge 1434. The system unit 1400 further comprises a Blu/>, for reading out from the disc 1440aDisc BD-An optical disk reader 1440 and a removable slot-type Hard Disk Drive (HDD) 1436, which are accessible via an I/O bridge 1434. Optionally, the system unit 1400 also includes a Memory card reader 1438 for reading compact flash cards, memory Stick ⑧ Memory cards, and the like, that are similarly accessible through the I/O bridge 1434.
The I/O bridge 1434 is also connected to: six Universal Serial Bus (USB) 2.0 ports 1424; gigabit ethernet port 1422; an IEEE 802.11b/g wireless network (Wi-Fi) port 1420; capable of supporting up to seven bluetooth connectionsWireless link port 1418.
In operation, the I/O bridge 1434 processes all wireless, USB, and Ethernet data, including data from one or more game controllers 1402-1403 and HMD 1417. For example, when a user is playing a game, the I/O bridge 1434 receives data from the game controllers 1402-1403 via a Bluetooth link and forwards the data to the Cell processor 1428, which will update the current state of the game accordingly.
In addition to the game controllers 1402-1403 and the HMD 1417, wireless, USB and ethernet ports provide connectivity to other peripheral devices such as: a remote control 1404; a keyboard 1406; a mouse 1408; portable entertainment device 1410, such as Sony PlaystationAn entertainment device; a camera 1412, such as/>, ofAn eye camera; and an ear 1414; a microphone headset 1415. Thus, such peripheral devices may in principle be connected wirelessly to the system unit 1400; for example, portable entertainment device 1410 may communicate via a Wi-Fi ad hoc connection, while headset 1414 may communicate via a bluetooth link.
Providing these interfaces means that the PlayStation 3 device may also be compatible with other peripheral devices such as Digital Video Recorders (DVRs), set-top boxes, digital cameras, portable media players, voice over Internet Protocol (IP) telephones, mobile telephones, printers, and scanners.
Further, legacy memory card reader 1416 may be connected to the system unit via USB port 1424, thereby enabling reading byOr Playstation/>The type of memory card used by the device.
The game controllers 1402-1403 are operable to communicate wirelessly with the system unit 1400 via a bluetooth link or to connect to a USB port to also access a power source to charge the batteries of the game controllers 1402-1403. Game controllers 1402-1403 may also include memory, processors, memory card readers, permanent memory (such as flash memory), light emitters (such as illuminated globe, LEDs, or infrared lamps), microphones and speakers for ultrasonic communications, acoustic chambers, digital cameras, internal clocks, recognizable shapes for gaming machine consoles, and use protocols (such asWiFi TM, etc.). The identifiable shape may be substantially the following shape: spheres, cubes, parallel tetrahedrons, cuboids, cones, pyramids, imperfect spheres, soccer balls, american football or rugby balls, portions of spheres, truncated pyramids, truncated cones, baseball bats, truncated cubes, polyhedrons, stars, and the like, or combinations of two or more of these shapes.
Game controller 1402 is a controller designed to be used by two hands, while game controller 1403 is a one-hand controller with a spherical attachment. In addition to one or more analog joysticks and conventional control buttons, the game controller is sensitive to six degrees of freedom movement, corresponding to translation and rotation in each axis. Thus, gestures and movements of a user of the game controller may be translated into inputs to the game in addition to or in lieu of conventional button or joystick commands. Alternatively, other wireless-enabled peripheral devices (such as Playstation TM portable devices) may be used as the controller. In the case of a Playstation TM portable device, additional game or control information (e.g., control instructions or number of lives) may be provided on the device screen. Other alternative or complementary control means may also be used, such as a dance mat (not shown), a light gun (not shown), a steering wheel and pedal (not shown) or a custom controller (also not shown), such as a single or several large buttons for a quick response game.
The remote control 1404 is also operable to communicate wirelessly with the system unit 1400 via a bluetooth link. The remote 1404 includes a BD-ROM reader 1440 adapted to operate a Blu-Ray TM disc and a controller adapted to navigate the content of the optical disc.
In addition to conventional pre-recorded and recordable CDs and so-called super-audio CDs, the Blu-Ray TM disc BD-ROM reader 1440 is operable to read CD-ROMs compatible with Playstation and Playstation 2 devices. The reader 1440 is also operable to read out DVD-ROMs compatible with the Playstation 2 and Playstation3 devices, in addition to conventional pre-recorded and recordable DVDs. The reader 1440 is also operable to read BD-ROM compatible with the Playstation3 device, as well as conventional pre-recorded and recordable Blu-Ray discs (Blu-Ray disc).
The system unit 1400 is operable to supply audio and video generated or decoded by a Playstation 3 device via a real synthesizer graphics unit (RSX) 1430 to a display and sound output device 1442, such as a monitor or television set having a display 1444 and one or more speakers 1446, or independent speakers 1448, through an audio connector 1450 and a video connector 1452. In one embodiment, sound is played to a particular audio speaker using sound and gaze input according to a point of gaze (POG) of a user. Audio connector 1450 may include conventional analog and digital outputs, while video connector 1452 may variously include component video, S-video, composite video, and one or more High Definition Multimedia Interface (HDMI) outputs. Thus, the video output may be in a format such as PAL or NTSC, or may be 720p, 1080i or 1080p high definition.
Audio processing (generation, decoding, etc.) is performed by the Cell processor 1428. Operating system support for Playstation 3 device5.1 Surround sound,/>Cinema surround (DTS) and from Blu-/>Decoding of 7.1 surround sound of a disc.
In this embodiment, the video camera 1412 includes a single Charge Coupled Device (CCD), LED indicators, and hardware-based real-time data compression and encoding devices so that the compressed video data can be transmitted in an appropriate format, such as based on the MPEG (moving picture experts group) standard within an image, to facilitate decoding by the system unit 1400. The camera LED indicator is arranged to illuminate in response to appropriate control data from the system unit 1400, e.g. to indicate adverse lighting conditions. Embodiments of the camera 1412 may be connected to the system unit 1400 via a USB, bluetooth, or Wi-Fi communication port in various ways. Embodiments of the camera may include one or more associated microphones and may also be capable of transmitting audio data. In a camera embodiment, the CCD may have a resolution suitable for high definition video capture. In use, images captured by the camera may be incorporated into a game or interpreted as game control inputs, for example. In another embodiment, the camera is an infrared camera adapted to detect infrared light.
In general, for successful data communication with peripheral devices (such as cameras or remote controls) via one of the communication ports of the system unit 1400, appropriate software, such as device drivers, should be provided. Device driver technology is well known and will not be described in detail herein, except to the extent that the skilled artisan will appreciate that a device driver or similar software interface may be required in the present embodiments described.
Embodiments may include capturing depth data to better identify real world users and guide activities of an avatar or scene. The object may be what a person is holding or may be a human hand. In this specification, the terms "depth camera" and "three-dimensional camera" refer to any camera capable of obtaining distance or depth information as well as two-dimensional pixel information. For example, a depth camera may utilize controlled infrared illumination to obtain distance information. Another exemplary depth camera may be a stereo camera pair that triangulates distance information using two standard cameras. Similarly, the term "depth sensing device" refers to any type of device capable of obtaining distance information as well as two-dimensional pixel information.
Recent advances in three-dimensional images open the door to increase the possibilities in terms of real-time interactive computer animation. In particular, in addition to normal two-dimensional video images, new "depth cameras" provide the ability to capture and map three dimensions. With the new depth data, embodiments of the present invention allow computer-generated objects to be placed at various locations within a video scene in real-time, including behind other objects.
In addition, embodiments of the present invention provide a real-time interactive gaming experience for users. For example, a user may interact with various computer-generated objects in real-time. Furthermore, the video scene may be altered in real-time to enhance the user gaming experience. For example, a computer-generated garment may be inserted over a user's clothing and computer-generated light sources may be utilized to cast virtual shadows within a video scene. Thus, using embodiments of the present invention and depth cameras, users may experience an interactive game environment within their own living room. Similar to a normal camera, a depth camera captures two-dimensional data comprising a plurality of pixels of a video image. These values are the color values of the pixels, typically red, green and blue (RGB) values for each pixel. In this way, the object captured by the camera appears as a two-dimensional object on the monitor.
Embodiments of the present invention also contemplate distributed image processing configurations. For example, the present invention is not limited to processing of capturing an image and displaying an image at one or even two locations (such as in a CPU or in a CPU and another element). For example, input image processing may just as easily occur in an associated CPU that can perform the processing; substantially all of the image processing may be distributed throughout the interconnect system. Thus, the present invention is not limited to any particular image processing hardware circuitry and/or software. The implementations described herein are not limited to any specific combination of general hardware circuitry and/or software nor to any particular source for the instructions executed by the processing component.
In view of the above, it should be appreciated that the present invention can employ various computer-implemented operations involving data stored in computer systems. These operations include those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. In addition, the operations performed are often referred to in terms such as generating, identifying, determining, or comparing.
The above-described invention may be practiced with other computer system configurations, including hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
The present invention may also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can thereafter be read by a computer system, including electromagnetic wave carriers. Examples of computer readable media include hard disk drives, network Attached Storage (NAS), read-only memory, random-access memory, CD-ROMs, CD-R, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. The computer readable medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.

Claims (17)

1. A method, comprising:
receiving a request to access a cloud gaming system, the request originating from a user;
In response to the request, analyzing a usage history of the user to predict usage of a game and identify a data center that the user last used to play the game, the identified data center having instances of the game loaded to a server of the data center and allocable to the user;
Assigning the instance of the game to the user, the assigning associating user data of the user with the instance of the game to enable interaction with the game via a client device; and
A performance level of a communication channel established between the server and the client device is verified to confirm that the performance level meets a predefined criteria for playing the game, the performance level being verified after play of the game is initiated.
2. The method of claim 1, wherein the game is processed by the server of the data center in a streaming mode to stream video frames of the game to the client device, wherein the processing of the game comprises processing of the user input received from the client device.
3. The method of claim 1, wherein verifying the performance level comprises: when the performance level of the communication channel does not meet a predefined indicator, a signal is generated to the server of the cloud gaming system to switch the data center assigned to the user for playing the game to a new data center.
4. A method according to claim 3, wherein the new data center is identified based on the current geographical location of the user initiating the request and the availability of the instance of the game at the server of the new data center to the user.
5. A method according to claim 3, wherein the predefined indicator comprises a minimum connection speed required to stream video frames of the game during play.
6. A method according to claim 3, wherein verifying the performance level comprises:
Monitoring a connection attribute of the communication channel established between the server and the client device of the data center by performing a latency test using video frames generated during play of the game, the latency test being performed in the background during play of the game; and
Determining a connection quality of the communication channel by comparing the connection attribute with the predefined indicator, the connection quality being determined by considering a latency threshold defined for the game, wherein the signal generated to switch to the new data center is based on the connection quality.
7. The method of claim 6, wherein the connection attribute of the communication channel is affected by a geographic location of the user such that the connection attribute of the communication channel in a new geographic location is different from the connection attribute at a geographic location identified in the usage history of the user.
8. A method according to claim 3, wherein switching to the new data center is done at a transition point defined in the game.
9. The method of claim 3, wherein switching to the new data center comprises:
suspending play of a game at the data center, the suspending identifying a restart point for continuing play of the game;
loading a game status of the game of the user from the server of the data center to a server of the new data center by synchronizing game data between the data center and the new data center; and
Continuing play of the game from the restart point of the new data center.
10. The method of claim 1, wherein associating user data with the instance comprises:
synchronizing the user data of the user from a different data center serving a previous request for the game received from the user, the synchronizing resulting in an update of a game state of the game and the user data of the user.
11. The method of claim 1, wherein the usage history is maintained on the cloud gaming system, and wherein analyzing the usage history comprises: a predicted attribute of game play of the user is identified, the predicted attribute being used to identify the game and the data center.
12. The method of claim 11, wherein identifying predicted attributes of the game play comprises:
The relative weight of each predicted attribute of the user is identified based on a deterministic value, the deterministic value of each predicted attribute being determined from game preferences of the user collected from previous game plays in the usage history.
13. A non-transitory computer-readable storage medium having stored thereon computer-executable instructions that, when executed, cause a computer system to perform a method, the computer-readable storage medium comprising:
Program instructions for receiving a request to access a cloud gaming system, the request originating from a user;
Program instructions for analyzing a usage history of the user in response to the request to predict usage of a game and identify a data center that the user last used to play the game, the identified data center having instances of the game loaded to a server of the data center and allocable to the user;
program instructions for assigning the instance of the game to the user, the assigning associating user data of the user with the instance of the game to enable interaction with the game via a client device; and
Program instructions for verifying a performance level of a communication channel established between the server and the client device to confirm that the performance level meets a predefined criteria for playing the game, the performance level being verified after play of the game is initiated.
14. The computer readable storage medium of claim 13, wherein the program instructions for verifying the performance level comprise: program instructions for generating a signal to the server of the cloud gaming system to switch the data center assigned to the user for playing the game to a new data center when the performance level of the communication channel does not meet a predefined criterion.
15. The computer-readable storage medium of claim 14, wherein the new data center is identified based on a current geographic location of the user initiating the request and availability of the instance of the game at a server of the new data center to the user.
16. The computer-readable storage medium of claim 14, wherein the program instructions for generating the signal comprise:
Program instructions for monitoring a connection attribute of the communication channel established between the server and the client device of the data center by performing a latency test using video frames generated during play of the game, the latency test being performed in the background during play of the game; and
Program instructions for determining a connection quality of the communication channel by comparing the connection attribute with the predefined indicator, the connection quality being determined by considering a latency threshold defined for the game, wherein the signal generated to switch to the new data center is based on the connection quality.
17. The computer readable storage medium of claim 14, wherein the program instructions for verifying the performance level comprise:
program instructions for suspending play of a game at the data center and identifying a restart point for continuing play of the game;
Program instructions for loading a game state of the game of the user from the server of the data center to a server of the new data center by synchronizing game data between the data center and the new data center, the new data center including instances of the game for allocation to the user; and
Program instructions for continuing play of the game from the restart point of the new data center.
CN202011299250.1A 2015-03-07 2016-03-01 Optimizing user experience using connection quality history Active CN112569590B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011299250.1A CN112569590B (en) 2015-03-07 2016-03-01 Optimizing user experience using connection quality history

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562129765P 2015-03-07 2015-03-07
US62/129,765 2015-03-07
US15/052,835 US10207185B2 (en) 2015-03-07 2016-02-24 Using connection quality history to optimize user experience
US15/052,835 2016-02-24
PCT/US2016/020218 WO2016144611A1 (en) 2015-03-07 2016-03-01 Using connection quality history to optimize user experience
CN202011299250.1A CN112569590B (en) 2015-03-07 2016-03-01 Optimizing user experience using connection quality history
CN201680014084.1A CN107427721B (en) 2015-03-07 2016-03-01 Optimizing user experience using connection quality history

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201680014084.1A Division CN107427721B (en) 2015-03-07 2016-03-01 Optimizing user experience using connection quality history

Publications (2)

Publication Number Publication Date
CN112569590A CN112569590A (en) 2021-03-30
CN112569590B true CN112569590B (en) 2024-04-30

Family

ID=56849537

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202011299250.1A Active CN112569590B (en) 2015-03-07 2016-03-01 Optimizing user experience using connection quality history
CN201680014084.1A Active CN107427721B (en) 2015-03-07 2016-03-01 Optimizing user experience using connection quality history

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201680014084.1A Active CN107427721B (en) 2015-03-07 2016-03-01 Optimizing user experience using connection quality history

Country Status (4)

Country Link
US (3) US10207185B2 (en)
CN (2) CN112569590B (en)
TW (1) TWI639457B (en)
WO (1) WO2016144611A1 (en)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10456686B2 (en) 2012-09-05 2019-10-29 Zynga Inc. Methods and systems for adaptive tuning of game events
US10208947B2 (en) 2014-03-26 2019-02-19 Rockwell Automation Technologies, Inc. Cloud-level analytics for boiler networks
US9614963B2 (en) 2014-03-26 2017-04-04 Rockwell Automation Technologies, Inc. Cloud-based global alarm annunciation system for industrial systems
US9838476B2 (en) 2014-03-26 2017-12-05 Rockwell Automation Technologies, Inc. On-premise data collection and ingestion using industrial cloud agents
US9724606B2 (en) 2014-09-09 2017-08-08 Zynga Inc. Systems and methods for indicating positions of selected symbols in a target sequence
US9675889B2 (en) 2014-09-10 2017-06-13 Zynga Inc. Systems and methods for determining game level attributes based on player skill level prior to game play in the level
US9757650B2 (en) 2014-09-10 2017-09-12 Zynga Inc. Sequencing and locations of selected virtual objects to trigger targeted game actions
US10561944B2 (en) 2014-09-10 2020-02-18 Zynga Inc. Adjusting object adaptive modification or game level difficulty and physical gestures through level definition files
WO2016144657A1 (en) * 2015-03-06 2016-09-15 Sony Computer Entertainment America Llc Predictive instant play for an application over the cloud
US10207185B2 (en) * 2015-03-07 2019-02-19 Sony Interactive Entertainment America Llc Using connection quality history to optimize user experience
WO2017058539A1 (en) * 2015-09-30 2017-04-06 Sony Interactive Entertainment America Llc Multi-user demo streaming service for cloud gaming
US10581680B2 (en) 2015-11-25 2020-03-03 International Business Machines Corporation Dynamic configuration of network features
US9923839B2 (en) * 2015-11-25 2018-03-20 International Business Machines Corporation Configuring resources to exploit elastic network capability
US10764255B2 (en) * 2016-09-21 2020-09-01 Rockwell Automation Technologies, Inc. Secure command execution from a cloud monitoring system to a remote cloud agent
US10778728B2 (en) * 2016-12-02 2020-09-15 Microsoft Technology Licensing, Llc. Cognitive resource selection
US11327473B2 (en) 2017-07-11 2022-05-10 Rockwell Automation Technologies, Inc. Dynamically reconfigurable data collection agent for fracking pump asset
US10482063B2 (en) 2017-08-14 2019-11-19 Rockwell Automation Technologies, Inc. Modular control manifest generator for cloud automation
US10416660B2 (en) 2017-08-31 2019-09-17 Rockwell Automation Technologies, Inc. Discrete manufacturing hybrid cloud solution architecture
US10860664B2 (en) * 2018-03-19 2020-12-08 Roblox Corporation Data flood checking and improved performance of gaming processes
US11169858B2 (en) 2018-06-15 2021-11-09 Nvidia Corporation Faster game enablement utilizing virtual machine reuse
WO2020073240A1 (en) * 2018-10-10 2020-04-16 深圳市欢太科技有限公司 Mini-game access method and related device
US10918946B2 (en) * 2018-11-05 2021-02-16 Sony Interactive Entertainment LLC In-game information platform
US11265323B2 (en) * 2018-11-13 2022-03-01 Paypal, Inc. Fictitious account generation on detection of account takeover conditions
CN110327621A (en) * 2019-04-24 2019-10-15 上海恺英网络科技有限公司 For the matched method and apparatus of network game client
WO2020247484A1 (en) * 2019-06-03 2020-12-10 Hsiung Ping Kang Selection of virtual server for smart cloud gaming application from multiple cloud providers based on user parameters
US11423103B2 (en) 2019-07-08 2022-08-23 Valve Corporation Content-item recommendations
US11194879B2 (en) 2019-07-08 2021-12-07 Valve Corporation Custom compilation videos
US11076004B2 (en) * 2019-08-20 2021-07-27 The Calany Holding S.Á R.L. Virtual radio access network system and method for optimized real-time responsive continuous location-based cloud computing, rendering, tracking, and communication services in three-dimensional space through a distributed computing center network
JP6734453B1 (en) * 2019-08-29 2020-08-05 グリー株式会社 Game device, game method, and game program
CN110585699B (en) * 2019-09-11 2020-12-01 腾讯科技(深圳)有限公司 Control method, device and equipment of cloud game and storage medium
CN112691363A (en) * 2019-10-22 2021-04-23 上海华为技术有限公司 Cross-terminal switching method and related device for cloud games
CN111068305B (en) * 2019-11-28 2023-10-20 咪咕视讯科技有限公司 Cloud game loading control method and device, electronic equipment and storage medium
CN113018868B (en) * 2019-12-09 2023-02-10 华为技术有限公司 Cloud game login method, device and system
CN111437610B (en) * 2020-04-21 2023-11-17 西安万像电子科技有限公司 Cloud game system processing method and device and cloud server
CN112087489B (en) * 2020-08-05 2023-06-30 北京工联科技有限公司 Relay forwarding selection method and system for online mobile phone game network transmission
CN112306780B (en) * 2020-11-20 2024-08-27 上海达龙信息科技有限公司 Self-checking method and device of cloud application server, storage medium and electronic equipment
CN114404960A (en) * 2022-02-07 2022-04-29 腾讯科技(深圳)有限公司 Cloud game resource data processing method and device, computer equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101506782A (en) * 2006-08-23 2009-08-12 松下电器产业株式会社 Relay device and relay method
CN101631092A (en) * 2008-07-18 2010-01-20 株式会社日立制作所 System and method for distributing data
CN102172080A (en) * 2008-10-02 2011-08-31 松下电器产业株式会社 Terminal device and connection switching management method
CN102375794A (en) * 2010-08-18 2012-03-14 和硕联合科技股份有限公司 Connection speed regulation method and computer system thereof

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997035258A1 (en) * 1996-03-21 1997-09-25 Mpath Interactive, Inc. Network match maker for selecting clients based on attributes of servers and communication links
ATE375187T1 (en) 2002-08-12 2007-10-15 Alcatel Lucent METHOD AND DEVICES FOR IMPLEMENTING HIGHLY INTERACTIVE ENTERTAINMENT SERVICES USING MEDIA FLOWING TECHNOLOGY, ALLOWING THE DISTANCE DELIVERY OF VIRTUAL REALITY SERVICES
US8526490B2 (en) * 2002-12-10 2013-09-03 Ol2, Inc. System and method for video compression using feedback including data related to the successful receipt of video content
US7342587B2 (en) * 2004-10-12 2008-03-11 Imvu, Inc. Computer-implemented system and method for home page customization and e-commerce support
GB2447094B (en) * 2007-03-01 2010-03-10 Sony Comp Entertainment Europe Entertainment device and method
JP5255623B2 (en) * 2007-04-20 2013-08-07 ソフトキネティック エス.エイ. Volume recognition method and system
CN101642621A (en) * 2009-07-21 2010-02-10 武汉必联网络技术有限公司 Automatic room dividing method in game platform
US8606922B1 (en) * 2010-09-27 2013-12-10 Amazon Technologies, Inc. Dynamic resource zone mapping
GB201102128D0 (en) * 2011-02-08 2011-03-23 Mustafa Bilal I Method and system for providing video game content
US8732267B2 (en) 2011-03-15 2014-05-20 Cisco Technology, Inc. Placement of a cloud service using network topology and infrastructure performance
US20130137518A1 (en) * 2011-11-29 2013-05-30 Keith V. Lucas System for Pre-Caching Game Content Based on Game Selection Probability
JP6129865B2 (en) * 2011-12-09 2017-05-17 エンパイア テクノロジー ディベロップメント エルエルシー Predictive caching of game content data
US20140089384A1 (en) * 2012-09-27 2014-03-27 International Business Machines Corporation Server resource selection on a network for a mobile client
US8920234B2 (en) 2012-12-06 2014-12-30 Steelseries Aps Method and apparatus for presenting information associated with a game
KR20210094149A (en) 2012-12-21 2021-07-28 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
US10616086B2 (en) * 2012-12-27 2020-04-07 Navidia Corporation Network adaptive latency reduction through frame rate control
US20140280289A1 (en) * 2013-03-12 2014-09-18 Microsoft Corporation Autosuggestions based on user history
US9233308B2 (en) * 2014-01-02 2016-01-12 Ubitus Inc. System and method for delivering media over network
US10296391B2 (en) * 2014-06-30 2019-05-21 Microsoft Technology Licensing, Llc Assigning a player to a machine
JP5991763B2 (en) * 2014-10-30 2016-09-14 サミー株式会社 Pachinko machine
US9987557B2 (en) * 2015-02-23 2018-06-05 Peter Garbowski Real-time video feed based multiplayer gaming environment
US10207185B2 (en) * 2015-03-07 2019-02-19 Sony Interactive Entertainment America Llc Using connection quality history to optimize user experience

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101506782A (en) * 2006-08-23 2009-08-12 松下电器产业株式会社 Relay device and relay method
CN101631092A (en) * 2008-07-18 2010-01-20 株式会社日立制作所 System and method for distributing data
CN102172080A (en) * 2008-10-02 2011-08-31 松下电器产业株式会社 Terminal device and connection switching management method
CN102375794A (en) * 2010-08-18 2012-03-14 和硕联合科技股份有限公司 Connection speed regulation method and computer system thereof

Also Published As

Publication number Publication date
CN112569590A (en) 2021-03-30
CN107427721A (en) 2017-12-01
US10207185B2 (en) 2019-02-19
CN107427721B (en) 2020-12-04
US20210331069A1 (en) 2021-10-28
TW201706025A (en) 2017-02-16
WO2016144611A1 (en) 2016-09-15
US11052313B2 (en) 2021-07-06
US12005355B2 (en) 2024-06-11
US20190168119A1 (en) 2019-06-06
TWI639457B (en) 2018-11-01
US20160256775A1 (en) 2016-09-08

Similar Documents

Publication Publication Date Title
CN112569590B (en) Optimizing user experience using connection quality history
US11389729B2 (en) Predictive instant play for an application over the cloud
JP6982684B2 (en) How and system to schedule gameplay for video games
US11571620B2 (en) Using HMD camera touch button to render images of a user captured during game play
CN110124319B (en) Method and system for providing fast-loading shortcuts
US9908047B2 (en) User save data migration based on location information
JP2015527627A (en) Multi-image interactive gaming device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant