Method and computer system for game allocation in a game cloud system

By monitoring and predicting video game usage, and using artificial intelligence to optimize video game distribution in game cloud systems, the problem of limited storage resources in the data center is solved, and efficient video game allocation and instant access is achieved.

CN118678991BActive Publication Date: 2025-07-08SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202280086430.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-12-08
Filing Date
2022-11-23
Publication Date
2025-07-08
Estimated Expiration
2042-11-23

AI Technical Summary

Technical Problem

The demand for video game storage in data centers is increasing, storage costs are sensitive and storage space is limited, and it is difficult for the existing technology to efficiently allocate and manage video game resources to meet the current and future needs of users.

Method used

By monitoring video game usage, using artificial intelligence to analyze network data and historical usage patterns, predict the popularity trend of video games, and based on this, optimize the distribution and storage of video games in the game cloud system, and use cloud management controllers and game allocators to efficiently allocate video game resources.

Benefits of technology

It realizes efficient allocation of video game resources, ensures that users can access the required games instantly, reduces storage costs, improves resource utilization, and can cope with changes in the popularity of video games and future demand fluctuations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118678991B_ABST
    Figure CN118678991B_ABST
Patent Text Reader

Abstract

A method for game distribution in a game cloud system. The method includes: tracking the status of a plurality of computing nodes in a data center, wherein the plurality of computing nodes are distributed across a plurality of rack components. The method includes: tracking a plurality of popularity valuations of a plurality of video games. The method includes: determining a distribution of one or more of the plurality of video games across the plurality of rack components based on the plurality of popularity valuations of the plurality of video games. The method includes: storing the one or more video games across the plurality of rack components based on the determined distribution of the one or more video games among the plurality of video games.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to distributing video games across data centers based on trends in the demand and / or popularity of prominent video games, and using artificial intelligence to identify trends. Background Art

[0002] In recent years, online services have advanced to allow online or cloud gaming between a cloud gaming server and a client connected via a network in a streaming format. Due to the on-demand availability of game titles, the ability to perform more complex gaming, the ability for players to network with each other for multiplayer games, asset sharing between players, instant experience sharing between players and / or viewers, allowing friends to watch friends play video games, allowing friends to join a game that a friend is already playing, etc., the streaming format has become increasingly popular.

[0003] Data centers can be configured with various computing resources to support online or cloud gaming. For example, each computing resource can be configured to execute a video game for gaming applications to be played and then streamed to a user. The demand for computing resources may fluctuate according to one or more parameters, including the demand for a specific video game, the time period of demand, the geographical area of demand, the type of ongoing gaming, etc.

[0004] Data centers can be configured with storage devices to make video games accessible for execution on computing resources to meet user demand for video gaming. The storage devices are typically loaded with video games from the video game catalog supported by the data center. However, as video games offer improved graphics and more detailed gaming environments, each new generation of video games requires more and more storage. In addition, video games require faster storage. Since each individual storage unit is limited in size due to storage costs, it may be impractical to store the entire video game catalog in each individual storage unit. For example, each storage unit may be able to store approximately 10% of the video game catalog, and as the number of video games in the catalog increases over time, the storage capacity may be even less. From the perspective of managing the storage of video games to meet user demand, this can place increased pressure on storage, especially since the video game catalog is large and growing.

[0005] It is in this context that the embodiments of the present disclosure are proposed. Summary of the Invention

[0006] Embodiments of the present disclosure relate to efficiently distributing video games across data centers or a game cloud system by monitoring video game usage, the system state of computing nodes in the game cloud system, predicting future video game usage based on historical usage patterns, and using artificial intelligence to analyze data captured from the game cloud system and network data (e.g., scraping data from social media, websites, various forms of media, etc.) to discover and / or predict trends in the popularity of existing or new video games for use.

[0007] Embodiments of the present disclosure disclose a method for game distribution in a game cloud system. The method includes tracking the states of a plurality of computing nodes in a data center, where the plurality of computing nodes are distributed across a plurality of rack assemblies. The method includes tracking a plurality of popularity valuations of a plurality of video games. The method includes determining a distribution of one or more of the plurality of video games across the plurality of rack assemblies based on the plurality of popularity valuations of the plurality of video games. The method includes storing the one or more video games across the plurality of rack assemblies based on the determined distribution of the one or more of the plurality of video games.

[0008] Other embodiments of the present disclosure disclose a non-transitory computer-readable medium storing a computer program for executing a method. The non-transitory computer-readable medium includes program instructions for tracking the states of a plurality of computing nodes in a data center, where the plurality of computing nodes are distributed across a plurality of rack assemblies. The non-transitory computer-readable medium includes program instructions for tracking a plurality of popularity valuations of a plurality of video games. The non-transitory computer-readable medium includes program instructions for determining a distribution of one or more of the plurality of video games across the plurality of rack assemblies based on the plurality of popularity valuations of the plurality of video games. The non-transitory computer-readable medium includes program instructions for storing the one or more video games across the plurality of rack assemblies based on the determined distribution of the one or more of the plurality of video games.

[0009] Other embodiments of the present disclosure disclose a computer system that includes a processor and a memory. The memory is coupled to the processor and has instructions stored therein that, if executed by the computer system, cause the computer system to perform a method. The method includes: tracking the states of a plurality of computing nodes in a data center, where the plurality of computing nodes are distributed across a plurality of rack assemblies. The method includes: tracking a plurality of popularity valuations of a plurality of video games. The method includes: determining a distribution of one or more of the plurality of video games across the plurality of rack assemblies based on the plurality of popularity valuations of the plurality of video games. The method includes: storing the one or more video games across the plurality of rack assemblies based on the determined distribution of the one or more video games among the plurality of video games.

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

[0011] The present disclosure may be best understood by reference to the following description taken in conjunction with the accompanying drawings, in which:

[0012] Figure 1 is a schematic diagram of a system according to an embodiment of the present disclosure that is used to provide play between one or more computing nodes located at one or more data centers over a network and is further configured to efficiently allocate video games throughout the data center to meet the current and future demands of users to play current and new video games.

[0013] Figure 2A is a schematic diagram of a plurality of rack assemblies including a plurality of computing nodes at a representative data center of a game cloud system according to an embodiment of the present disclosure.

[0014] Figure 2B is a schematic diagram of a plurality of rack assemblies including a plurality of computing nodes at a representative data center of a game cloud system according to an embodiment of the present disclosure, where each network storage device is accessible by a corresponding array of computing nodes.

[0015] Figure 2C is a schematic diagram of a plurality of rack assemblies including a plurality of computing nodes configured for processing and storage according to an embodiment of the present disclosure.

[0016] Figure 3 is an illustration of a system configured to implement an artificial intelligence model according to an embodiment of the present disclosure, the artificial intelligence model being configured to allocate video games throughout the game cloud system to meet the current and future demands of users to play current and new video games.

[0017] Figure 4 is a flowchart showing steps in a method for distributing video games throughout a game cloud system to meet current and future needs of users to play current and new video games.

[0018] Figure 5 shows components of an exemplary device that can be used to perform aspects of various embodiments of the present disclosure. Detailed Description

[0019] Although the following detailed description contains many specific details for purposes of illustration, those of ordinary skill in the art will understand that many variations and changes of the following details are within the scope of the present disclosure. Accordingly, aspects of the present disclosure are set forth below without any loss of generality of the claims appended hereto and without imposing any limitation on such claims.

[0020] Generally, over time, the size of video games and game catalogs increases. Additionally, video games require storage that is increasingly fast. However, because having faster storage in a data center is cost-sensitive (i.e., expensive), not every video game in a game catalog can be stored on every network storage server within the data center to meet the requirement for fast storage. Embodiments of the present disclosure provide for efficiently allocating video games across data centers (e.g., on network storage devices) of a game cloud system by monitoring video game usage, the system state of computing nodes in the game cloud system, predicting future video game usage based on historical usage patterns, and using artificial intelligence to analyze data captured from the game cloud system and network data (e.g., scraping data from social media, websites, various forms of media, etc.) to discover and / or predict trends in the popularity of existing or new video games for use. In particular, a cloud management controller is configured to maintain an inventory of all available cloud gaming servers, monitor cloud gaming servers (e.g., computing nodes), and track the state of cloud gaming servers (e.g., whether they are in use). Additionally, the cloud management controller is configured to monitor and track video games stored on one or more network storage servers and / or cloud gaming servers (e.g., computing nodes) in each rack component. Further, in an embodiment, an artificial intelligence (AI) layer within the cloud management controller is configured to track the popularity of video game titles and is further configured to arrange an optimal distribution of video game titles across rack components of one or more data centers of the game cloud system. For example, to meet current and predicted user demand for video game titles, each rack component may be loaded with the most popular video game titles, less popular video game titles may be loaded onto perhaps one rack component, and other video game titles may be loaded onto a selected number of rack components, and still other video game titles may remain in remote storage and the corresponding video game titles are only loaded onto a rack component when a user requests the video game titles. In other embodiments, when the AI layer tracks the popularity of video game titles, the AI layer is further configured to ensure that if a little-known video game title suddenly becomes popular (i.e., becomes increasingly popular within a very short time period), the video game title is loaded onto additional rack components in the data center to meet the huge increase in user demand to play the video game title.In some embodiments, the measurement of the state of a video game when it goes viral can be based on cloud gaming sessions, but can also be measured by external metrics such as social media site activity (e.g., Twitter, Facebook, etc.), digital or non-digital news articles, communication platforms (e.g., text messages, voice, etc.), or past experience (e.g., expecting a new video game within the same series to perform as well as or even better than the last released video game within the series, etc.), digital store sales on one or more platforms (e.g., gaming networks, online stores, e-commerce platforms, etc.) (e.g., video game sales, etc.), other e-commerce data (e.g., consumer visits, etc.), and so on.

[0021] With the foregoing general understanding of the various embodiments, exemplary details of the embodiments will now be described with reference to the various figures.

[0022] Throughout this specification, references to "application" or "game" or "video game" or "gaming application" or "game title" are intended to mean any type of interactive application that is directed by the execution of input commands. For illustrative purposes only, interactive applications include applications for gaming, word processing, video processing, video game processing, and so on. Additionally, the terms introduced above are interchangeable.

[0023] Figure 1 is a schematic diagram of a system 100 for providing gaming between one or more computing nodes located at one or more data centers via a network 150 according to one embodiment of the present disclosure. The system content is configured to provide gaming between one or more cloud gaming servers via the network, and more specifically, is configured to efficiently distribute video games across one or more data centers to meet the current and future demands of users to play current and new video games, such that users can easily and immediately access video games in the gaming catalog without waiting for the game cloud system to meet the demand (e.g., waiting for the video game to be loaded onto the network storage device and computing nodes). Cloud gaming includes executing a video game at a server to generate game-rendered video frames, which are then sent to a client for display.

[0024] It should also be understood that, in various embodiments (e.g., in a cloud gaming environment or within a stand-alone system), a physical machine (e.g., a central processing unit CPU and a graphics processing unit GPU) or a virtual machine or a combination of both can be used to execute cloud gaming and / or other services. For example, a virtual machine (e.g., an instance) can be created using a hypervisor that utilizes one or more components of a hardware layer (such as multiple CPUs, memory modules, GPUs, network interfaces, communication components, etc.) of a host hardware (e.g., located at a data center). These physical resources can be arranged in racks (such as a CPU rack, a GPU rack, a memory rack, etc.), where the physical resources in the rack can be accessed using a top-of-rack switch, and the top-of-rack switch facilitates a fabric for assembling and accessing components for an instance (e.g., when constructing the virtualized components of an instance). Generally, the hypervisor can present multiple guest operating systems configured with virtual resources. That is, each operating system can be configured with a corresponding set of virtualized resources supported by one or more hardware resources (e.g., located at a corresponding data center). For example, each operating system can utilize one virtual CPU, multiple virtual GPUs, virtual memory, virtualized communication components, etc. for support. In addition, the configuration of an instance can be transferred from one data center to another to reduce latency. When saving a user's gaming session, immediate utilization defined for the user or the game can be utilized. The immediate utilization can include any number of configurations described herein for optimizing the fast rendering of video frames of a gaming session. In one embodiment, the immediate utilization defined for a game or a user can be transferred between data centers as a configurable setting. The ability to transfer the immediate utilization settings enables efficient migration of gaming from data center to data center in the case where a user connects to play from different geographical locations.

[0025] System 100 includes a game cloud system 200 implemented, for example, through one or more data centers (e.g., data centers 1 to N). As shown, an instance of the game cloud system 200 can be located in data center N that provides management functionality, where the management functionality of the game cloud system 200 can be distributed through multiple instances of the game cloud system 200 at each data center. In some implementations, the game cloud system management functionality can be located outside of any data center. For example, the management functionality of the game cloud system can be executed by a cloud management controller, as will be further described in Figures 2A through 2B as follows.

[0026] The game cloud system 200 includes a dispatcher 191 that is configured to dispatch each of the client devices (e.g., 1 - N) to corresponding resources in a corresponding data center. In particular, when the client device 110 logs in to the game cloud system 200, the client device 110 can connect to an instance of the game cloud system 109 at data center N, where data center N can be geographically closest to the client device 110. The dispatcher 191 is capable of performing diagnostic tests to determine the available transmit and receive bandwidth of the client device 110. Additionally, the diagnostic tests include determining the latency and / or round - trip time between the corresponding data center and the client device 110. Based on the tests, the dispatcher 191 can very specifically dispatch resources to the client device 110. For example, the dispatcher 191 can dispatch a specific data center to the client device 110. Additionally, the dispatcher 191 can dispatch a specific computing node of a specific rack component, a specific streaming array, a specific computing bay to the client device 110. The dispatch can be performed based on knowledge of the assets (e.g., games) available at the computing node. Previously, client devices were generally dispatched to data centers without further dispatch to rack components. In this way, the dispatcher 191 can dispatch a client device that requests to execute a specific play application that is computationally intensive to a computing node that may not be running a computationally intensive application. Additionally, load management of the dispatch of computationally intensive play applications such as client requests can be performed at the dispatcher 191. For example, the same computationally intensive play application requested within a short time period can be distributed across different computing nodes of different computing bays in one rack component or different rack components to reduce the load on a specific computing node, computing bay, and / or rack component.

[0027] In some embodiments, the dispatch can be performed based on machine learning. In particular, resource demands can be predicted for a specific data center and its corresponding resources. For example, if it is predictable that a data center will soon handle many client devices running computationally intensive play applications, then the dispatcher 191 can use that knowledge to dispatch the client device 110 and dispatch resources that may not currently be utilizing all of their resource capabilities. In another case, anticipating an increase in load at data center N, the dispatcher 191 can switch the client device 110 from the game cloud system 200 in data center N to available resources in data center 3. Additionally, future clients can be dispatched to resources in a distributed manner such that the load and demand of the resources can be distributed across the game cloud system, across multiple data centers, across multiple rack components, across multiple computing bays, and / or across multiple computing nodes. For example, the client device 110 can be dispatched resources from both the game cloud systems on data center N (e.g., via path 1) and data center 3 (e.g., via path 2).

[0028] Once the client device 110 is assigned to a specific computing node of a corresponding computing tray of a corresponding streaming array, the client device 110 connects to the corresponding data center via a network connection. That is, the client device 110 can communicate with a data center different from the data center that performed the assignment (such as Data Center 3).

[0029] In addition, the game cloud system 200 includes a game dispenser 300 that is configured to distribute and / or disperse video games of a play catalog throughout the data centers of the game cloud system to support current and predicted (e.g., future) demand for the video games and the computing resources required to execute play sessions of these video games. For example, the game dispenser 300 can be implemented within a cloud management controller that is configured to manage resources within the game cloud system. In particular, the game dispenser 300 can be configured to monitor video game usage and the system state of computing nodes and network storage devices to determine current and future demand for video games and the computing resources required to meet such demand. In some embodiments, artificial intelligence (AI) can be applied to identify trends in the popularity of video games and the resulting user demand for computing resources due to the popularity of these video games. For example, the deep learning and / or machine learning engine 190 can be configured to implement an AI model 160 that is configured to classify and / or identify trends in the (e.g., current and future) popularity of one or more video game titles based on input data that includes metrics captured within the game cloud system (e.g., play sessions of one or more video games), as well as other data captured from network sources (e.g., social media platforms, websites, news sites, etc.), traditional information sources (e.g., media channels, etc.), other digital platforms (e.g., communication media (e.g., text messages, messaging, etc.), yet other non-digital platforms, online stores, etc.). In some embodiments, trends in the popularity of video games and demand for computing resources based on trend predictions can be determined by rules, such as without applying artificial intelligence.

[0030] Additionally, the game dispenser 300 is configured to analyze the results from the AI model 160 at the analyzer 140, including analyzing the classified and / or identified trends (e.g., indicating the popularity of these video games) of one or more video games. The analyzer 140 is configured to determine the distribution and / or dispersion of video games throughout one or more data centers of the game cloud system based on the classified and / or identified trends. In still other embodiments, the distribution and / or dispersion of video games throughout one or more data centers of the game cloud system is determined by rules applied to trends determined by artificial intelligence or also by other rules.

[0031] For example, a game cloud system may have multiple data centers located around the world. One or more data centers may be arranged in groups, where each group may serve a specific region of the world. In some embodiments, analyzing data from a first group that serves a first region (e.g., identifying trends in one or more video games) may be useful for a second group that serves a second region, where the analysis may include the allocation and / or distribution of video games across the (one or more) data centers of the second group. That is, the AI allocation and prediction layer may be shared across different data center groups of the game cloud system. As an illustration, analysis of data from a first group may indicate that a video game is gaining popularity in a first region (e.g., Europe), while at the same time a second region (e.g., North America including the United States) is relatively inactive because people in the second region are typically sleeping. The results of the data analysis associated with the trends of the video game in the first group associated with the first region may be applied to the second group associated with the second region, especially if the video game is also popular in the second region (e.g., North America). In particular, anticipating that the video game will also gain popularity in North America, the video game may be pre-emptively installed on the rack components and / or computing nodes of the second group associated with the second region.

[0032] According to one embodiment of the present disclosure, system 100 provides gameplay via game cloud system 200, where the game is executed remotely from the client device (e.g., thin client) of the corresponding user who is playing the game. System 100 may provide gameplay control to one or more users playing one or more games in a single-player mode or a multi-player mode via a cloud gaming network or game cloud system 200 over network 150. In some embodiments, the cloud gaming network or game cloud system 200 may include multiple virtual machines (VMs) running on a hypervisor of a host, where one or more virtual machines are configured to execute a game processor module using the hardware resources available to the hypervisor of the host. Network 150 may include one or more communication technologies. In some embodiments, network 150 may include 5th Generation (5G) network technology with an advanced wireless communication system.

[0033] In some embodiments, wireless technologies may be used to facilitate communication. Such technologies may include, for example, 5G wireless communication technology. 5G is the fifth generation of cellular network technology. A 5G network is a digital cellular network in which the service area covered by a provider is divided into small geographical areas called cells. Analog signals representing sound and images are digitized in a telephone, converted by an analog-to-digital converter, and transmitted as a bit stream. All 5G wireless devices in a cell communicate via radio waves with a local antenna array and a low-power transceiver (transmitter and receiver) in the cell over a frequency channel that is allocated by the transceiver from a pool of frequencies that are reused in other cells. The local antenna is connected to the telephone network and the Internet via a high-bandwidth fiber optic or wireless backhaul connection. As in other cell networks, a mobile device moving from one cell to another automatically transfers to the new cell. It should be understood that 5G networks are merely an exemplary type of communication network, and embodiments of the present disclosure may utilize earlier generations of wireless or wired communication, as well as newer generations of wired or wireless technologies after 5G.

[0034] As shown, system 100 including game cloud system 200 may provide access to a plurality of play applications. In particular, each of the client devices may be requesting access to a different play application from the cloud gaming network. For example, game cloud system 200 may provide one or more game servers that may be configured to execute on one or more hosts to execute one or more virtual machines corresponding to the play applications. For example, a game server may manage a virtual machine of a game processor that supports instantiating an instance of a play application for a user. Thus, multiple game processors of one or more game servers associated with multiple virtual machines are configured to execute multiple instances of one or more play applications associated with the play of multiple users. In this way, the backend server supports streaming media (e.g., video, audio, etc.) providing the play of multiple play applications to multiple corresponding users. That is, the game servers of game cloud system 200 are configured to stream data (e.g., rendered images and / or frames corresponding to the play) back to the corresponding client devices via network 150. In this way, computationally complex play applications may be executed at the backend server in response to controller inputs received and forwarded by the client devices. Each server is capable of rendering an image and / or frame and then encoding (e.g., compressing) and streaming it to the corresponding client device for display.

[0035] In an embodiment, each virtual machine defines a resource environment that can support an operating system on which a gaming application can run. In one embodiment, the virtual machine can be configured to emulate the hardware resource environment of a gaming console, where the operating system associated with the gaming console runs on the virtual machine to support the operation of game titles developed for the gaming console. In another embodiment, the operating system can be configured to emulate the native operating system environment of the gaming console, although the underlying virtual machine may or may not be configured to emulate the hardware of the gaming console. In another embodiment, a simulator application runs on top of the operating system of the virtual machine, and the simulator is configured to emulate the native operating system environment of the gaming console in order to support gaming applications and / or video games designed for the gaming console. It should be understood that various current and traditional gaming consoles can be emulated in a cloud-based gaming system. In this way, users can access game titles from different gaming consoles through the cloud gaming system.

[0036] In one embodiment, a cloud gaming network or game cloud system 200 is a distributed game server system and / or architecture. In particular, a distributed game engine that executes game logic is configured to correspond to a corresponding instance of a gaming application. Generally, the distributed game engine employs each of the functions of a game engine and distributes these functions for execution by a number of processing entities. Individual functions can be further distributed across one or more processing entities. The processing entities can be configured in different configurations, including physical hardware, and / or configured as virtual components or virtual machines, and / or configured as virtual containers, where a container is different from a virtual machine in that it virtualizes instances of gaming applications running on a virtualized operating system. The processing entities can utilize and / or rely on servers and their underlying hardware on one or more servers (compute nodes) of the cloud gaming network or game cloud system 200, where the servers can be located on one or more racks. The coordination, allocation, and management of the execution of these functions to various processing entities are performed by a distribution synchronization layer. In this way, the execution of these functions is controlled by the distribution synchronization layer to generate media (e.g., video frames, audio, etc.) for the gaming application in response to a player's controller input. The distribution synchronization layer is capable of efficiently executing these functions across distributed processing entities (e.g., through load balancing) such that critical game engine components / functions are distributed and reassembled for more efficient processing.

[0037] Figure 2A is a schematic diagram of a plurality of rack assemblies 210 including a plurality of compute nodes at a representative data center 200A of a game cloud system according to an embodiment of the present disclosure. For example, a plurality of data centers can be spread around the world, such as in North America, Europe, and Japan. Provided Figure 2Ais to illustrate an exemplary configuration of a corresponding rack assembly that includes a network storage device accessible by computing nodes located on the rack assembly.

[0038] Data center 200 includes a plurality of rack assemblies 220 (e.g., rack assemblies 220A through 220N). Each of the rack assemblies includes a corresponding network storage device and a plurality of computing bays. For example, representative rack assembly 220N includes network storage device 211 and a plurality of computing bays 230 (e.g., bays 230A through 230N), as well as a rack controller 250 configured for the internal and external network configurations of the components of rack assembly 220N. Other rack assemblies may be configured similarly, with or without modification. In particular, each of the computing bays includes one or more computing nodes that provide hardware resources (e.g., processors, CPUs, GPUs, etc.). For example, computing bay 230N of the plurality of computing bays 230 of rack assembly 220N is shown as including four computing nodes, but it should be understood that a rack assembly may include one or more computing nodes. Each rack assembly is coupled to a cluster switch that is configured to provide communication with a management server configured to manage the corresponding data center. For example, rack assembly 220N is coupled to cluster switch 240N. The cluster switch also provides communication to an external communication network (e.g., the Internet, etc.).

[0039] In particular, a cluster fabric (e.g., a cluster switch, etc.) provides communication between the rack assemblies, the distributed storage device 270, and the communication network in one or more clusters. In addition, the cluster fabric / switch also provides data center support services such as management, logging, monitoring, event generation, tracking, etc. The cluster fabric / switch may provide communication to an external communication network via a router system and a communication network (e.g., the Internet). In addition, the cluster fabric / switch provides communication to the storage device 270. Depending on design choices, the cluster of rack assemblies at a representative data center of a game cloud system may include one or more rack assemblies. In one embodiment, the cluster includes fifty rack assemblies. In other embodiments, the cluster may include more or fewer than fifty rack assemblies.

[0040] In a network configuration, each rack component provides high-speed access to a corresponding network storage device such as within the rack component. In one embodiment, such high-speed access is provided via a PCIe fabric that provides direct access between a compute node and the corresponding network storage device. In other embodiments, the high-speed access is provided via other network fabric topologies and / or networking protocols (including Ethernet, Infiniband, Remote Direct Memory Access (RDMA) over Converged Ethernet (RoCE), etc.). For example, in rack component 220N, the high-speed access is configured to provide a data path 201 between a particular compute node of a corresponding compute sled and the corresponding network storage device (e.g., storage device 211). In particular, the PCIe fabric is capable of providing a network storage bandwidth (e.g., access) of greater than 4 gigabytes per second (GB / s) per compute node (e.g., of the rack component) at Non-Volatile Memory Express (NVMe) latency. Additionally, a control path 202 is configured to convey control and / or management information between network storage device 210 and each of the compute nodes.

[0041] Streaming rack components are centered around compute nodes that run play applications, video games, and / or stream audio / video of a gaming session to one or more clients. Additionally, within each rack component, video game content may be stored on a storage server that provides a network storage device. The network storage device is equipped with a large amount of storage and high-speed networking to serve many compute nodes. In particular, a storage protocol (e.g., Network File System, etc.) will be implemented via the network fabric topology used to access the network storage device. Data may be stored in the network storage device using file storage, block storage, or object storage techniques that are partly based on the underlying storage protocol being implemented. For example, a PCIe fabric storage protocol may access block storage data from the network storage device. The network storage device may be configured for fast access but may not be large enough to store a complete video game title catalog. Thus, the distribution of video games onto the network storage device is performed based on the current demand for and predicted further demand for the video games. That is, video games are stored on the network storage device of the corresponding rack component to support the demand for these video games by users of the game cloud system. Thus, compute nodes within the rack component may handle play sessions of video games where the video games are stored on the network storage device for access and then subsequently loaded onto the compute nodes for execution. Under a licensing agreement, a video game may be loaded onto the network storage device of a rack component once and subsequent copies loaded onto one or more compute nodes under a multi-user single copy license; or multiple instances of a video game may be loaded onto the network storage device and then effectively transferred one-to-one to one or more compute nodes under a single-user single copy license.

[0042] The distributed storage device 260 provides centralized storage of user data, game data, and game packages, which can be accessed by the computing nodes of each of the clusters 255 of the rack assemblies. The distributed storage device 260 is scalable such that servers can be added or removed according to demand, and in which the storage device 260 is capable of redistributing and / or reconfiguring itself. Additionally, the distributed storage device is configured to provide load balancing such that data is stored in small chunks across multiple storage servers. The management of the distributed storage device can be performed through a user interface. In particular, the distributed storage device 250 can be configured to store a full set of video game titles (e.g., play applications) for the game cloud system 200 (e.g., a storage device of approximately 200 terabytes [TB] for storing a complete catalog of play applications). The distributed storage device 260 can also be configured to store user and game data for the users of the game cloud system 200. The user and game data can include user save data, pause / resume data for the corresponding play applications, download data, and other data (e.g., images, photos, etc.). For illustrative purposes, each user may require approximately 50 gigabytes (GB) of storage per user. In one embodiment, the distributed storage device 260 stores pause / resume information associated with the corresponding game titles (e.g., 8 gigabytes per game title).

[0043] As shown, the cloud management controller 210 of the data center 200 communicates with the ( Figure 1 shown) dispatcher 191 to allocate resources to the client device 110. In particular, the cloud management controller 210 can work with an instance 200’ of the game cloud system and in conjunction with the (e.g., Figure 1 of) initial instance 200 of the game cloud system to allocate resources to the client device 110. In some embodiments, the allocation is performed based on asset awareness, such as knowing what resources and bandwidth are needed and what resources and bandwidth are present at the data center. Thus, for illustration, the embodiments of the present disclosure are configured to allocate the client device 110A to a specific computing node 232A of the corresponding computing bay 231A of the corresponding rack assembly 220B.

[0044] In addition, the cloud management controller 210 is configured to collect and analyze data (e.g., internal data associated with the game cloud system, as well as external data including network data, etc.) to identify trends in the popularity of video games for allocating video games (e.g., to network storage devices, computing nodes, etc.) to rack components across one or more data centers of the game cloud system to meet the current and predicted (e.g., future) demand for playing these video games (e.g., during a play session). In particular, the cloud management controller 210 is configured to track and manage an inventory of all available cloud gaming servers (e.g., computing nodes), monitor the cloud gaming servers, and track the status of the cloud gaming servers (e.g., whether they are in use). In addition, the cloud management controller is configured to monitor and track video games stored on one or more network storage servers and / or computing nodes in each rack component. Additionally, the cloud management controller 210 can be configured to track play sessions implemented across the cloud gaming servers. In one embodiment, the game allocator 300 can be included within or communicate with the cloud management controller 210 to perform operations required to allocate video games to the network storage devices and / or computing nodes of the rack components of one or more data centers of the game cloud system, as further described below Figure 3 will be further described. In some embodiments, the game allocator 300 includes artificial intelligence for performing operations required to allocate video games to the network storage devices. In particular, the AI layer within the cloud management controller 210 and / or the game allocator 300 is configured to track the popularity of video game titles and is further configured to arrange an optimal distribution of video games across the rack components of one or more data centers of the game cloud system. That is, AI is used to determine the popularity of video games and, based on the determined popularity, determine the number of rack components for storing the video games.

[0045] Figure 2B is a schematic diagram of a plurality of rack components 221 including a plurality of computing nodes at representative data center 200B of a game cloud system according to one embodiment of the present disclosure, where each network storage device can be accessed by a corresponding array of computing nodes. Data center 200B is similar to data center 200A, where like-numbered components have similar functionality. However, data center 200B has rack components configured differently from those in data center 200A such that network storage is accessed by a single stream of computing nodes, as will be described below.

[0046] The data center 200 includes a plurality of rack assemblies 221 (e.g., rack assemblies 221A through 221N). Each of the rack assemblies includes one or more streaming arrays, where each streaming array includes a corresponding network storage device and a plurality of compute bays. For example, the representative rack assembly 221N includes streaming arrays 225A through 225N. In one implementation, the rack assembly 221N includes two streaming arrays, where each streaming array includes a network storage device and a plurality of compute bays. For example, the streaming array 225N includes a plurality of compute bays 235 for accessing the network storage device 211-N. In particular, each of the compute bays includes one or more compute nodes that provide hardware resources (e.g., processors, CPUs, GPUs, etc.). For example, the compute bay 235X of the streaming array 225N is shown as including four compute nodes, but it should be understood that the rack assembly may include one or more compute nodes.

[0047] Each rack assembly is coupled to a cluster switch that is configured to provide communication with a cloud management controller 210 that is configured to manage the corresponding data center, as described above. For example, the rack assembly 221N is coupled to the cluster switch 240N. The cluster switch also provides communication to other rack assemblies (e.g., via corresponding cluster switches), as well as communication to an external communication network (e.g., the Internet, etc.).

[0048] In one network configuration, each streaming array of a corresponding rack assembly provides high-speed access to a corresponding network storage device, as described above. This high-speed access is provided via a PCIe fabric that provides direct access between compute nodes and the corresponding network storage device. The compute nodes may run gaming applications and stream audio / video of a gaming session to one or more clients, where the corresponding network storage device (e.g., a storage server) stores the gaming applications, game data, and user data. For example, in the streaming array 225A of the rack assembly 221N, the high-speed access is configured to provide a data and control path 201A between a particular compute node of the corresponding compute bay and the corresponding network storage device (e.g., storage device 211A). Additionally, the path 201N is configured to convey control and / or management information between the network storage device 211N and each of the compute nodes in the streaming array 225N.

[0049] As described above, the cloud management controller 210 of the data center 200B communicates with the dispatcher 191 to allocate resources to the client device 110 to support the game cloud system 200' and / or 200. In some embodiments, the allocation is performed based on asset awareness, such as knowing what resources and bandwidth are needed and what resources and bandwidth are present at the data center. Thus, for illustration, embodiments of the present disclosure are configured to allocate the client device 110C to a specific computing node 232B of a corresponding computing cradle 231B of a corresponding streaming array of the rack assembly 221B.

[0050] In addition, the cloud management controller 210 and / or the game allocator 300 are configured to collect and analyze data (e.g., internal data associated with the game cloud system, and external data including network data, etc.) to identify trends in the popularity of video games for allocating video games (e.g., to network storage devices, computing nodes, etc.) across the rack assemblies of one or more data centers of the game cloud system to meet the current and predicted demand for playing these video games (e.g., during a gaming session). In some embodiments, artificial intelligence is implemented to analyze the data to identify trends in the popularity of video games for determining the appropriate allocation of video games to network storage devices of the rack assemblies in one or more data centers of the game cloud system. In particular, the AI layer within the cloud management controller 210 and / or the game allocator 300 is configured to track the popularity of video game titles and is further configured to arrange the optimal distribution of video games across the rack assemblies of one or more data centers of the game cloud system. That is, AI is used to determine the popularity of video games, and based on the determined popularity, the number of rack assemblies for storing the video games is determined.

[0051] Figure 2C FIG. is a schematic diagram of a data center 200C having a plurality of rack assemblies including a plurality of computing nodes configured for processing and storage according to one embodiment of the present disclosure. The data center 200C is similar to the data centers 200A and 200B, where like-numbered components have similar functionality. However, the data center 200C has a different rack assembly configuration such that the rack assemblies are configured with independent computing nodes, each of which includes dedicated storage (i.e., not dependent on network storage).

[0052] In particular, data center 200C includes a plurality of rack assemblies 222 (e.g., rack assemblies 222A through 222N). Each rack assembly includes a plurality of compute bays 237, where each compute bay includes one or more compute nodes that provide hardware resources. For example, compute bay 237X of rack assembly 222N is shown as including four compute nodes (including compute node 233), but it should be understood that a rack assembly may include one or more compute nodes. The compute nodes may run gaming applications and stream audio / video of a gaming session to one or more clients. More specifically, each compute node may be configured as a stand-alone system (e.g., a gaming console, etc.) that includes a central processing unit (CPU), a graphics processing unit (GPU), volatile memory (including random access memory (RAM) used during operation of the compute node (e.g., for quick access to frequently accessed data, programs, processes, etc.)), non-volatile memory (including local or system memory), etc. For illustrative purposes, compute node 233 of compute bay 237X of rack assembly 222N includes, among other things, CPU 271 and system memory 272 (e.g., non-volatile memory).

[0053] Each rack assembly is coupled to a cluster switch that is configured to provide communication with a cloud management controller 210 that is configured to manage the corresponding data center, as described above. For example, rack assembly 222N is coupled to cluster switch 240N. The cluster switch also provides communication to other rack assemblies (e.g., via the corresponding cluster switches), as well as communication to an external communication network (e.g., the Internet, etc.).

[0054] As described above, the cloud management controller 210 of the data center 200C communicates with the dispatcher 191 to allocate resources to the client 110 to support the game cloud system 200' and / or 200. For example, the client device 110C may be allocated to a specific computing node 232C of the corresponding computing bay 231C of the rack component 222B. In addition, the cloud management controller 210 and / or the game dispenser 300 are configured to collect and analyze data (e.g., internal and external data) to identify trends in the popularity of video games for allocating video games (e.g., to network storage devices, computing nodes, etc.) to the rack components of the (one or more) data centers of the game cloud system to meet the current and predicted demand for playing these video games. Artificial intelligence (e.g., an AI layer within the cloud management controller or game dispenser) may be implemented to analyze the data to identify game trends for determining the appropriate allocation of video games to network storage devices and / or computing nodes of the rack components of the (one or more) data centers of the game cloud system. That is, AI is used to determine the popularity of video games, and based on the determined popularity, the number of pieces and / or computing nodes for storing the video games in the rack components and / or computing nodes is determined.

[0055] Figure 3 is an illustration of a system configured to implement an artificial intelligence model according to an embodiment of the present disclosure, the artificial intelligence model being configured to allocate video games throughout a game cloud system to meet the current and future demands of users for playing current and new video games. In some embodiments of the present disclosure, the AI model 160 may be used to classify trends in identifying the popularity of video games, and the analyzer 140 may be used to analyze the trends to allocate video games to the rack components that may be located at one or more data centers of the game cloud system. For illustrative purposes, Figure 3 is described in the context of the game dispenser 300, but it should be understood that the operations performed within the Figure 3 system may be performed by the Figure 1 、 Figure 2A and Figure 2B cloud management system 210 and / or the game dispenser 300.

[0056] In particular, the game dispenser 300 is configured to provide an appropriate distribution of video games throughout the data centers of the game cloud system (e.g., on network storage devices and / or computing nodes) to meet the current and predicted demand of the users of the game cloud system for the video games in the play catalog, where the rack assemblies can be configured with network storage devices for access by the computing nodes, or can be configured with a number of individual computers and storage servers that do not rely on network storage devices. In some embodiments, the distribution of video games across one or more data centers, and more specifically, across the rack assemblies of the game cloud system, is configured to allow the game cloud system to provide the most efficient resource usage and / or the best resource usage, thereby ensuring the fastest (e.g., real-time) access to the video games requested by the users of the game cloud system.

[0057] In particular, the capture engine 340 of the game dispenser 300 can be configured to capture game cloud network data, network data, and other data to provide inputs to the AI model 160 for classifying trends in the popularity of video games. That is, the capture engine 340 is configured to capture and / or receive as input any data that can be used to determine how to distribute video games across the rack assemblies of the game cloud network. A selected portion of the captured data can be analyzed to determine the appropriate distribution of video games across the rack assemblies of the game cloud system.

[0058] For example, the capture engine 340 is configured to capture data related to the services provided by the game cloud system 200 that includes one or more data centers, such as play sessions of video games provided to users. The data can include metrics that define video game usage (e.g., play session history of one or more video games), the system state of the computing nodes in the game cloud system, the state of the network storage devices (including video game storage of each network storage device of the rack assemblies that support the data centers of the game cloud system). Still other data can also be collected that is related to helping determine the appropriate distribution of video games to the network storage devices to meet the current and predicted demand for the video games (e.g., based on trends in the popularity of these video games). Additionally, the data center tracker 343 is configured to track the data captured from the game cloud system for determining the appropriate distribution of video games to meet the current and predicted demand for these video games.

[0059] In addition, the capture engine 340 is configured to collect telemetry data 315 from various sources 310a - 310n. As shown, the telemetry data 315 stream is captured. For example, the telemetry data may include network data such as social network platform data (e.g., Twitter, Facebook, etc.), social media data, website data, media data, audio data, voice data, text message data, messaging data, other forms of digital data suitable for capture, and other data received via the network 150 (e.g., the Internet). For example, the network data can be captured by web scraping techniques for automatically collecting publicly available information accessed via any communication network (e.g., the Internet). By way of illustration, the captured network data can be formatted using text - based markup languages. In some implementations, the web scraping techniques implement application programming interfaces (APIs) for communicating with websites and / or social network platforms or any service accessible via the network. In other implementations, the capture engine 340 is configured to capture non - digital data. For example, the data can be parsed by machines and / or humans, converted to digital format, and then input into the capture engine 340.

[0060] The relevant features from the captured data (e.g., telemetry data 315 and data 305 from the game cloud system) identified by the feature extractor 345A are provided as input to the deep learning / machine learning engine 190. The feature extractor 345A is configured to parse the captured data and identify and / or extract features therefrom, where these features are related to allocating video games to the network storage devices of the game cloud system. For example, the features may include parameters, time, video games, game states, play sessions, wording, symbols, relevant information related to video game popularity, etc. In another embodiment, the extraction of features can be performed by the deep / machine learning engine 190. Specifically, the feature extractor 345B is configured to parse the captured data and identify and / or extract features therefrom. That is, the feature extractor 345B also has the ability to learn features that can be used to allocate video games to the network storage devices of the game cloud system.

[0061] As shown, the deep / machine learning engine 190 is configured to implement (e.g., in the implementation phase) classifying the trend of the popularity of video games based on the input data set (e.g., the extracted features), but can also be configured to be trained in another phase (e.g., the training phase). In one embodiment, the AI model 160 is a machine learning model configured to apply machine learning to classify the trend of the popularity of video games. In another embodiment, the AI learning model is a deep learning model configured to apply deep learning to classify the trend of the popularity of video games, where machine learning is a subclass of artificial intelligence, and deep learning is a subclass of machine learning.

[0062] For illustrative purposes only, according to one embodiment of the present disclosure, the deep / machine learning engine 190 may be configured to implement a neural network for the AI model 160. Generally, a neural network represents a network of interconnected nodes that respond to inputs (e.g., the extracted features) and generate outputs (e.g., a classification of a trend indicating the popularity of a video game). In one implementation, the AI neural network includes a hierarchy of nodes. For example, there may be an input layer of nodes, an output layer of nodes, and an intermediate or hidden layer of nodes. The input nodes are interconnected to the hidden nodes in the hidden layer, and the hidden nodes are interconnected to the output nodes. The interconnections between the nodes may have numerical weights that can be used to link multiple nodes together between the input and the output, such as when defining the rules of the AI model 160.

[0063] Specifically, the AI model 160 is configured to apply rules (e.g., the popularity of a video game, the trending popularity of a video game, etc.) that define the relationship between features and outputs, where the features may be defined within one or more nodes located at one or more hierarchical levels of the AI model 160. The rules link (as defined by the nodes) the features between the layers of the hierarchy such that a given input data set results in a specific output (e.g., the trend classification 350) of the AI model 160 (e.g., a trend indicating the current and / or predicted popularity of a video game). For example, the rules may link one or more features or nodes (e.g., in the hierarchical levels) throughout the AI model 160 between the input and the output (e.g., using relationship parameters including weights) such that one or more features form rules learned through the training of the AI model 160. That is, each feature may be linked to one or more features at other layers, where one or more relationship parameters (e.g., weights) define the interconnections between the features at other layers of the AI model 160. Thus, each rule or set of rules corresponds to the classified output. For example, the output 350 obtained according to the rules of the AI model 160 may predict a specific trend of a video game, the trend indicating the current and / or predicted popularity of the video game.

[0064] Thus, during the implementation phase, the AI model 160 is used to predict and / or classify the trends of the popularity of one or more video games based on the configuration of the AI model 160. That is, for a given set of extracted features provided as input to the AI model 160, the AI model may output the trend classification 350 of the corresponding video game.

[0065] Additionally, the analyzer 140 can use the output from the AI model 160 (e.g., the trend classification 350) to determine an action plan to take for a given set of inputs (e.g., the extracted features). For example, the action can include a distribution pattern for network storage devices of the rack components of one or more data centers of the game cloud system to which video games in the play catalog are assigned.

[0066] Specifically, the analyzer 140 can include one or more functions performed on the trend classification 350 for discovering, confirming, and / or predicting trends in the popularity of existing or new video games. In one implementation, the analyzer 140 is configured to perform trend analysis 361. The analysis can be performed to identify relevant information related to the corresponding video game, such as the release time of the video game, the game title, any series relationships, the developer, the type of users who play the video game, the loyalty of the users, the average duration of a play session, demographic information, etc. This information can help determine the allocation of the video game in the game cloud system to meet the demand for the video game in the current and near future (e.g., within the next 2 - 6 hours).

[0067] Furthermore, the analyzer 140 can be configured to perform trend prediction and / or matching 363. For example, the trend classification 350 of a video game can indicate the current popularity of the video game. Further analysis of the trend classification and / or other relevant data (e.g., the information provided from performing trend analysis 361) can predict the persistence of the popularity, or predict whether the popularity will increase in the near future or distant future, or predict whether the popularity will decrease in the near future or distant future, or predict whether the popularity will remain stable in the near future or distant future. For example, if an important national event is scheduled later that night (e.g., a sports event, a speech, etc.), it can be predicted that the popularity of a video game and other video games will decrease at least in the hours leading up to the event as users log off their play sessions to attend the national event (e.g., watch the sports event, the speech, etc.). Additionally, the trend classification and other data of a first video game can be very similar to those of a second video game. Therefore, the predicted popularity of the first video game over time, and / or its close alignment with the actual popularity of the second video game over time can be inferred. All this information can help determine the allocation of video games in the game cloud system to meet the demand for video games in the current and near future (e.g., within the next 2 - 6 hours) or distant future (e.g., within the next few days or weeks or months, etc.).

[0068] Additionally, the analyzer 140 may be configured to perform a historical trend analysis 365. For example, the historical trend analysis may be used to predict future video game usage based on historical usage patterns. In this case, the popularity of new release versions of subsequent versions of a video game may follow or closely align with the actual popularity of previous versions of the video game. For example, in a very popular video game series, the popularity of subsequent release versions will match or increase compared to the popularity of previous release versions. This information may help determine the distribution of the video game throughout the game cloud system to meet the demand for the video game in the current and near future (e.g., within the next 2 - 6 hours) or in the distant future (e.g., within the next few days or weeks or months, etc.).

[0069] Furthermore, the analyzer 140 may be configured to perform additional responses (e.g., actions) using the action generator 370. In particular, the analyzer 140 may be configured to perform pattern generation 367 to determine a distribution pattern for allocating video games in the game cloud system. For example, the analyzer may determine the distribution pattern based on one or more of the trend classification 350, the information obtained from the trend analysis 361, the information obtained from the trend prediction and / or matching 363, and the information obtained from the historical trend analysis 365.

[0070] In one embodiment, the action generator 370 includes a rack distributor 373 that is configured to allocate video games to network storage devices of rack components in one or more data centers of the game cloud system. That is, based on the pattern determined by the pattern generation 367, the cloud management controller may send instructions to load the corresponding video game onto the network storage devices of one or more corresponding rack components, where the rack components may be located in one or more data centers of the game cloud system. Thus, based on the trend indicating the current and / or popularity of the corresponding video game, the distribution of the video game may be allocated to meet the current and / or anticipated demand for playing the video game. This video game allocation may be performed for each video game having a corresponding trend classification output from the AI model 160.

[0071] In another embodiment, the action generator 370 includes a video game node preloader 375 that is configured to load a corresponding video game onto one or more computing nodes such that the computing nodes can be easily dispatched to any new user requesting to play the video game. Preloading the video game onto the nodes is performed based on a trend classification indicating the current and / or predicted popularity of the video game, which may correspond to the current and / or predicted demand of users to play the video game. By preloading the video game onto the computing nodes, a new user does not have to wait for the video game to be loaded onto the computing node assigned to the user. As video games become increasingly complex, this loading time can be significant (e.g., over 10 or 20 minutes) in order to download all of the necessary software packages of the video game onto the computing node. In this way, preloading allows the user to immediately play the video game without waiting for the game to load.

[0072] After having described in detail Figure 1 , Figure 2A , Figure 2B and Figure 3 the various modules of system 100, data centers 200A and 200B, and game dispenser 300, flowchart 400 discloses a method for distributing video games throughout a game cloud system to meet the current and future demands of users to play current and new video games, according to one embodiment of the present disclosure. In particular, flowchart 400 can be implemented to provide an appropriate distribution of video games throughout the data centers (e.g., on network storage devices) of the game cloud system based on the popularity of the video games. For example, the popularity of a video game can be determined by monitoring the usage of the video game, the system state of the computing nodes in the game cloud system, predicting current and future video game usage based on historical usage patterns, and using artificial intelligence to analyze data captured from the game cloud system and network data (e.g., scraping data from social media, websites, various forms of media, etc.) to discover and / or predict trends in the popularity of existing or new video games. Flowchart 400 can be implemented within the previously described backend server (e.g., within game cloud system 200 in cloud management controller 210 and / or game dispenser 300 in combination with a depth and / or machine learning engine 190).

[0073] At 410, the method includes: tracking the state of a plurality of computing nodes in a data center, including monitoring the computing nodes. The computing nodes are distributed across a plurality of rack components, where the rack components can be configured within one or more data centers of the game cloud system to provide access to the video games in a video game catalog. For example, the game cloud system can be configured to execute video games on the computing nodes to provide a gaming session to users playing those video games.

[0074] In one embodiment, tracking includes tracking the usage (e.g., active or inactive) of each of a plurality of computing nodes. For example, the information may include whether the corresponding computing node is active or inactive, whether a video game is loaded onto the corresponding computing node, and whether a play session is being actively executed to support a play session with a user assigned to the corresponding computing node. Additionally, tracking includes tracking an inventory of cloud gaming servers or computing nodes, including the number of computing nodes in the game cloud system, the number of active computing nodes actively supporting play sessions, and the number of available computing nodes available for assignment to new users requesting to play the corresponding video game. Tracking may include tracking the current and / or historical (e.g., past) usage of the computing nodes.

[0075] Additionally, tracking may include tracking the distribution of a plurality of network storage devices of a rack component across one or more rack components of a game cloud system for a video game directory. Since network storage devices are limited, each network storage device (e.g., of the corresponding rack component) may not be able to store the complete video game directory, especially in cases where rapid access to the network storage device is emphasized (i.e., rapid storage requires an increase in the cost of the network storage device, which may limit the size of the network storage device). Additionally, not every video game in the video game directory may be loaded onto the network storage device. For example, for older video games, the demand for play sessions may be low and there may be no demand at a particular moment, such that no storage servers load the video game, or a very small number of storage servers (e.g., 1 - 3) load the video game. On the other hand, very popular video games in the video game directory may be loaded onto each network storage device in one or more data centers of the game cloud system.

[0076] At 420, the method includes: tracking the popularity of a plurality of video games in a video game directory supported by a game cloud system. More specifically, a popularity valuation may be tracked, where the valuation indicates the popularity of the corresponding video game. In some implementations, the popularity valuation of a video game may correspond to the demand for a play session by users requesting to play the video game. That is, as the popularity valuation increases (i.e., indicating an increasing popularity of the video game), the number of play sessions requested by users of the game cloud system increases correspondingly. In one embodiment, the popularity valuation is tracked by tracking play sessions of the corresponding video game within the game cloud system to determine the current and / or predicted popularity, where the play sessions are handled by corresponding computing nodes of the game cloud system.

[0077] In other embodiments, as previously described, tracking popularity may include: collecting and / or tracking information obtained from a game cloud system (e.g., play sessions) and / or network data, where the network data includes data captured from social networking platforms, websites, media sites, media channels, etc. Other non-digital forms of data may be captured and / or tracked.

[0078] In some embodiments, tracking popularity includes: determining trends indicative of the current and / or predicted popularity of a video game. For illustrative purposes, based on the captured and / or tracked information (e.g., computing nodes across one or more data centers of a game cloud system tracking one or more play sessions of a video game), trends indicative of popularity (e.g., current popularity or predicted popularity in the near or distant future) may be determined. In one embodiment, a trend may correspond to a popularity valuation of a video game. For example, a trend may indicate an increase in the popularity valuation of a video game. The trend may be determined based on one or more play sessions of the tracked video game, where the popularity valuation may correspond to a growth in demand for play sessions of the video game. As previously described, trends may also be determined based on other captured and tracked information. Additionally, a trend may indicate a decrease in the popularity valuation of a video game, which may correspond to a decrease in demand for play sessions of the video game.

[0079] In some embodiments of the present disclosure, artificial intelligence is implemented to track and / or determine the popularity of video games within a play catalog. Based on the determined popularity, further applications of rules and / or AI may be implemented to determine and / or arrange an optimal distribution of rack components (e.g., in corresponding network storage devices) of a video game across one or more data centers of a game cloud system to meet the current and / or predicted demand for these video games.

[0080] As previously described, AI may be used to determine and / or track the popularity of video games in a video game catalog supported by a game cloud system. For example, game dispenser 300 and / or cloud management system 210 may be configured to use AI to determine and / or track the popularity of video games. The results may be used to take further actions (e.g., determined by additional applications of rules or AI) to arrange an optimal distribution of rack components of these video games across one or more data centers of a game cloud system based on the popularity of the video games. For example, for a popular video game, the number of rack components loaded for access by computing nodes supporting play sessions of the video game may be increased. On the other hand, if a video game becomes less popular, the number of rack components loading the video game may be decreased.

[0081] In particular, data from a game cloud system (e.g., a play session of a video game) and / or telemetry data captured over a network (e.g., data scraped from multiple sites, social network platforms, etc. accessible via one or more networks (e.g., using an API)) can be captured and parsed to extract relevant features. These features are input into a deep learning and / or machine learning engine implementing an AI model that is configured to classify trends in the popularity of a corresponding video game and each video game in a video game catalog supported by the corresponding game cloud system. That is, the AI model is configured to classify trends in video games based on the features (e.g., the AI model provides trends as an output). The trends can indicate the current and / or predicted popularity of a video game. More specifically, the trends indicate a popularity valuation of the video game. For example, the trend can indicate that the popularity of the video game (and the corresponding popularity valuation) is increasing, such that the popularity valuation corresponds to the growing demand for play sessions of the video game in the game cloud system. Additionally, the trend can indicate that the popularity of the video game (and the corresponding popularity valuation) is decreasing, such that the popularity valuation corresponds to the decreasing demand for play sessions of the video game in the game cloud system.

[0082] At 430, the method includes: determining a distribution of one or more video games among multiple rack components across multiple video games based on multiple popularity valuations of the multiple video games. In particular, based on the determined trends indicating the popularity of the video games, an allocation of the video games to network storage devices of rack components in one or more data centers of the game cloud system is performed to meet the current and predicted demands of users for one or more video games. For example, for a corresponding video game, based on the determined trend (e.g., determined by the AI), when the trend indicates an increase in popularity, the allocation can indicate an increase in the number of network storage servers and corresponding rack components configured to load and / or store the video game, or when the trend indicates a decrease in popularity, the allocation can indicate a decrease in the number of network storage servers and corresponding rack components configured to load and / or store the video game.

[0083] Thus, a distribution pattern indicating the allocation of video games to network storage devices of a game cloud system can indicate that each rack component in one or more data centers should be loaded with the most popular video games (e.g., the currently most popular video games), and only one or two rack components should be loaded with less popular video games (e.g., older video games). As previously mentioned, the entire video game catalog is stored in a distributed storage device separate from the network storage devices of the rack components. Still other video games can also be loaded onto a selected and / or determined number of rack components based on their popularity estimates. Thus, video games for which there is a demand or for which demand is anticipated will be loaded onto the network storage devices, while the remaining video games are stored in the distributed storage device for download to the network storage devices when the demand for these video games grows.

[0084] At 440, the method includes: storing one or more video games based on a determined distribution of one or more of the plurality of video games in a game catalog. In this way, the correct allocation of video games ensures that the game cloud system can support current and future demands for play sessions of current and / or new video games. For example, the proper allocation of popular video games ensures that each user requesting the video game will be dispatched to a compute node that executes a play session of the video game. Additionally, the proper allocation of less popular video games can prevent over-allocation of resources to the video game while still ensuring that a user requesting the video game can be dispatched to a compute node that executes a play session established for the video game. In this way, by not over-provisioning less popular video games, computing resources (e.g., network storage devices) can still be available for handling other more popular video games.

[0085] In one embodiment, the classified and / or identified trends are executed, along with subsequent video game allocation, to ensure that if a little-known video game title suddenly becomes popular (i.e., becomes increasingly popular within a very short period of time), then the video game title is loaded onto additional rack components in the data center to meet the huge increase in demand from users to play the video game title. This may require de-emphasizing some video games by removing them from the rack components so that the number of rack components supporting the corresponding de-emphasized video games can be reduced. The recovered network storage device space can be used to load video games predicted to become popular or identified as becoming popular.

[0086] In another implementation, artificial intelligence can be implemented to predict the growth of demand for video games. For example, active play sessions of a video game can be tracked across multiple computing nodes of a game cloud system to determine trends indicating the popularity of the video game. This trend can also predict high demand for play sessions of the video game in a future time period. In this way, the video game can be loaded across an increasing number of rack components to support the high demand of users who want to play the video game.

[0087] In another implementation, the popularity of a video game can be determined and / or matched with the popularity of a related video game. That is, the demand for a second video game can be inferred based on the demand for a first video game. For example, the second video game can be a newer version of a video game series. Based on tracking the previous popularity, it is expected that the second video game (new release) will perform as well as or even better than the most recently released video game or the first video game within the series (e.g., be as popular or even more popular). More specifically, across multiple computing nodes in a data center, a first history of a first popularity estimate of a first video game is tracked during at least a portion of the life cycle of the first video game. A first trend is determined for the first video game, where the first trend can indicate that the first popularity estimate of the first video game is increasing during a first time period within a portion of the life cycle of the first video game. A first number of rack components can be pre-determined or newly determined based on the first trend as shown in the first history and configured to store the first video game. Thereafter, a second trend can be determined, which indicates that a second popularity estimate of a second video game will be similar to the first trend of the first video game during a second time period. For example, the two trends can have matching parameters implemented by an AI model, or the first video game and the second video game can be part of a video game series, where it can be inferred that subsequent release versions will be as popular or even more popular than previous release versions. In this way, an appropriate number of rack components (e.g., a second number of rack components) for storing the second video game can be determined based on the second trend, where the second number of rack components is roughly similar to the first number used to support play sessions of the first video game.

[0088] In yet another embodiment, AI is implemented to identify trends based on the capture and tracking of game cloud data and / or network data, etc., where the trends indicate that the popularity valuation of a video game is increasing, and the trends can be determined by the implementation of AI or rules. To meet user demands and enable users to access video games in real time (i.e., play a video game immediately or soon after requesting a play session of the video game), the video game can be loaded onto the network storage device of the rack component (i.e., enable the compute nodes of the rack component to access the video game at any time), and the video game can also be pre-loaded onto the compute nodes of the rack component. In this way, a user requesting a play session can be immediately dispatched to a compute node on which the video game has been pre-loaded. Thus, the user does not need to wait for the loading time of the video game from the network storage device to the compute node, which may take several minutes or even longer. It should be understood that the video game can be pre-loaded onto one or more compute nodes of the rack component, and can also be loaded onto the network storage devices of multiple rack components and then pre-loaded onto multiple compute nodes of multiple rack components to meet the anticipated demand for the video game.

[0089] Figure 5 Illustrates components of an exemplary device 500 that can be used to perform aspects of the various embodiments of the present disclosure. For example, Figure 5 Illustrates an exemplary hardware system according to an embodiment of the present disclosure, the system being suitable for providing the distribution of video games throughout the data center of a game cloud system to meet the current and future demands of users for playing current and new video games. This block diagram illustrates a device 500, which can be incorporated into or can be a personal computer, a server computer, a gaming console, a mobile device, or other digital devices, each of which is suitable for practicing embodiments of the present invention. The device 500 includes a central processing unit (CPU) 502 for running software applications and optionally an operating system. The CPU 502 can be composed of one or more homogeneous or heterogeneous processing cores.

[0090] According to various embodiments, the CPU 502 is one or more general-purpose microprocessors having one or more processing cores. Additional embodiments can be implemented using one or more CPUs having a microprocessor architecture that is particularly suitable for highly parallel and computationally intensive applications such as media and interactive entertainment applications, which are configured for graphics processing during game execution.

[0091] The memory 504 stores application programs and data for use by the CPU 502 and the GPU 516. The storage device 506 provides non-volatile storage and other computer-readable media for application programs and data, and may include fixed disk drives, removable disk drives, flash memory devices, and CD-ROM, DVD-ROM, Blu-ray, HD-DVD, or other optical storage devices, as well as signal transmission and storage media. The user input device 508 conveys user input from one or more users to the device 500. Examples of user input devices may include keyboards, mice, joysticks, touchpads, touchscreens, static or video recorders / cameras, and / or microphones. The network interface 509 allows the device 500 to communicate with other computer systems via an electronic communication network, and may include wired or wireless communication over local area networks and wide area networks (such as the Internet). The audio processor 512 is adapted to generate analog or digital audio output from instructions and / or data provided by the CPU 502, the memory 504, and / or the storage device 506. Components of the device 500 (including the CPU 502, the graphics subsystem including the GPU 516, the memory 504, the data storage device 506, the user input device 508, the network interface 509, and the audio processor 512) are connected by one or more data buses 522.

[0092] The graphics subsystem 514 is further connected to the data bus 522 and components of the device 500. The graphics subsystem 514 includes at least one graphics processing unit (GPU) 516 and graphics memory 518. The graphics memory 518 includes display memory (e.g., a frame buffer) for storing pixel data for each pixel of an output image. The graphics memory 518 may be integrated with the GPU 516 in the same device, connected to the GPU 516 as a separate device, and / or implemented within the memory 504. Pixel data may be provided directly from the CPU 502 to the graphics memory 518. Alternatively, the CPU 502 may provide data and / or instructions defining a desired output image to the GPU 516, and the GPU 516 generates pixel data for one or more output images based on the data and / or instructions. The data and / or instructions defining the desired output image may be stored in the memory 504 and / or the graphics memory 518. In one embodiment, the GPU 516 includes 3D rendering capabilities for generating pixel data for an output image from instructions and data defining the geometry, lighting, shading, textures, motion, and / or camera parameters of a scene. The GPU 516 may also include one or more programmable execution units capable of executing shader programs.

[0093] The graphics subsystem 514 periodically outputs pixel data of an image from the graphics memory 518 for display on the display device 510 or projection by a projection system (not shown). The display device 510 can be any device capable of displaying visual information in response to signals from the device 500, including CRT, LCD, plasma, and OLED displays. The device 500 can provide, for example, analog or digital signals to the display device 510.

[0094] In other embodiments, the graphics subsystem 514 includes multiple GPU devices that are combined to perform graphics processing for a single application executing on a corresponding CPU. For example, multiple GPUs can perform multi-GPU rendering of geometry for an application by pretesting geometry for potentially interleaved screen regions prior to rendering objects of an image frame. In other examples, multiple GPUs can perform alternate forms of frame rendering, where in consecutive frame cycles, GPU 1 renders the first frame, and GPU2 renders the second frame, and so on until the last GPU is reached, and then the initial GPU renders the next video frame (e.g., if there are only two GPUs, GPU 1 renders the third frame). That is, the GPUs rotate when rendering frames. The rendering operations can overlap, where GPU 2 can start rendering the second frame before GPU 1 finishes rendering the first frame. In another implementation, different shader operations in the rendering and / or graphics pipeline can be dispatched to multiple GPU devices. The primary GPU is performing the primary rendering and composition. For example, in a group including three GPUs, the primary GPU 1 can perform the primary rendering (e.g., the first shader operation) and the composition of the outputs from the secondary GPU 2 and the secondary GPU 3, where the secondary GPU 2 can perform a second shader (e.g., fluid effects such as a river) operation, and the secondary GPU 3 can perform a third shader (e.g., particle smoke) operation, where the primary GPU 1 composes the results from each of GPU 1, GPU2, and GPU 3. In this way, different GPUs can be dispatched to perform different shader operations (e.g., flag waving, wind, smoke generation, fire, etc.) to render a video frame. In yet another embodiment, each of the three GPUs can be dispatched to different objects and / or portions of a scene corresponding to a video frame. In the above embodiments and implementations, these operations can be performed in the same frame cycle (simultaneously in parallel) or in different frame cycles (sequentially in parallel).

[0095] Accordingly, the present disclosure describes methods and systems for distributing video games throughout a game cloud system to meet the current and future needs of users to play current and new video games.

[0096] It should be understood that the various embodiments defined herein can be combined or assembled into specific embodiments using the various features disclosed herein. Thus, the provided examples are merely some possible examples and are not limited to the various implementations that may be possible by combining various elements to define more implementations. In some examples, some implementations may include fewer elements without departing from the spirit of the disclosed or equivalent implementations.

[0097] Embodiments of the present disclosure can be practiced with a variety of computer system configurations including handheld devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. Embodiments of the present disclosure can also be practiced in a distributed computing environment where tasks are performed by remote processing devices linked through a wired or wireless network.

[0098] In view of the above embodiments, it should be understood that embodiments of the present disclosure can employ various computer-implemented operations involving data stored in a computer system. These operations are those that require physical manipulation of physical quantities. Any of the operations described herein that form part of an embodiment of the present disclosure are useful machine operations. Embodiments of the present disclosure also relate to devices or apparatuses for performing these operations. The apparatus may be specially constructed for the required purpose, or the apparatus may be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines can 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.

[0099] The present disclosure can also be implemented as computer-readable code on a computer-readable medium. A computer-readable medium is any data storage device that can store data that can then be read by a computer system. Examples of computer-readable media include hard disk drives, network-attached storage devices (NAS), read-only memory, random access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. The computer-readable medium can include computer-readable tangible media distributed over network-coupled computer systems so that the computer-readable code is stored and executed in a distributed manner.

[0100] Although the method operations are described in a specific order, it should be understood that other housekeeping operations can be performed between the operations, or the operations can be adjusted so that they occur at slightly different times, or they can be distributed in a system that allows the processing operations to occur at various intervals associated with the processing, as long as the processing that covers the operations is performed in the desired manner.

[0101] Although the foregoing disclosure has been described in considerable detail for purposes of clear understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the embodiments of the present invention are to be considered illustrative rather than restrictive, and the embodiments of this disclosure are not limited to the details given herein but may be modified within the scope and equivalents of the appended claims.

Claims

1. A method, comprising: Tracking the status of a plurality of computing nodes in a data center, wherein the plurality of computing nodes are distributed across a plurality of rack assemblies; Tracking a plurality of popularity valuations of a plurality of video games based on network data collected from outside the data center, wherein each of the plurality of popularity valuations being tracked indicates an interest level of the general population in a corresponding video game, and wherein the network data includes social network platform data accessed using at least one application programming interface; Determining a distribution of one or more of the plurality of video games across the plurality of rack assemblies based on the plurality of popularity valuations of the plurality of video games; And Storing one or more of the plurality of video games from the plurality of video games across the plurality of rack assemblies based on the determined distribution of the one or more video games; Wherein tracking the plurality of popularity valuations includes: Receiving telemetry data from a plurality of sites accessible via one or more networks; Extracting a plurality of features from the telemetry data; Classifying trends of a video game based on the plurality of features, wherein the trends indicate increasing popularity valuations of the video game, and wherein the popularity valuation corresponds to a demand for a plurality of play sessions of the video game; and Increasing the number of rack assemblies in the plurality of rack assemblies for storing the video game based on the trends.

2. The method of claim 1, wherein tracking the status of the plurality of computing nodes includes: Tracking the usage of each computing node in the plurality of computing nodes; And Tracking the distribution of the plurality of video games across a plurality of network storage devices in the plurality of rack assemblies.

3. The method of claim 1, further comprising: Using artificial intelligence to determine the trends associated with the popularity valuations of the video game; And Determining the number of the rack assemblies for storing the video game based on the trends.

4. The method of claim 1, wherein tracking the plurality of popularity valuations includes: Tracking one or more play sessions of each video game in the plurality of video games across the plurality of computing nodes in the data center.

5. The method of claim 4, further comprising: Tracking one or more play sessions of the video game across the plurality of computing nodes in the data center; And Identifying the trends based on the one or more play sessions of the video game being tracked, based on the one or more play sessions of the video game being tracked, the trends indicating that the popularity valuation of the video game is increasing, and wherein the popularity valuation corresponds to the demand for the plurality of play sessions of the video game.

6. The method of claim 4, further comprising: Tracking a plurality of play sessions of the video game across the plurality of computing nodes in the data center; Predicting periods of high demand for the plurality of play sessions of the video game; And During the time period, load the video game across the number of rack components among the plurality of rack components to support the high demand.

7. The method of claim 1, further comprising: Tracking a first history of a first popularity estimate of a first video game across the plurality of computing nodes in the data center during a portion of the life cycle of the first video game; Determining a first trend in the first history, the first trend indicating that the first popularity estimate of the first video game is increasing during a first time period within the portion of the life cycle of the first video game; Determining a first number of rack components for storing the first video game based on the first trend; Predicting a second trend, the second trend indicating that a second popularity estimate of a second video game will be similar to the first trend of the first video game during a second time period; And Loading a second number of rack components for storing the second video game based on the second trend, wherein the second number of rack components is generally similar to the first number of rack components.

8. The method of claim 1, further comprising: Identifying a trend based on tracking the plurality of popularity estimates of the plurality of video games, the trend indicating that the popularity estimate of the video game is increasing; And Preloading the video game to one or more of the plurality of computing nodes based on the trend for a new play session.

9. A non-transitory computer-readable medium storing a computer program for performing a method, the computer-readable medium comprising: Program instructions for tracking the status of a plurality of computing nodes in a data center, wherein the plurality of computing nodes are distributed across a plurality of rack components; Program instructions for tracking a plurality of popularity estimates of a plurality of video games based on network data collected from outside the data center, wherein each of the plurality of popularity estimates being tracked indicates an interest level of the general population in a corresponding video game, wherein the network data includes social network platform data accessed using at least one application programming interface; Program instructions for determining a distribution of one or more of the plurality of video games across the plurality of rack components based on the plurality of popularity estimates of the plurality of video games; And Program instructions for storing one or more of the plurality of video games from the plurality of video games across the plurality of rack components based on the determined distribution of the one or more video games; Wherein the program instructions for tracking a plurality of popularity estimates include: Program instructions for receiving telemetry data from a plurality of sites accessible via one or more networks; Program instructions for extracting a plurality of features from the telemetry data; Program instructions for classifying a trend of a video game based on the plurality of features, the trend indicating an increasing popularity estimate of the video game, wherein the popularity estimate corresponds to a demand for a plurality of play sessions of the video game; and Program instructions for increasing the number of rack components for storing the video game among the plurality of rack components based on the trend.

10. The non-transitory computer-readable medium of claim 9, wherein the program instructions for tracking the state of the plurality of computing nodes comprise: Program instructions for tracking the usage of each of the plurality of computing nodes; And Program instructions for tracking the distribution of the plurality of video games across the plurality of network storage devices of the plurality of rack components.

11. The non-transitory computer-readable medium of claim 9, further comprising: Program instructions for using artificial intelligence to determine the trend associated with the popularity estimate of the video game; And Program instructions for determining the number of the rack components for storing the video game based on the trend.

12. The non-transitory computer-readable medium of claim 9, further comprising: Program instructions for tracking one or more play sessions of the video game across the plurality of computing nodes in the data center; And Program instructions for identifying the trend based on the one or more play sessions of the video game being tracked, based on the one or more play sessions of the video game being tracked, the trend indicating that the popularity estimate of the video game is increasing, wherein the popularity estimate corresponds to the demand for the plurality of play sessions of the video game.

13. The non-transitory computer-readable medium of claim 9, further comprising: Program instructions for tracking a first history of a first popularity estimate of a first video game across the plurality of computing nodes in the data center during a portion of the life cycle of the first video game; Program instructions for determining a first trend in the first history, the first trend indicating that the first popularity estimate of the first video game is increasing during a first time period within the portion of the life cycle of the first video game; Program instructions for determining a first number of rack components for storing the first video game based on the first trend; Program instructions for predicting a second trend, the second trend indicating that a second popularity estimate of a second video game will be similar to the first trend of the first video game during a second time period; And Program instructions for loading a second number of rack components for storing the second video game based on the second trend, wherein the second number of rack components is substantially similar to the first number of rack components.

14. A computer system, comprising: A processor; A memory coupled to the processor and having instructions stored therein that, if executed by the computer system, cause the computer system to perform a method that includes: Tracking the state of a plurality of computing nodes in a data center, wherein the plurality of computing nodes are distributed across a plurality of rack components; Tracking multiple popularity valuations of multiple video games based on network data collected outside the data center, where each of the tracked multiple popularity valuations indicates the level of interest of the general population in a corresponding video game, and where the network data includes social network platform data accessed using at least one application programming interface; Determining the distribution of one or more of the multiple video games across the multiple rack components based on the multiple popularity valuations of the multiple video games; and Storing one or more of the video games from the multiple video games across the multiple rack components based on the determined distribution of the one or more video games; where tracking multiple popularity valuations includes: Receiving telemetry data from multiple sites accessible via one or more networks; Extracting multiple features from the telemetry data; Classifying trends of video games based on the multiple features, where the trends indicate increasing popularity valuations of the video games, and where the popularity valuations correspond to the demand for multiple play sessions of the video games; and Increasing the number of rack components in the multiple rack components for storing the video game based on the trends.

15. The computer system of claim 14, wherein in the method, tracking the status of the multiple computing nodes includes: Tracking the usage of each computing node in the multiple computing nodes; And Tracking the distribution of the multiple video games across multiple network storage devices of the multiple rack components.

16. The computer system of claim 14, the method includes: Tracking one or more play sessions of the video game across the multiple computing nodes in the data center; And Identifying the trends based on the one or more play sessions of the tracked video game, based on the one or more play sessions of the tracked video game, the trends indicate that the popularity valuation of the video game is increasing, and where the popularity valuation corresponds to the demand for the multiple play sessions of the video game.

17. The computer system of claim 1, the method includes: Identifying the trends based on tracking the multiple popularity valuations of the multiple video games, the trends indicate that the popularity valuation of the video game is increasing; And Preloading the video game into one or more of the multiple computing nodes for new play sessions based on the trends.

Citation Information

Patent Citations

  • Game browsing

    CN104470600A

  • Data center management of multimode servers

    CN106470742A