Cloud game running method, system and cloud game server
By using system user accounts for system-level isolation in cloud gaming servers, the problem of exclusive access to cloud gaming server resources is solved, enabling multiple cloud games to run simultaneously and be controlled independently, thus improving resource utilization.
Patent Information
- Application Number
- CN202111524342.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-14
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2041-12-14
AI Technical Summary
Existing cloud gaming servers cannot run multiple games for multiple users simultaneously, resulting in wasted system resources because the resources of the target server cannot be distinguished and collected, leading to exclusive access.
By using different system user accounts on the cloud gaming server, different cloud games can run simultaneously on the same server. The system-level isolation technology ensures that each cloud game's remote session environment has an independent desktop, audio device, and context environment, enabling differentiated acquisition of controls and audio/video.
It enables the simultaneous operation of multiple cloud games, avoids waste of system resources, improves server resource utilization, and supports independent control and audio/video capture of multiple cloud games.
Smart Images

Figure CN114210050B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of cloud computing technology, and more specifically, to a cloud gaming operation method, system, and cloud gaming server. Background Technology
[0002] Cloud gaming is an online gaming technology based on cloud computing. In cloud gaming, the game runs on a cloud server, which then compresses and encodes the rendered game visuals before transmitting them to the user over the network. This means that the user's gaming device doesn't need high-end hardware resources like processors and graphics cards; only basic audio and video decompression capabilities are required. Therefore, cloud gaming eliminates the user's reliance on hardware, significantly reducing the equipment costs for players compared to traditional gaming models. For servers, it only requires improving server performance without developing new mainframes; for users, it offers higher image quality without the need to purchase high-performance computers.
[0003] The typical process for running a cloud gaming scenario is as follows: the user launches the cloud game, a target server is assigned to the game launched by the user through a background scheduling service, the corresponding game is launched on the target server, and then the user's control events are transmitted to the target server. The target server inputs the user's control events into the system in real time, and the game will change its content accordingly based on the system's control input. Finally, the desktop video and audio are captured and transmitted to the user's terminal for display through the cloud, thus achieving the scenario of user interaction with the cloud game.
[0004] However, the inventors' research into existing cloud gaming implementations revealed that, as described above, the target server cannot run multiple games for multiple users simultaneously because multiple games share desktop and audio devices, making it impossible to differentiate between them. Therefore, games launched in the cloud monopolize the entire target server's system resources, resulting in a waste of those resources. Summary of the Invention
[0005] Based on the above, in a first aspect, embodiments of this application provide a cloud gaming operation method, the method comprising:
[0006] When a launch request for a target cloud game is received from a game user, it is determined whether the cloud game server has the capability to run the target cloud game.
[0007] When it is determined that the cloud gaming server has the capability to run the target cloud game, a system user account is activated from the cloud gaming server, and the target cloud game is run based on the system user account.
[0008] Based on one possible implementation of the first aspect, when it is determined that the cloud gaming server has the capability to run the target cloud game, a system user account is activated from the cloud gaming server, and the target cloud game is run based on this system user account, including:
[0009] When the cloud gaming server has the capability to run the target cloud game, a system user account to be activated is generated for the game user.
[0010] Enable the system user account generated above and establish a remote desktop connection between the cloud game server and the game user's game terminal based on the system user account;
[0011] The target cloud game is run in the session environment corresponding to the remote desktop connection.
[0012] Based on one possible implementation of the first aspect, before running the target cloud game, the method further includes:
[0013] For each cloud game in the cloud gaming server, multiple system user accounts are created in advance based on the amount of operating resources required by each cloud game and the total amount of operating resources of the cloud gaming server.
[0014] When it is determined that the cloud gaming server has the capability to run the target cloud game, a system user account is activated from the cloud gaming server, and the target cloud game is run based on this system user account, including:
[0015] When the cloud gaming server has the capability to run the target cloud game, one of the multiple pre-created system user accounts corresponding to the target cloud game is launched according to the target cloud game.
[0016] A remote desktop connection is established between the cloud game server and the game user's game terminal based on the system user account that is started;
[0017] The target cloud game is run in the session environment corresponding to the remote desktop connection.
[0018] Based on one possible implementation of the first aspect, determining whether the cloud gaming server has the capability to run the target cloud game includes:
[0019] The system determines whether there are any unactivated system user accounts in the cloud gaming server. If there are unactivated system user accounts in the cloud gaming server, the system determines that the cloud gaming server has the ability to run the target cloud game; otherwise, if there are no unactivated system user accounts in the cloud gaming server, the system determines that the cloud gaming server does not have the ability to run the target cloud game.
[0020] Based on one possible implementation of the first aspect, determining whether the cloud gaming server has the capability to run the target cloud game includes:
[0021] Obtain the current remaining amount of operating resources of the cloud gaming server and the amount of operating resources required by the target cloud game;
[0022] The cloud gaming server is judged to have the ability to run the target cloud game based on the current remaining amount of operating resources of the cloud gaming server and the amount of operating resources required by the target cloud game.
[0023] The runtime resources include GPU resources.
[0024] Based on one possible implementation of the first aspect, before running the target cloud game, the method further includes:
[0025] Load and run a pre-configured remote desktop environment configuration file to configure the operating system of the cloud gaming server for remote desktop environment, enabling the operating system to support multiple remote desktop connections and enable remote GPU encoding and remote rendering functions of the remote desktop environment, so that different cloud games can run in session environments corresponding to different system user accounts.
[0026] Based on one possible implementation of the first aspect, the method further includes:
[0027] After running the target cloud game, permissions are configured for the system user account, enabling the cloud game to collect the environmental information required for cloud gaming in the corresponding session environment.
[0028] Based on one possible implementation of the first aspect, when it is determined that the cloud gaming server has the capability to run the target cloud game, a system user account is activated from the cloud gaming server, and the target cloud game is run based on the system user account, further comprising:
[0029] After the target cloud game is run based on the system user account, a session service is enabled for the system user account to keep the remote desktop connection between the cloud game server and the game user's game terminal active.
[0030] Secondly, embodiments of this application also provide a cloud gaming operating system, applied to a cloud gaming server, the cloud gaming operating system comprising:
[0031] The request module is used to receive a launch request for a target cloud game sent by a game user, and upon receiving the launch request, to determine whether the cloud game server has the capability to run the target cloud game; and
[0032] The running module is used to, when it is determined that the cloud gaming server has the capability to run the target cloud game, activate a system user account from the cloud gaming server and run the target cloud game based on the system user account.
[0033] Thirdly, embodiments of this application also provide a cloud gaming server, including a machine-readable storage medium and one or more processors, wherein the machine-readable storage medium stores machine-executable instructions, and the machine-executable instructions, when executed by the one or more processors, implement the cloud gaming operation method described above.
[0034] Based on the above content of the embodiments of this application, compared with the prior art, the cloud gaming operation method, system, and cloud gaming server provided in the embodiments of this application achieve a solution where different cloud games run simultaneously on a cloud gaming server by using different system user accounts to run cloud games requested by different game terminals. This provides system-level isolation for remote desktop sessions corresponding to multiple different cloud games, thereby enabling each cloud game's corresponding remote session environment (remote desktop environment) to have independent desktops, remote audio devices, independent system objects, and context environments. In this way, different remote desktop environments can independently capture audio and video, and independently receive system control input, allowing multiple single-instance cloud games running simultaneously to achieve differentiated capture of controls, audio, and video, thus achieving the goal of "one machine, multiple instances" at the software level. This solves the problem of system resource waste caused by a single game monopolizing the entire target server's system resources in the prior art. Attached Figure Description
[0035] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of this application and should not be regarded as a limitation of the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0036] Figure 1 This is a schematic diagram of an application scenario for cloud gaming provided in an embodiment of this application.
[0037] Figure 2 This is a flowchart illustrating the cloud gaming operation method provided in the embodiments of this application.
[0038] Figure 3 yes Figure 2 One of the flowcharts for the sub-steps in step S200.
[0039] Figure 4 yes Figure 2 The second flowchart of the sub-steps in step S200.
[0040] Figure 5 This is an exemplary schematic diagram of a cloud gaming server provided in this application running different cloud games through different system user accounts.
[0041] Figure 6 This is a schematic diagram of a cloud gaming server provided in an embodiment of this application for implementing the above-described cloud gaming operation method.
[0042] Figure 7 This is a schematic diagram of the functional modules of the cloud gaming operating system provided in the embodiments of this application. Detailed Implementation
[0043] To make the objectives, technical solutions, and advantages of the embodiments of the present application more clear, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the accompanying drawings of the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Generally, the components of the embodiments of the present application described and shown in the drawings herein can be arranged and designed in various different configurations.
[0044] Therefore, the following detailed description of the embodiments of this application provided in the accompanying drawings is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of the application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.
[0045] It should be noted that similar labels and letters in the following figures indicate similar items. Therefore, once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures.
[0046] In the description of this application, the terms "first," "second," "third," etc., are used only to distinguish descriptions and should not be construed as indicating or implying relative importance.
[0047] It should also be noted that, in the description of this application, unless otherwise expressly specified or limited, the terms "disposed," "installed," "connected," and "connected" should be understood in a broad sense. For example, they can refer to fixed connections, detachable connections, or integral connections; they can refer to mechanical connections or electrical connections; they can refer to direct connections or indirect connections through an intermediate medium; and they can refer to internal connections between two components. Those skilled in the art will understand the specific meanings of the above terms in this application based on the specific circumstances.
[0048] Before providing a detailed description of the technical solutions provided in the embodiments of this application, in order to better understand the technical solutions in the embodiments of this application, the relevant technical terms involved in the embodiments of this application will be explained first.
[0049] Cloud computing is an internet-based computing method that allows shared hardware and software resources and information to be provided to computers and other devices on demand. The network that provides these resources is called the "cloud".
[0050] Cloud gaming: A gaming method where the game client runs in the cloud and interacts with the user through network commands and audio / video streams.
[0051] Remote Desktop Protocol (RDP): A multi-channel protocol that allows a user's computer (user terminal or local computer) to connect to a computer providing terminal services (server terminal or remote computer) remotely.
[0052] Resource Manager (ResourceMgr): This is a scheduling and allocation service that determines whether to allocate a game runtime environment based on available resources. It can be understood as a running thread.
[0053] System users: Users who log in and set up their operating system (such as Windows operating system). They can be added in the system control panel.
[0054] Resource monitoring program (Console program): A program or thread used to monitor computer resources such as CPU and GPU in real time and report resource information to the resource manager.
[0055] Next, before introducing the cloud gaming operation method provided in the embodiments of this application, the operating environment used to implement the cloud gaming operation method will be described. For example... Figure 1The diagram illustrates an application scenario of cloud gaming provided in this application embodiment. This application scenario includes a cloud gaming server 100 and a game terminal 200. The cloud gaming server 100 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN (Content Delivery Network) services, and big data and artificial intelligence platforms.
[0056] The game terminal 200 can access the cloud game server 100 via the network 300 to use the cloud game services provided by the cloud game server 100, for example, by remotely connecting to the cloud game server 100 to start a cloud game for the corresponding user to play.
[0057] The game terminal 200 may be, but is not limited to, devices such as laptops, personal computers, smart TVs, smartphones, and tablets. To use the cloud gaming service provided by the cloud gaming server 100, the game terminal 200 can download the corresponding game client from the cloud gaming server 100 via network 300, allowing game users to access the cloud gaming server 100 for cloud gaming. The network 300 may be a wired network or a wireless network; this application does not impose any restrictions.
[0058] like Figure 2 The diagram shown is a flowchart illustrating a cloud gaming operation method provided in an embodiment of this application. In this embodiment, the cloud gaming operation method can be executed and implemented by the cloud gaming server. It should be understood that the order of some steps in the cloud gaming operation method provided in this embodiment can be interchanged according to actual needs during actual implementation, or some steps can be omitted or deleted. This embodiment does not specifically limit this.
[0059] The following is combined with Figure 2 The steps of the cloud gaming operation method in this embodiment are described in detail by way of examples. For example... Figure 2 As shown, the method may include the relevant content described in steps S100 and S200 below.
[0060] Step S100: When a launch request for a target cloud game is received from a game user, it is determined whether the cloud game server 100 has the capability to run the target cloud game.
[0061] In this embodiment, the game user can establish an RDP connection (remote desktop connection) with the cloud gaming server 100 via the game terminal 200 based on the Remote Desktop Protocol (RDP). After establishing the RDP connection, the cloud gaming server 100 can provide a remote desktop for the game terminal 200. This remote desktop can display various usable cloud game icons. The game user can initiate a launch request for the cloud game by interacting with these icons using input / output devices such as a keyboard, mouse, or game controller. Of course, the above process is merely an exemplary method for initiating a cloud game launch request. In other embodiments, the game user can also initiate the cloud game launch request in different ways; this embodiment does not specifically limit this method.
[0062] Furthermore, in one possible implementation of this embodiment, the remaining operating resources of the cloud gaming server 100 and the operating resources required by the target cloud game can be obtained first. Then, based on the remaining operating resources of the cloud gaming server 100 and the operating resources required by the target cloud game, it can be determined whether the cloud gaming server 100 has the capability to run the target cloud game. For example, this can be achieved through methods such as... Figure 5 The console program shown retrieves the current remaining runtime resources of the cloud gaming server 100. If the current remaining runtime resources of the cloud gaming server 100 are greater than the runtime resources required by the target cloud game, then the cloud gaming server is determined to have the capability to run the target cloud game. Conversely, if the current remaining runtime resources of the cloud gaming server 100 are not greater than the runtime resources required by the target cloud game, then the cloud gaming server is determined not to have the capability to run the target cloud game.
[0063] Step S200: When it is determined that the cloud gaming server 100 has the ability to run the target cloud game, a system user account is activated from the cloud gaming server 100, and the target cloud game is run based on the system user account.
[0064] In one possible implementation of this embodiment, such as Figure 3 As shown, based on step S200, it can be achieved through the following sub-steps S201-S203.
[0065] Sub-step S201: When the cloud gaming server 100 has the capability to run the target cloud game, a system user account to be enabled is generated for the game user.
[0066] Sub-step S202: Enable the system user account generated above and establish a remote desktop connection between the cloud game server 100 and the game user's game terminal 200 based on the system user account.
[0067] Sub-step S203: Run the target cloud game in the session environment corresponding to the remote desktop connection, thereby providing cloud gaming services to the game user.
[0068] Furthermore, in another possible implementation of this embodiment, before the cloud gaming server 100 provides cloud gaming services to game users, multiple system user accounts can be pre-created for each cloud game that can run on the cloud gaming server 100, based on the amount of runtime resources required by each cloud game and the total runtime resources of the cloud gaming server 100. For example, the main runtime resource required to run a cloud game is a graph processing unit (GPU) resource; the following example uses GPU resources. Assuming the total GPU resources of the cloud gaming server 100 are 100%, and the cloud gaming server 100 can provide cloud gaming services for game A, game B, and game C to game users respectively, where game A requires 40% of the GPU resources, game B requires 30% of the GPU resources, and game C requires 20% of the GPU resources, then in this embodiment, three system user accounts can be pre-created on the cloud gaming server 100, for example, user account A, user account B, and user account C respectively; then, a correspondence is established between each of the created system user accounts and one cloud game in the cloud gaming server 100, for example, user account A is associated with game A, user account B is associated with game B, and user account C is associated with game C.
[0069] Based on the above, such as Figure 4 As shown, in another possible implementation, step S200 can be implemented by the following sub-steps S211-S213, as illustrated below.
[0070] Step S211: When the cloud gaming server 100 has the ability to run the target cloud game, it starts one of the multiple pre-created system user accounts corresponding to the target cloud game.
[0071] Step S212: Establish a remote desktop connection between the cloud game server 100 and the game user's game terminal 200 based on the started system user account.
[0072] Step S213: Run the target cloud game in the session environment corresponding to the remote desktop connection, thereby providing cloud game service to the game user and running the target cloud game.
[0073] Furthermore, after running the target cloud game, permissions can be configured for the system user account (e.g., elevating account permissions to administrator permissions), enabling the cloud game to collect the environmental information required for cloud gaming in the session environment, such as multimedia information including audio and video information.
[0074] As an example, please refer to Figure 5 This is an exemplary schematic diagram of the cloud gaming server 100 provided in this application embodiment running different cloud games through different system user accounts.
[0075] First, during the operation of the cloud gaming server 100, a resource monitoring program (e.g., a console program or a thread for monitoring remaining runtime resources) monitors the currently available remaining runtime resources of the cloud gaming server 100 in real time and reports this information to the resource manager (ResourceMgr) of the cloud gaming server 100. Since the main resource for game operation is GPU resources, it is assumed here that the runtime resources are GPU resources, and the description will be based on GPU resources. Of course, it should be understood that the runtime resources may also include other computing resources, such as CPU resources and bandwidth resources, but generally, the computing resources that affect the simultaneous operation of multiple cloud games are mainly GPU resources. Therefore, this embodiment uses GPU resources as a representative example for illustrative description.
[0076] Then, when Player A sends a request to the cloud gaming server 100 to launch Game A, the ResourceMgr allocates the environment for system user account 1 (User1) to run Game A based on the available GPU resources of the cloud gaming server 100. Here, it is assumed that User 1 consumes 40% of the GPU resources when running Game A. At this time, the console program will report the GPU resource usage to the ResourceMgr in real time.
[0077] Next, when Player B sends a request to the cloud gaming server 100 to start Game B, assuming Game B requires 30% of the GPU resources, and since Game A still has 60% of the GPU resources remaining after running, ResourceMgr can schedule the system user account 2 corresponding to Game B to run Game B. At this point, the console program reports that the entire system of the cloud gaming server 100 still has 30% of the GPU resources remaining.
[0078] Finally, when Player C sends a request to cloud gaming server 100 to launch Game C, if the GPU resource consumption required by Game C is less than 30%, ResourceMgr can schedule the corresponding Game C to run using system user account 3 (User 3). If the GPU resource consumption required by Game C is greater than 30%, Game C needs to be scheduled to run on another cloud computing server. Alternatively, if User 1, User 2, and User 3 have already been scheduled, when cloud gaming server 100 receives another player's game launch request, it needs to schedule the corresponding target cloud gaming service to run on another cloud computing server with remaining resources.
[0079] Furthermore, in the scheme based on pre-creating multiple system user accounts, in another possible implementation of step S100, the ability of the cloud gaming server 100 to run the target cloud game can be determined by whether there are any unactivated system user accounts in the cloud gaming server 100. For example, if there are unactivated system user accounts in the cloud gaming server 100, it is determined that the cloud gaming server 100 has the ability to run the target cloud game; conversely, if there are no unactivated system user accounts in the cloud gaming server 100, it is determined that the cloud gaming server 100 does not have the ability to run the target cloud game.
[0080] In summary, this application embodiment utilizes a cloud gaming server 100 to establish remote desktop connections between different system user accounts and different game terminals, enabling the simultaneous operation of different cloud games on the cloud gaming server 100. This achieves system-level isolation for remote desktop sessions corresponding to multiple different cloud games. Each cloud game's corresponding remote session environment (remote desktop environment) has independent desktop, remote audio devices, independent system objects, and contextual environments, allowing different remote desktop environments to independently capture audio and video, and independently receive system control input. Thus, multiple single-instance cloud games running simultaneously can achieve differentiated capture of controls, audio, and video, thereby achieving "one machine, multiple instances" at the software level and avoiding the waste of system resources caused by a single game monopolizing the entire target server's system resources.
[0081] Furthermore, the remote session multi-instance solution implemented in this paper can flexibly allocate different combination schemes according to business needs, so as to make full use of server resources and avoid resource waste. For a few games that are restricted from being launched in the remote desktop environment (such as League of Legends), they can still be allocated to the remote control session (console session) for operation by adjusting resource allocation strategies.
[0082] Furthermore, the inventors researched and analyzed several possible cloud gaming implementation schemes and discovered that, in order to achieve the goal of "one machine, multiple instances," one possible implementation scheme could employ virtual machine (VM) technology. This involves utilizing virtual graphics card partitioning technology provided by graphics card manufacturers to partition the various hardware resources (including GPU resources) of the cloud gaming server 100 into independent virtual machines. Different virtual machines would then run different cloud games to achieve the "one machine, multiple instances" goal. However, this implementation scheme has two drawbacks. First, adapting to virtual graphics card partitioning technology requires enterprise-grade graphics cards, leading to increased hardware costs. Second, partitioning hardware resources across different virtual machines, especially with excessively large partitioning granularity (typically 1 / 4 or 1 / 2), still results in resource surplus and waste.
[0083] Furthermore, the use of virtual machine technology cannot achieve resource sharing in cloud gaming to accelerate game performance. For example, when the number of cloud games running on cloud gaming server 100 is small—for instance, if cloud gaming server 100 includes three virtual machines (VMs)—only a subset of the VMs (e.g., one VM) are running cloud games (e.g., game A and game B). Each running cloud game can only utilize the hardware resources corresponding to its own VM and cannot use the idle hardware resources of other VMs for acceleration. In contrast, the system-level software isolation of different cloud games implemented through system user accounts in this application embodiment allows resource sharing between different cloud games, provided that the runtime resources of cloud gaming server 100 meet the requirements. When the number of cloud games running on cloud gaming server 100 is small, the running cloud games can fully utilize the idle resources of cloud gaming server 100 for acceleration, ensuring "one machine, multiple instances" while achieving full utilization of server resources. Therefore, the solution provided in this application embodiment has significant advantages over the VM implementation solution.
[0084] Furthermore, in this embodiment, the operating system used by the cloud gaming server 100 is preferably a Windows system that supports simultaneous remote access by multiple system users. Of course, in other embodiments, other operating systems that support simultaneous remote access by multiple system users may also be used.
[0085] In this embodiment, taking the Windows system as an example, in order to support multiple users accessing remotely at the same time, the cloud game running method provided in this embodiment further includes the following system configuration steps before running the target cloud game, which are described exemplarily as follows.
[0086] Specifically, a pre-configured remote desktop environment configuration file can be loaded and run to configure the operating system of the cloud gaming server 100 for remote desktop environments. This enables the operating system to support multiple remote desktop connections and allows for remote GPU encoding and remote rendering. In one possible implementation, the remote desktop environment configuration file may include multiple configuration scripts, such as Python or PowerShell scripts containing configuration items and corresponding parameters (e.g., remote desktop connection items and their corresponding connection parameters, remote refresh frame rate (e.g., 60 FPS)) for configuring the remote desktop environment. The purpose of running the remote desktop environment configuration file is to enable the operating system of the cloud gaming server 100 to allow multiple remote desktop connections (rdpsession) to run simultaneously, and to enable the remote desktop environment to support remote GPU encoding and remote rendering, allowing different cloud games to run in session environments corresponding to different system user accounts.
[0087] Furthermore, to ensure that cloud games running in different system user accounts' session environments via remote desktop sessions remain active and function normally, in this embodiment, in step S200, after the target cloud game is run based on the system user account, a session service can be further enabled for the system user account. This keeps the remote desktop connection between the cloud game server 100 and the game user's game terminal 200 established based on the system user account active. This session service can be automatically closed after the game user exits the running cloud game. Thus, in scenarios where multiple cloud games run simultaneously on the cloud game server 100, a session service can be enabled for each cloud game, keeping the remote desktop connection corresponding to each cloud game active, so that each cloud game can function normally based on the cloud game server.
[0088] Please see Figure 6 As shown, Figure 6 This is a schematic diagram of a cloud gaming server 100 provided in this application embodiment for implementing the above-described cloud gaming operation method. Specifically, the cloud gaming server 100 may include one or more processors 110, a machine-readable storage medium 120, and a cloud gaming operating system 130. The processors 110 and the machine-readable storage medium 120 are communicatively connected via a system bus. The machine-readable storage medium 120 stores machine-executable instructions, and the processors 110 implement the cloud gaming operation method described above by reading and executing the machine-executable instructions in the machine-readable storage medium 120.
[0089] The machine-readable storage medium 120 may be, but is not limited to, random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc. The machine-readable storage medium 120 is used to store a program, which the processor 110 executes upon receiving an execution instruction.
[0090] The processor 110 may be an integrated circuit chip with signal processing capabilities. The processor described above can be, but is not limited to, a general-purpose processor, including a central processing unit (CPU), a network processor (NP), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), etc.
[0091] Please refer to Figure 7 This is a schematic diagram of the functional modules of the cloud gaming operating system 130. In this embodiment, the cloud gaming operating system 130 may include one or more software functional modules running on the cloud gaming server. These software functional modules may be stored in the machine-readable storage medium 120 in the form of computer programs, so that when these software functional modules are called and executed by the processor 130, they can implement the cloud gaming operating method described in this application embodiment.
[0092] In detail, the cloud gaming operating system 130 includes a request module 131 and an operating module 132.
[0093] The request module 131 is used to receive a launch request for a target cloud game sent by a game user, and upon receiving the launch request, to determine whether the cloud game server has the capability to run the target cloud game. In this embodiment, the request module 131 is used to execute step S100 in the above method embodiment. For details about the request module 131, please refer to the above description of the specific content of step S100, which will not be repeated here.
[0094] The running module 132 is used to, when determining that the cloud gaming server has the capability to run the target cloud game, activate a system user account from the cloud gaming server and run the target cloud game based on the system user account. The running module 132 can, by calling, such as... Figure 5 The resource manager (resourceMgr) shown implements the scheduling of system user accounts to run the target cloud game. In this embodiment, the running module 132 is used to execute step S200 in the above method embodiment. For details about the running module 132, please refer to the above description of the specific content of step S200, which will not be repeated here.
[0095] In addition, further reading Figure 7 The cloud gaming operating system 130 may further include a configuration module 133. Before running the target cloud game, the configuration module 133 loads and runs a pre-set remote desktop environment configuration file to configure the operating system of the cloud gaming server 100 for remote desktop environment, enabling the operating system to support multiple remote desktop connections and enable remote GPU encoding and remote rendering functions of the remote desktop environment. In one possible implementation, the remote desktop environment configuration file may include multiple configuration scripts, such as Python or PowerShell scripts that include configuration items and corresponding configuration parameters (e.g., remote desktop connection items and their corresponding connection parameters) for configuring the remote desktop environment of the operating system. The purpose of running the remote desktop environment configuration file is to enable the operating system of the cloud gaming server 100 to allow multiple remote desktop connections (rdpsession) to run simultaneously, and to enable the remote desktop environment to support remote GPU encoding and rendering, so that different cloud games can run in session environments corresponding to different system user accounts.
[0096] In summary, the cloud gaming operation method, system, and cloud gaming server provided in this application embodiment, through a single cloud gaming server 100, establish remote desktop connections between different system user accounts and different game terminals, enabling different cloud games to run simultaneously on the cloud gaming server 100. This achieves system-level isolation for remote desktop sessions corresponding to multiple different cloud games. Each cloud game's corresponding remote session environment (remote desktop environment) has independent desktop, remote audio device, independent system objects, and context, allowing different remote desktop environments to independently capture audio and video, and independently receive system control input. Based on this, multiple single-instance cloud games running simultaneously can achieve differentiated capture of controls, audio, and video, thereby achieving the goal of "one machine, multiple instances" at the software level. This solves the problem of wasted system resources caused by a single game monopolizing the entire target server's system resources in existing technologies.
[0097] In the embodiments provided in this application, it should be understood that the disclosed apparatus and methods can also be implemented in other ways. The apparatus embodiments described above are merely illustrative. For example, the flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of apparatus, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram and / or flowchart, and combinations of blocks in block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0098] In addition, the functional modules in the various embodiments of this application can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.
[0099] If the functions are implemented in the form of software function modules and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0100] It should be noted that, in this document, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply the existence of any such actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or device comprising the element.
[0101] The above descriptions are merely various embodiments of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A cloud gaming operation method, applied to a cloud gaming server, characterized in that, The method includes: When a launch request for a target cloud game is received from a game user, it is determined whether the cloud game server has the capability to run the target cloud game, wherein the running resources include GPU resources; When it is determined that the cloud gaming server has the capability to run the target cloud game, a system user account is activated from the cloud gaming server, and the target cloud game is run based on the system user account. The system user account is pre-created based on the amount of running resources required by each cloud game in the cloud gaming server and the total amount of running resources of the cloud gaming server. One system user account corresponds to one cloud game.
2. The cloud gaming operation method according to claim 1, characterized in that, When it is determined that the cloud gaming server has the capability to run the target cloud game, a system user account is activated from the cloud gaming server, and the target cloud game is run based on this system user account, including: When the cloud gaming server has the capability to run the target cloud game, a system user account to be activated is generated for the game user. Enable the system user account generated above and establish a remote desktop connection between the cloud game server and the game user's game terminal based on the system user account; The target cloud game is run in the session environment corresponding to the remote desktop connection.
3. The cloud gaming operation method according to claim 1, characterized in that, Before running the target cloud game, the method further includes: For each cloud game in the cloud gaming server, multiple system user accounts are created in advance based on the amount of operating resources required by each cloud game and the total amount of operating resources of the cloud gaming server. When it is determined that the cloud gaming server has the capability to run the target cloud game, a system user account is activated from the cloud gaming server, and the target cloud game is run based on this system user account, including: When the cloud gaming server has the capability to run the target cloud game, one of the multiple pre-created system user accounts corresponding to the target cloud game is launched according to the target cloud game. A remote desktop connection is established between the cloud game server and the game user's game terminal based on the system user account that is started; The target cloud game is run in the session environment corresponding to the remote desktop connection.
4. The cloud gaming operation method according to claim 3, characterized in that, Determining whether the cloud gaming server has the necessary resources to run the target cloud game includes: The system determines whether there are any unactivated system user accounts in the cloud gaming server. If there are unactivated system user accounts in the cloud gaming server, the system determines that the cloud gaming server has the ability to run the target cloud game; otherwise, if there are no unactivated system user accounts in the cloud gaming server, the system determines that the cloud gaming server does not have the ability to run the target cloud game.
5. The cloud gaming operation method according to any one of claims 1-3, characterized in that, Determining whether the cloud gaming server has the necessary resources to run the target cloud game includes: Obtain the current remaining amount of operating resources of the cloud gaming server and the amount of operating resources required by the target cloud game; The cloud gaming server's current remaining operating resources and the operating resources required by the target cloud game are used to determine whether the cloud gaming server has the capability to run the target cloud game.
6. The cloud gaming operation method according to any one of claims 1-4, characterized in that, Before running the target cloud game, the method further includes: Load and run a pre-configured remote desktop environment configuration file to configure the operating system of the cloud gaming server for remote desktop environment, enabling the operating system to support multiple remote desktop connections and enable remote GPU encoding and remote rendering functions of the remote desktop environment, so that different cloud games can run in session environments corresponding to different system user accounts.
7. The cloud gaming operation method according to any one of claims 1-4, characterized in that, The method further includes: After running the target cloud game, permissions are configured for the system user account, enabling the cloud game to collect the environmental information required for cloud gaming in the corresponding session environment.
8. The cloud gaming operation method according to any one of claims 1-4, characterized in that, When it is determined that the cloud gaming server has the capability to run the target cloud game, a system user account is activated from the cloud gaming server, and the target cloud game is run based on this system user account, further comprising: After the target cloud game is run based on the system user account, a session service is enabled for the system user account to keep the remote desktop connection between the cloud game server and the game user's game terminal active.
9. A cloud gaming operating system, applied to a cloud gaming server, characterized in that, The cloud gaming operating system includes: The request module is used to receive a launch request for a target cloud game sent by a game user, and upon receiving the launch request, to determine whether the cloud game server's runtime resources are capable of running the target cloud game, wherein the runtime resources include GPU resources; and The running module is used to, when it is determined that the cloud gaming server has the capability to run the target cloud game, activate a system user account from the cloud gaming server and run the target cloud game based on the system user account. The system user account is pre-created based on the amount of running resources required by each cloud game in the cloud gaming server and the total amount of running resources of the cloud gaming server. One system user account corresponds to one cloud game.
10. A cloud gaming server, characterized in that, The device includes a machine-readable storage medium and one or more processors, wherein the machine-readable storage medium stores machine-executable instructions that, when executed by the one or more processors, implement the cloud gaming operation method according to any one of claims 1-8.
Citation Information
Patent Citations
Cloud game processing method and device and equipment and medium
CN112999653A
Cloud game processing method and device, equipment and storage medium
CN113209632A
Information processing system, information processing method, program and information storage medium
JP2013109547A