Scalable data center platform for cloud gaming and metaverse
A method for cloud gaming including receiving a request to instantiate an instance of a video game for a game play of a player. The method including establishing a cloud based game engine for executing game logic of the video game in the instance of the video game. The method including assembling microservices for the cloud based game engine to instantiate the instance of the video game. The method including establishing communication between the cloud based game engine and each of the microservices over a communication fabric. The method including executing the game logic in the instance of the video game using the cloud based game engine based on controller input associated with the game play. The method including monitoring demand for computing resources while executing the instance of the video game. The method including adjusting an allocation of computing resources for the set of microservices based on the demand.
1 . A method for cloud gaming, comprising:
receiving a request to instantiate an instance of a video game for a game play of a player;
establishing a cloud based game engine for executing game logic of the video game in the instance of the video game;
assembling a set of microservices located across one or more servers for the cloud based game engine to instantiate the instance of the video game, wherein the set of microservices is provided an allocation of computing resources;
establishing communication between the cloud based game engine and each microservice in the set of microservices over one or more communication fabrics;
executing the game logic in the instance of the video game using the cloud based game engine based on controller input associated with the game play of the player;
monitoring real-time demand for computing resources in the allocation of computing resources while performing the executing the game logic in the instance of the video game for the game play of the player;
adjusting the set of microservices located across the one or more servers and the allocation of computing resources for the adjusted set of microservices based on detecting a change of a game state indicative of the real-time demand changing in response to a scene in the game play; and
adjusting communication between the cloud based game engine and each microservice in the adjusted set of microservices over the one or more communication fabrics.
2 . The method of claim 1 , wherein the set of microservices for the cloud based game engine and the allocation of computing resources for the set of microservices dynamically expands and contracts based on the demand for the computing resources that is determined.
3 . The method of claim 1 , wherein the communication between each of the cloud based game engine and the set of microservices is performed using an application programming interface (API).
4 . The method of claim 1 , wherein the monitoring demand includes:
determining that a first microservice providing a first service requires more computing resources, wherein the first microservice has a first allocation of computing resources; and
adding a first computing resource to the first allocation of computing resources.
5 . The method of claim 4 ,
wherein the first computing resource includes a second microservice providing the first service,
wherein the second microservice is provided a second allocation of computing resources.
6 . The method of claim 1 , wherein the monitoring demand includes:
determining that a first microservice providing a first service requires fewer computing resources, wherein the first microservice has a first allocation of computing resources; and
removing at least one computing resource from the first allocation of computing resources.
7 . The method of claim 6 , further comprising:
removing all the computing resource from the first allocation of computing resources; and
removing the first microservice from the set of microservices.
8 . The method of claim 1 , wherein the monitoring demand includes:
determining while performing the executing the game logic in the instance of the video game that the game logic requires a new service not provided by the set of microservices; and
adding a first microservice providing the new service to the set of microservices,
wherein the first microservice has first allocation of computing resources.
9 . The method of claim 1 ,
wherein the set of microservices for the cloud based game engine used for executing the game logic in the instance of the video game includes at least a first microservice providing a central processing unit (CPU) functionality, a second microservice providing a graphics processing unit (GPU) functionality, and a third microservice providing memory.
10 . A non-transitory computer-readable medium storing a computer program for performing a method, the computer-readable medium comprising:
program instructions for receiving a request to instantiate an instance of a video game for a game play of a player;
program instructions for establishing a cloud based game engine for executing game logic of the video game in the instance of the video game;
program instructions for assembling a set of microservices located across one or more servers for the cloud based game engine to instantiate the instance of the video game, wherein the set of microservices is provided an allocation of computing resources;
program instructions for establishing communication between the cloud based game engine and each microservice in the set of microservices over one or more communication fabric;
program instructions for executing the game logic in the instance of the video game using the cloud based game engine based on controller input associated with the game play of the player;
program instructions for monitoring real-time demand for computing resources in the allocation of computing resources while performing the executing the game logic in the instance of the video game for the game play of the player;
program instructions for adjusting the set of microservices located across the one or more servers and the allocation of computing resources for the adjusted set of microservices based on detecting a change of a game state indicative of the real-time demand changing in response to a scene in the game play; and
program instructions for adjusting communication between the cloud based game engine and each microservice in the adjusted set of microservices over the one or more communication fabrics.
11 . The non-transitory computer-readable medium of claim 10 ,
wherein in the method the set of microservices for the cloud based game engine and the allocation of computing resources for the set of microservices dynamically expands and contracts based on the demand for the computing resources that is determined.
12 . The non-transitory computer-readable medium of claim 10 , wherein the program instructions for monitoring demand includes:
program instructions for determining that a first microservice providing a first service requires more computing resources, wherein the first microservice has a first allocation of computing resources; and
program instructions for adding a first computing resource to the first allocation of computing resources.
13 . The non-transitory computer-readable medium of claim 10 , wherein the program instructions for monitoring demand includes:
program instructions for determining that a first microservice providing a first service requires fewer computing resources, wherein the first microservice has a first allocation of computing resources; and
program instructions for removing at least one computing resource from the first allocation of computing resources.
14 . The non-transitory computer-readable medium of claim 13 , further comprising:
program instructions for removing all the computing resource from the first allocation of computing resources; and
program instructions for removing the first microservice from the set of microservices.
15 . The non-transitory computer-readable medium of claim 10 , wherein the program instructions for monitoring demand includes:
program instructions for determining while performing the executing the game logic in the instance of the video game that the game logic requires a new service not provided by the set of microservices; and
program instructions for adding a first microservice providing the new service to the set of microservices,
wherein the first microservice has first allocation of computing resources.
16 . A computer system comprising:
a processor;
memory coupled to the processor and having stored therein instructions that, if executed by the computer system, cause the computer system to execute a method, comprising:
receiving a request to instantiate an instance of a video game for a game play of a player;
establishing a cloud based game engine for executing game logic of the video game in the instance of the video game;
assembling a set of microservices located across one or more servers for the cloud based game engine to instantiate the instance of the video game, wherein the set of microservices is provided an allocation of computing resources;
establishing communication between the cloud based game engine and each microservice in the set of microservices over one or more communication fabric;
executing the game logic in the instance of the video game using the cloud based game engine based on controller input associated with the game play of the player;
monitoring real-time demand for computing resources in the allocation of computing resources while performing the executing the game logic in the instance of the video game for the game play of the player;
adjusting the set of microservices located across the one or more servers and the allocation of computing resources for the adjusted set of microservices based on detecting a change of a game state indicative of the real-time demand changing in response to a scene in the game play; and
adjusting communication between the cloud based game engine and each microservice in the adjusted set of microservices over the one or more communication fabrics.
17 . The computer system of claim 16 ,
wherein in the method the set of microservices for the cloud based game engine and the allocation of computing resources for the set of microservices dynamically expands and contracts based on the demand for the computing resources that is determined.
18 . The computer system of claim 16 , wherein in the method the monitoring demand includes:
determining that a first microservice providing a first service requires more computing resources, wherein the first microservice has a first allocation of computing resources; and
adding a first computing resource to the first allocation of computing resources.
19 . The computer system of claim 16 , wherein in the method the monitoring demand includes:
determining that a first microservice providing a first service requires less computing resources, wherein the first microservice has a first allocation of computing resources; and
removing at least one computing resource from the first allocation of computing resources.
20 . The computer system of claim 16 , wherein in the method the monitoring demand includes:
determining while performing the executing the game logic in the instance of the video game that the game logic requires a new service not provided by the set of microservices; and
adding a first microservice providing the new service to the set of microservices,
wherein the first microservice has first allocation of computing resources.