Game multi-opening method based on game isolation, storage medium and equipment

By creating a wrapper dynamic link library for each game instance and configuring the Windows operating system, the game isolation of multiple games is achieved, solving the problem of poor performance of multiple games in the existing technology, and improving system utilization and performance.

CN119440655APending Publication Date: 2025-02-14SHENZHEN BOILING CLOUD TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411385514.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-30
Publication Date
2025-02-14

AI Technical Summary

Technical Problem

In the prior art, the performance of multi-opening examples is poor when used in large 3D games, and the nvFBC of the graphics card cannot work normally, resulting in dim game screen and poor execution effect.

Method used

By creating a wrapper dynamic link library for each game instance and configuring the file in the Windows operating system, it supports redirecting the wrapper dynamic link library to achieve game isolation with multiple games.

Benefits of technology

The system utilization and performance of games when multiple games are opened can be improved, and a single graphics card can be used to achieve efficient operation, suitable for scenarios such as cloud games and cloud desktops.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119440655A_ABST
    Figure CN119440655A_ABST
Patent Text Reader

Abstract

The invention discloses a game multi-opening method based on game isolation, a storage medium and equipment. The game multi-opening method based on game isolation comprises the following steps: creating a wrapper dynamic link library for each game instance; the method comprises the following steps of: carrying out file configuration in a Windows operating system; creating an isolation folder under the same-level catalogue where each game executable file is located; when it is detected that multiple game application programs run at the same time, whether the wrapper dynamic link library exists in all the isolation folders or not is searched; if yes, loading the wrapper dynamic link library; and if not, searching and loading are carried out according to the environment variable of the Windows operating system. According to the method and the device, the multi-user isolation function of the Windows operating system is utilized to realize game isolation of multi-open games, the system utilization rate of the Windows operating system is relatively good, the performance is high, and the method and the device can be realized by a common single display card.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer application technology, and in particular to a method, storage medium and device for opening multiple games based on game isolation. Background Art

[0002] When a multi-open instance (virtual computer) is used for large-scale 3D games, it may only be able to open two or three instances, but when used for some small games, it may be able to open more than ten instances. This helps to make effective use of resources and reduce costs.

[0003] In the prior art, a physical graphics card is virtualized into multiple graphics cards for use by corresponding virtual computers. In this way, one graphics card can support multiple virtual machines, and the gaming performance of each virtual machine is also good. However, the nvFBC of the graphics card cannot work properly, and the screen of some games is obviously darker when running, and the execution effect is poor. Summary of the invention

[0004] The purpose of this application is to provide a method, storage medium and device for opening multiple games based on game isolation to solve the technical problems existing in the prior art. The various technical effects that can be produced by the preferred technical solution among the various technical solutions provided in this application are described in detail below.

[0005] To achieve the above objectives, this application provides the following technical solutions:

[0006] A first aspect of the present application provides a method for opening multiple games based on game isolation, and the method for opening multiple games based on game isolation includes:

[0007] Create a wrapper dll for each game instance;

[0008] In the Windows operating system, file configuration is performed so that the Windows operating system supports redirection of the wrapper dynamic link library;

[0009] Create an isolated folder in the same directory as the executable files of each game;

[0010] When it is detected that multiple game applications are running at the same time, start loading the wrapper dynamic link library, so as to find out whether the wrapper dynamic link library exists in each of the isolated folders;

[0011] If the wrapper dynamic link library exists in the isolated folder, the wrapper dynamic link library is loaded so that the wrapper dynamic link library modifies the call of the API interface of the Windows operating system when the game executable file is running;

[0012] If the wrapper dynamic link library does not exist in the isolated folder, it is searched and loaded according to the environment variables of the Windows operating system.

[0013] In some embodiments, the step of configuring files in the Windows operating system so that the Windows operating system supports redirection of the wrapper dynamic link library includes:

[0014] Create a new DWORD value under the Windows operating system registry key and set the DWORD value to 1.

[0015] In some embodiments, when detecting that multiple game applications are running simultaneously, starting to load the wrapper dynamic link library, thereby searching for whether the wrapper dynamic link library exists in each of the isolated folders, includes:

[0016] Copying the native dynamic link library of the Windows operating system;

[0017] Paste the native dynamic link library into the isolated folder;

[0018] Using the executable file for configuring the dynamic link library, adding the dependency of the wrapper dynamic link library in the import table of the native dynamic link library;

[0019] When multiple game applications are running at the same time, the wrapper dynamic link library corresponding to each game instance is searched in the isolated folder corresponding to each game instance.

[0020] In some embodiments, if the wrapper dynamic link library exists in the isolated folder, loading the wrapper dynamic link library comprises:

[0021] If the wrapper dynamic link library exists in the isolated folder, each game executable file loads the corresponding wrapper dynamic link library according to the dependency of the import table.

[0022] In some embodiments, the method further comprises:

[0023] Generate the corresponding function HOOK based on the wrapper dynamic link library;

[0024] After each game executable file loads the corresponding wrapper dynamic link library according to the dependency of the import table, the entry function is called and the function HOOK is initialized;

[0025] By utilizing the function HOOK, the wrapper dynamic link library modifies the call to the API interface when the game executable file is running.

[0026] In some embodiments, the wrapper dynamic link library includes a graphics module, an application's multimedia input device call module, an application's sound playing and capturing module, a Microsoft DirectX graphics infrastructure graphics module, a COM library, device driver and service-related modules, a basic API library for Windows desktop applications, an audio module, an XAudio2 audio device module, a first input module, and a second input module.

[0027] In some embodiments, the game multiple opening method based on game isolation further includes:

[0028] Initialize and create the RPC service to start the proxy server;

[0029] Performing initialization configuration via the proxy server;

[0030] The interface DLL of the Windows operating system is called to create a service function through the wrapper dynamic link library, so that the wrapper dynamic link library uses the initialization configuration to access the proxy server through the RPC service to start the game.

[0031] In some embodiments, the game multiple opening method based on game isolation further includes:

[0032] The server allocates the corresponding graphics processing unit according to the game user who starts the game;

[0033] The wrapper obtains the allocated graphics processing unit through a remote procedure call service, and outputs the game screen to the allocated graphics processing unit;

[0034] Enable the video capturer, and write the video capturer to the game process through a remote thread for operation;

[0035] The video capturer is used to synchronize the graphics processing module in the wrapper dynamic link library to perform video acquisition related operations during the game.

[0036] A second aspect of the present application provides a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed, the multi-opening method for games based on game isolation as described above is implemented.

[0037] The third aspect of the present application provides a processing device, including: one or more processors; a memory for storing one or more computer programs, and one or more of the processors are used to execute the one or more computer programs stored in the memory, so that one or more of the processors execute the game multi-opening method based on game isolation as described above.

[0038] Implementing one of the above-mentioned technical solutions of the present application has the following advantages or beneficial effects: the game multi-opening method, storage medium and device based on game isolation (GI) of the present application utilize the multi-user isolation function of the Windows operating system to realize game isolation of multiple game openings, has a relatively good system utilization rate for the Windows operating system, has high performance, can be achieved with a general single graphics card, can achieve the lowest cost under the same device, can utilize all the performance of the Windows operating system, and is suitable for application in cloud games, cloud desktops and other scenarios. BRIEF DESCRIPTION OF THE DRAWINGS

[0039] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following briefly introduces the drawings required for use in the description of the embodiments. It is obvious that the drawings described below are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative work. In the drawings:

[0040] Figure 1 It is a flowchart of a method for opening multiple games based on game isolation according to an embodiment of the present application;

[0041] Figure 2 is a schematic diagram of game initialization in an embodiment of the present application;

[0042] Figure 3 It is a structural block diagram of a multi-game device based on game isolation in an embodiment of the present application.

[0043] In the figure: 1. processing device; 10. memory; 11. processor. DETAILED DESCRIPTION

[0044] In order to make the purpose, technical solutions and advantages of the present application clearer, the various exemplary embodiments to be described below will refer to the corresponding drawings, which constitute a part of the exemplary embodiments, wherein various exemplary embodiments that may be used to implement the present application are described. Unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The implementation methods described in the following exemplary embodiments do not represent all implementation methods consistent with the present disclosure. It should be understood that they are only examples of processes, methods, and devices that are consistent with some aspects disclosed in the present application as detailed in the attached claims, and other embodiments may also be used, or the embodiments listed herein may be modified in structure and function without departing from the scope and essence of the present application.

[0045] In the description of the present application, it should be understood that the terms "center", "longitudinal", "lateral", etc. indicate the orientation or positional relationship based on the drawings, which is only for the convenience of describing the present application and simplifying the description, rather than indicating or implying that the elements referred to must have a specific orientation, be constructed and operated in a specific orientation. The terms "first", "second", etc. are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. The term "multiple" means two or more. The terms "connected" and "connected" should be understood in a broad sense, for example, it can be a fixed connection, a detachable connection, an integral connection, a mechanical connection, an electrical connection, a communication connection, a direct connection, an indirect connection through an intermediate medium, and can be the internal connection of two elements or the interaction relationship between two elements. The term "and / or" includes any and all combinations of one or more related listed items. For those of ordinary skill in the art, the specific meanings of the above terms in the present application can be understood according to the specific circumstances.

[0046] In order to illustrate the technical solution described in the present application, a specific embodiment is provided below, and only the parts related to the embodiment of the present application are shown.

[0047] like Figure 1 As shown, the present application provides a method for opening multiple games based on game isolation, which may include the following steps S1 to S6.

[0048] The Windows operating system provides a multi-user isolation function, allowing multiple users to use the same computer at the same time independently of each other. When multiple users log in at the same time, each user will be assigned a separate user session.

[0049] In a multi-user isolation environment, each user session has its own set of running applications. When these applications run in each user session, they are isolated from each other and do not interfere with each other. When implementing user isolation, the following methods are usually used:

[0050] 1. Process isolation, Windows uses process isolation to ensure that applications in each user session are isolated from each other at the Windows operating system level. Each user session has its own set of processes that can only run within that session, which prevents one user's application from directly interfering with another user's application.

[0051] 2. User privilege isolation: Windows uses access control mechanisms to limit the access of applications to system resources in each user session. Each user has his or her own user account and is assigned a set of appropriate permissions. This ensures that one user's application cannot access another user's files, settings, or other sensitive information.

[0052] 3. File isolation: Isolation can be achieved by exporting data files to "C: / Users / username".

[0053] Based on the multi-user isolation function provided by the Windows operating system, the present application proposes a game multi-opening method based on game isolation to achieve game isolation (GI) when multiple games are opened.

[0054] Games are divided into mobile games (PC games), stand-alone games, online games, etc. The embodiments of this application take mobile games (PC games) as an example.

[0055] In addition, the game isolation-based multi-opening method of the present application has a relatively good system utilization rate for the Windows operating system and high performance. It can be implemented with a general single graphics card. It can achieve the lowest cost under the same device and can utilize all the performance of the Windows operating system. It is suitable for application in cloud games, cloud desktops and other scenarios.

[0056] S1. Create a wrapper dynamic link library for each game instance.

[0057] Wrapper is a programming technique used to encapsulate a function or API call so that additional code can be executed before or after calling the original function. The wrapper can capture, modify, or redirect the call.

[0058] Dynamic Link Library (DLL) is a file format in Windows operating system, which contains a series of functions and data that can be called by programs or other DLLs. DLL is a shared library that allows different programs to use the same code and resources, thereby saving memory space, reducing redundancy between programs, and improving the utilization of system resources.

[0059] The wrapper dynamic link library of the present application contains custom code that can capture, modify or redirect calls, and also allows different programs to use the same code and resources to implement specific behaviors when multiple games are opened.

[0060] Therefore, a wrapper DLL is created for each game instance. When the game is opened multiple times, each game instance can load its own wrapper DLL instead of the native dynamic link library DLL in the Windows operating system.

[0061] S2. In the Windows operating system, perform file configuration to enable the Windows operating system to support redirection of the wrapper dynamic link library.

[0062] In some embodiments, step S2 may include:

[0063] Create a new DWORD value under the Windows operating system registry key and set the DWORD value to 1.

[0064] In Windows operating system, the registry is a database used to store information such as system settings, application settings, and user preferences. The data in the registry is organized in the form of keys and values. Therefore, a new DWORD value refers to creating a new value in the registry, whose type is DWORD. It is used to control the enabling or disabling of functions or features. For example, setting its value to 1 means enabling a feature, and setting it to 0 means disabling it.

[0065] Specifically, the registry key of the Windows operating system can be found, and then a new DWORD value is created under the registry key of the Windows operating system, and the new DWORD value is set to 1, indicating that the redirection function of the wrapper dynamic link library is enabled.

[0066] Then, restart the computer device, and the Windows operating system supports the redirection of the wrapper dynamic link library.

[0067] Wrapper dynamic link library redirection is a feature in Windows that allows programs to specify an alternative location to load a dynamic link library DLL instead of the default search path. Here, the program is allowed to specify a new folder in the same directory as the game executable file.

[0068] S3. Create an isolation folder in the same directory as the executable files of each game.

[0069] After setting up the Windows operating system to support redirection of the wrapper dynamic link library, create an isolated folder in the same directory as each game executable file.

[0070] The name of the isolation folder is different from the name of the game's execution folder by adding .local. For example, if the executable file of game A is game.exe, then an isolation folder named game.exe.local is created in the same directory, indicating the isolation folder of the game's local installation package.

[0071] S4. When it is detected that multiple game applications are running at the same time, start loading the wrapper dynamic link library to find out whether the wrapper dynamic link library exists in each of the isolated folders.

[0072] In some embodiments, step S4 may include:

[0073] Copying the native dynamic link library of the Windows operating system;

[0074] Paste the native dynamic link library into the isolated folder;

[0075] Using the executable file for configuring the dynamic link library, adding the dependency of the wrapper dynamic link library in the import table of the native dynamic link library;

[0076] When multiple game applications are running at the same time, the wrapper dynamic link library corresponding to each game instance is searched in the isolated folder corresponding to each game instance.

[0077] Specifically, when the game is running, a wrapper dynamic link library can be used to modify the call to the API interface of the Windows operating system when the game executable file is running. First, the native dynamic link library of the game instance in the Windows operating system is copied and pasted into the corresponding isolated folder, and then the executable file setdll.exe that configures the dynamic link library is used to add the dependency of the wrapper dynamic link library in the import table of the native dynamic link library to modify the import table.

[0078] After modifying the import table, when multiple game applications are running at the same time, the wrapper dynamic link library corresponding to each game instance is searched in the isolation folder corresponding to each game instance.

[0079] In some embodiments, when multiple game applications are running simultaneously, the corresponding wrapper dynamic link library is loaded according to the dependency of the import table.

[0080] S5: If the wrapper dynamic link library exists in the isolated folder, the wrapper dynamic link library is loaded so that the wrapper dynamic link library modifies the call to the API interface of the Windows operating system when the game executable file is running.

[0081] S6: If the wrapper dynamic link library does not exist in the isolated folder, search and load it according to the environment variables of the Windows operating system.

[0082] In some embodiments, step S5 may include:

[0083] If the wrapper dynamic link library exists in the isolated folder, each game executable file loads the corresponding wrapper dynamic link library according to the dependency of the import table.

[0084] Specifically, different game instances correspond to different executable files, different isolation folders, and different wrapper dynamic link libraries. That is, when each game application is running, it is necessary to search the isolation file corresponding to the game application to see if it has a corresponding wrapper dynamic link library. If so, the wrapper dynamic link library corresponding to the game application is loaded so that the wrapper dynamic link library can modify the call to the API interface of the Windows operating system when the game executable file is running.

[0085] In some embodiments, the method further comprises:

[0086] Generate the corresponding function HOOK based on the wrapper dynamic link library;

[0087] After each game executable file loads the corresponding wrapper dynamic link library according to the dependency of the import table, the entry function is called and the function HOOK is initialized;

[0088] By utilizing the function HOOK, the wrapper dynamic link library modifies the call to the API interface when the game executable file is running.

[0089] Specifically, the Windows operating system provides a mechanism that allows third-party DLLs to intercept calls to system DLLs by setting hooks. Therefore, the generation of the wrapper dynamic link library uses the wrap_dll project, which can automatically generate the function HOOK.

[0090] Function HOOK can hook game resources. Game resources are normally placed in the assets directory and lib directory of the APK (Android Package Kit, a package file format used by the Android operating system to distribute and install mobile applications or middleware) file. Games developed by different game engines (such as Unity or Cocos2dx) have different ways of loading resources. HOOKing game resources means changing the default asset and lib paths loaded by the game through the HOOK method, and loading the specified game resources through HOOK.

[0091] After each game executable file loads the corresponding wrapper dynamic link library according to the dependency of the import table, it calls the entry function DLLmain and initializes the function HOOK;

[0092] By utilizing the function HOOK, the wrapper dynamic link library is made to modify and intercept the call to the API interface when the game executable file is running, thereby changing the default loading path of the game and finding the wrapper dynamic link library in the isolated folder corresponding to the game.

[0093] In some embodiments, the wrapper dynamic link library includes a graphics module, an application's multimedia input device call module, an application's sound playing and capturing module, a Microsoft DirectX graphics infrastructure graphics module, a COM library, device driver and service-related modules, a basic API library for Windows desktop applications, an audio module, an XAudio2 audio device module, a first input module, and a second input module.

[0094] As shown in Table 1 below, Table 1 introduces the English name and function of each module.

[0095]

[0096]

[0097] Table 1

[0098] In some embodiments, the game multi-opening method based on game isolation may further include initialization of each game; initialization of a game instance includes:

[0099] Initialize and create the RPC service to start the proxy server;

[0100] Performing initialization configuration via the proxy server;

[0101] The interface DLL of the Windows operating system is called to create a service function through the wrapper dynamic link library, so that the wrapper dynamic link library uses the initialization configuration to access the proxy server through the RPC service to start the game.

[0102] Specifically, Figure 2 As shown, RPC service refers to remote procedure call service. When initializing the configuration, the broker server calls the AssignGPUToProcess function to assign the corresponding GPUID to the specified AppGuid, that is, the broker server assigns the GPU to the process and assigns the corresponding GPUID to the specified AppGuid. GPU (Graphics Processing Unit) is a computer hardware component specifically used for processing graphics and image calculations. GPU is used to render video games and graphics applications.

[0103] When the game is started, the interface DLL creation service function (APID3D11 Create Device) of the wrapper dynamic link library is called during game creation. Then, the wrapper dynamic link library uses the current AppGuid to access the proxy server through the RPC service, obtains the GPU Index, and creates the DX11 device to start the game.

[0104] In some embodiments, the game isolation-based multi-opening method may further include:

[0105] The server allocates the corresponding graphics processing unit GPU according to the user who starts the game.

[0106] The wrapper obtains the allocated graphics processing unit GPU through the remote procedure call service rpc-Remote Procedure Call, and outputs the game screen to the allocated graphics processing unit GPU.

[0107] Use the video streaming software Light Streamer to enable the video capturer Hook Video Capturer, and write the video capturer Hook Video Capturer to the game process through the remote thread remote thread for operation.

[0108] The video capturer Hook Video Capturer is used to start the synchronization thread synchronizer, thereby synchronizing the graphics processing modules hook user32.dll and dxgi.dll in the wrapper dynamic link library to perform video-related operations during the game, such as creating and destroying windows, frame preparation, etc. The synchronization thread notification event notifies the video streaming software Light Streamer that the frame is ready, and then obtains the video, encodes and transmits it, thereby realizing video acquisition based on game isolation.

[0109] In some embodiments, the game multi-opening method based on game isolation may also include video hardware encoding, and encoding during the game process can be achieved by calling the file encoding scheme nvEnc.

[0110] In some embodiments, the game multi-opening method based on game isolation may also include audio collection, specifically:

[0111] The proxy server allocates an audio endpoint according to the game user who starts the game. The wrapper obtains the allocated audio endpoint through the RPC service and outputs the audio to the allocated audio endpoint. The video streaming software obtains and encodes the audio through the capture Audio Name property of the lightStreamer-config.toml tool. The configured audio endpoint here needs to be consistent with the allocation logic of the proxy server.

[0112] In some embodiments, the game multi-opening method based on game isolation can also include GI keyboard and mouse control, which mainly uses two modules User32.dll & dinput8.dll, specifically:

[0113] 1. Game startup: Load the wrapper dynamic link library Wrapper DLL, user32_wrapper.dll & dinput8_wrapper.dll will create the corresponding KBM service (NamePipe) for keyboard and mouse communication;

[0114] 2. InputData is transmitted to Live streaming (LS), which opens a named pipe and transmits InputData to the Wrapper DLL;

[0115] 3. Wrapper DLL receives the data, processes it, and sends it to the game.

[0116] In some embodiments, when multiple games are opened, all related programs are started using the run as user method of the Windows operating system. In this way, the program is similar to the multi-user of Aster. Each program runs on an independent user without interfering with each other, thereby achieving isolation of the operating system.

[0117] Experiments have found that:

[0118] When multiple games are opened, an Android virtual machine is used to play the games, which are first-hand games and second-hand games. The software and hardware information and configuration used are shown in Table 2 below.

[0119]

[0120] Table 2

[0121] When testing multiple games based on game isolation in this application, the test data of game one is as follows

[0122] As shown in Table 3:

[0123]

[0124] Table 3

[0125] In Table 3, the GPU occupancy rate is not calculated based on a single thread. The total occupancy rate of four games is only 20%-30%, which shows that the requirements for the graphics card are not high.

[0126] When testing multiple games based on game isolation in this application, the test data of game 2 is as follows

[0127] As shown in Table 4:

[0128] state Single thread CPU usage Memory usage GPU usage GPU memory Game 2 standby 23%-25% 2G 25%-35% 600M Game 2 Fighting 25%-28% 2G 25%-35% 600M

[0129] Table 4

[0130] From Table 3 and Table 4, we can get the test conclusion:

[0131] For Game 1, it is more appropriate to use one machine with 5 virtual machines. The CPU should preferably have multiple cores. The frequency is not very important. The graphics card memory cannot be too small, preferably 4G or more.

[0132] For Game 2, it is more appropriate to use one machine with three virtual machines, as the graphics card usage rate is relatively high.

[0133] The multi-opening game method based on game isolation in the embodiment of the present application utilizes the multi-user isolation function of the Windows operating system to achieve game isolation for multiple openings. It has good system utilization of the Windows operating system and high performance. It can be achieved with a general single graphics card. It can achieve the lowest cost under the same device and can utilize all the performance of the Windows operating system. It is suitable for application in cloud games, cloud desktops and other scenarios.

[0134] Those skilled in the art can understand that all or part of the features / steps of the above-mentioned method embodiments can be implemented by methods, data processing systems or computer programs, and these features can be implemented without hardware, entirely by software, or by a combination of hardware and software. The aforementioned computer program can be stored in one or more computer-readable storage media, and the storage medium stores the computer program. When the computer program is executed (such as by a processor), the steps of the above-mentioned game multi-opening method embodiment based on game isolation are executed.

[0135] The aforementioned storage media that can store program codes include: static hard disks, solid-state hard disks, random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), optical storage devices, magnetic storage devices, flash memory, magnetic disks or optical disks and / or combinations of the above devices, that is, it can be implemented by any type of volatile or non-volatile storage device or a combination thereof.

[0136] The present application also provides an embodiment of a processing device 1, comprising one or more processors 11 and a memory 10; wherein the memory 10 is used to store one or more computer programs, and the one or more processors 11 are used to execute one or more computer programs stored in the memory 10, so that the processor 11 executes the features / steps of the above-mentioned embodiment of the multi-opening method for game based on game isolation.

[0137] This application identifies multiple tasks submitted by users, obtains the task type, and schedules each task to be executed on at least one Windows instance according to the task type and resource requirements. In this case, the computing resources of multiple Windows instances can be fully utilized, resource utilization efficiency can be improved, and costs can be reduced; at the same time, appropriate resources are automatically allocated according to different task types, which can improve task processing efficiency.

[0138] The above is only the preferred embodiment of the present application. Those skilled in the art will appreciate that various changes or equivalent substitutions may be made to these features and embodiments without departing from the spirit and scope of the present application. In addition, under the guidance of the present application, these features and embodiments may be modified to adapt to specific circumstances and materials without departing from the spirit and scope of the present application. Therefore, the present application is not limited to the specific embodiments disclosed herein, and all embodiments falling within the scope of the claims of the present application belong to the protection scope of the present application.

Claims

1. A method for opening multiple games based on game isolation, characterized in that: include: Create a wrapper dll for each game instance; In the Windows operating system, file configuration is performed so that the Windows operating system supports redirection of the wrapper dynamic link library; Create an isolated folder in the same directory as the executable files of each game; When it is detected that multiple game applications are running at the same time, start loading the wrapper dynamic link library, so as to find out whether the wrapper dynamic link library exists in each of the isolated folders; If the wrapper dynamic link library exists in the isolated folder, the wrapper dynamic link library is loaded so that the wrapper dynamic link library modifies the call of the API interface of the Windows operating system when the game executable file is running; If the wrapper dynamic link library does not exist in the isolated folder, it is searched and loaded according to the environment variables of the Windows operating system.

2. The method for opening multiple games based on game isolation according to claim 1, characterized in that: In the Windows operating system, file configuration is performed to enable the Windows operating system to support redirection of the wrapper dynamic link library, including: Create a new DWORD value under the Windows operating system registry key and set the DWORD value to 1.

3. The method for opening multiple games based on game isolation according to claim 1, characterized in that: When detecting that multiple game applications are running simultaneously, starting to load the wrapper dynamic link library, thereby searching whether the wrapper dynamic link library exists in each of the isolated folders, comprises: Copying the native dynamic link library of the Windows operating system; Paste the native dynamic link library into the isolated folder; Using the executable file for configuring the dynamic link library, adding the dependency of the wrapper dynamic link library in the import table of the native dynamic link library; When multiple game applications are running at the same time, the wrapper dynamic link library corresponding to each game instance is searched in the isolated folder corresponding to each game instance.

4. The method for opening multiple games based on game isolation according to claim 3, characterized in that: If the wrapper dynamic link library exists in the isolated folder, loading the wrapper dynamic link library comprises: If the wrapper dynamic link library exists in the isolated folder, each game executable file loads the corresponding wrapper dynamic link library according to the dependency of the import table.

5. The method for opening multiple games based on game isolation according to claim 4, characterized in that: The method further comprises: Generate the corresponding function HOOK based on the wrapper dynamic link library; After each game executable file loads the corresponding wrapper dynamic link library according to the dependency of the import table, the entry function is called and the function HOOK is initialized; By utilizing the function HOOK, the wrapper dynamic link library modifies the call to the API interface when the game executable file is running.

6. The method for opening multiple games based on game isolation according to claim 1, characterized in that: The wrapper dynamic link library includes a graphics module, an application's multimedia input device calling module, an application's sound playing and capturing module, a Microsoft DirectX graphics infrastructure graphics module, a COM library, device driver and service-related modules, a basic API library for Windows desktop applications, an audio module, an XAudio2 audio device module, a first input module, and a second input module.

7. The method for opening multiple games based on game isolation according to claim 1, characterized in that: The game multiple opening method based on game isolation also includes: Initialize and create the RPC service to start the proxy server; Performing initialization configuration via the proxy server; The interface DLL of the Windows operating system is called to create a service function through the wrapper dynamic link library, so that the wrapper dynamic link library uses the initialization configuration to access the proxy server through the RPC service to start the game.

8. The method for opening multiple games based on game isolation according to claim 1, characterized in that: The game multiple opening method based on game isolation also includes: The server allocates the corresponding graphics processing unit according to the game user who starts the game; The wrapper obtains the allocated graphics processing unit through a remote procedure call service, and outputs the game screen to the allocated graphics processing unit; Enable the video capturer, and write the video capturer to the game process through a remote thread for operation; The video capturer is used to synchronize the graphics processing module in the wrapper dynamic link library to perform video acquisition related operations during the game.

9. A computer-readable storage medium, characterized in that: The storage medium stores a computer program, which, when executed, implements the multi-opening game method based on game isolation as described in any one of claims 1 to 8.

10. A multi-game device based on game isolation, characterized in that: include: one or more processors; The memory is used to store one or more computer programs, and one or more processors are used to execute the one or more computer programs stored in the memory, so that one or more processors execute the game multi-opening method based on game isolation as described in any one of claims 1-8.