Data processing method, device and computer-readable storage medium for cloud gaming

By converting idle game instances into candidate package servers, sharing the disk read and write and network transmission pressure of the full package server, the problem of low processing efficiency of cloud game files is solved and the stability and reliability of the system is improved.

CN114011081BActive Publication Date: 2025-08-26MIGU INTERACTIVE ENTERTAINMENT CO LTD +2
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111330786.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-10
Publication Date
2025-08-26
Estimated Expiration
2041-11-10

AI Technical Summary

Technical Problem

The cloud game file processing efficiency is low, mainly because the full package server receives the reading and writing of multiple game instances at the same time, and the pressure on disk reading and writing and network transmission is too high.

Method used

By determining the number of game instances to be converted into a candidate package server and when the number is less than or equal to the total number of idle game instances, the idle game instance is converted into a candidate package server, and the candidate package server is controlled to load game files from the full package server.

Benefits of technology

It effectively alleviates the disk read and write and network transmission pressure of full package servers, and improves the stability and reliability of cloud gaming systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114011081B_ABST
    Figure CN114011081B_ABST
Patent Text Reader

Abstract

This application discloses a data processing method, device, and computer-readable storage medium for cloud gaming. The data processing method for cloud gaming includes: determining the number of game instances to be converted into candidate package servers; when the number is less than or equal to the total number of idle game instances, converting the idle game instances into candidate package servers; and controlling the candidate package servers to load game files from the full package servers. This application improves the stability and reliability of the cloud gaming system by converting idle game instances into candidate package servers and then using the candidate package servers to share the disk read / write and network transmission pressure of the full package servers.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of cloud gaming technology, and in particular to a data processing method, device, and computer-readable storage medium for cloud gaming. Background Art

[0002] Currently, the process for launching a cloud game is as follows: the user terminal SDK (Software Development Kit) initiates a game start request to the cloud game scheduling server. The scheduling server selects an idle game instance in the computer room and mounts the game instance via the network to the full package server in the computer room. The full package server is a centrally deployed storage server that stores all the game package files for the entire system. The game instance sends a game content read instruction to the full package server, and the package server reads the corresponding game file on disk. However, when the full package server receives read and write requests from multiple game instances simultaneously, its disk read and write and network transmission are under great pressure, which reduces the processing efficiency of cloud game files. Summary of the Invention

[0003] The embodiments of the present application aim to solve the problem of low efficiency in cloud game file processing by providing a cloud game data processing method, device, and computer-readable storage medium.

[0004] To achieve the above objectives, the present application provides a data processing method for cloud gaming, the method comprising:

[0005] Determine the number of game instances to be converted into candidate package servers;

[0006] When the number is less than or equal to the total number of idle game instances, converting the idle game instances of the number into candidate package servers;

[0007] Control the candidate package server to load the game file from the full package server.

[0008] Optionally, before the step of determining the number of game instances to be converted into candidate package servers, the step includes:

[0009] When the full package server is overloaded, obtaining the first loading request time of the busy game instance;

[0010] Determine a first target busy game instance according to the first loading request time;

[0011] After the step of controlling the candidate package server to load the game file from the full package server, the method includes:

[0012] Control the first target busy game instance to load the game file through the candidate package server.

[0013] Optionally, after the step of controlling the candidate package server to load the game file from the full package server, the method further includes:

[0014] When the full package server is overloaded, obtaining the second loading request time of the busy game instance;

[0015] Determine a second target busy game instance according to the second loading request time;

[0016] Control the second target busy game instance to load the game file through the candidate package server.

[0017] Optionally, the step of determining the number of game instances to be converted into candidate package servers includes:

[0018] Determining a first number of game instances that each of the idle game instances supports being loaded simultaneously;

[0019] Get a second number of busy game instances of the first target;

[0020] The number of game instances to be converted to the candidate package server is determined based on the second number and the minimum of the first number.

[0021] Optionally, the step of determining a first number of game instances that each of the idle game instances supports being loaded simultaneously includes:

[0022] Determining a first resource of the idle game instance and a second resource required for the cloud game to run on the idle game instance;

[0023] Obtaining a product of each of the first resources and a weighted sum of each of the second resources;

[0024] Obtaining a first difference between the product and the weighted sum, and rounding the first difference to obtain a second difference;

[0025] Obtain a first quotient of the second difference and the weighted sum, and use the first quotient as a first number of game instances that the idle game instance supports being loaded simultaneously.

[0026] Optionally, the step of obtaining the second number of first target busy game instances includes:

[0027] Obtain the number of game instances supported by the full package server for simultaneous loading, as well as the number of busy game instances;

[0028] Obtain a third difference between the number of game instances supported by the full package server for simultaneous loading and the number of busy game instances;

[0029] The third difference is used as the second number of the first target busy game instances.

[0030] Optionally, the number of the candidate package servers is at least two, and the step of controlling the candidate package servers to load game files from the full package server includes:

[0031] Obtaining a game file from the full package server, and dividing the game file into a plurality of game sub-files, where the number of the game sub-files is less than or equal to the number of the candidate package servers;

[0032] Control each candidate package server to load a game sub-file from the full package server;

[0033] Control each candidate package server to load other game sub-files from the candidate package servers that have loaded other game sub-files, and merge all loaded game sub-files to obtain the game file.

[0034] Optionally, the step of converting the number of idle game instances into candidate package servers includes:

[0035] Comparing the resource information of each of the idle game instances to obtain a comparison result;

[0036] determining the number of idle game instances to be converted from the idle game instances according to the comparison result;

[0037] Convert the idle game instance to be converted to the candidate package server.

[0038] In addition, to achieve the above-mentioned purpose, the present application also provides a data processing device for cloud games on the other hand, wherein the data processing device for cloud games includes a memory, a processor, and a data processing program stored in the memory and running the cloud game on the processor, and when the processor executes the data processing program for cloud games, the steps of the data processing method for cloud games as described above are implemented.

[0039] In addition, to achieve the above-mentioned purpose, the present application also provides a computer-readable storage medium on the other hand, on which a data processing program for cloud games is stored. When the data processing program for cloud games is executed by a processor, the steps of the data processing method for cloud games as described above are implemented.

[0040] This application proposes a data processing method for cloud gaming. The method determines the number of game instances to be converted into candidate package servers; when the number is less than or equal to the total number of idle game instances, converts the idle game instances into candidate package servers; and controls the candidate package servers to load game files from the full package servers. This application improves the stability and reliability of the cloud gaming system by converting idle game instances into candidate package servers and then using the candidate package servers to share the disk read / write and network transmission pressure of the full package servers. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] Figure 1 This is a schematic diagram of the terminal structure of the hardware operating environment involved in the embodiment of the present application;

[0042] Figure 2 This is a flowchart of the first embodiment of the data processing method for cloud gaming of the present application;

[0043] Figure 3 This is a flow chart after step S30 in the first embodiment of the data processing method for cloud gaming of the present application;

[0044] Figure 4 This is a detailed flowchart of step S10 in the first embodiment of the data processing method for cloud gaming of this application;

[0045] Figure 5 This is a detailed flowchart of step S20 in the first embodiment of the data processing method for cloud gaming of this application;

[0046] Figure 6 This is a structural diagram of the cloud gaming system of this application.

[0047] The realization of the objectives, functional features and advantages of this application will be further explained in conjunction with embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION

[0048] It should be understood that the specific embodiments described herein are only used to explain the present application and are not intended to limit the present application.

[0049] The main solution of the embodiment of the present application is: determine the number of game instances to be converted into candidate package servers; when the number is less than or equal to the total number of idle game instances, convert the idle game instances of the number into candidate package servers; control the candidate package servers to load game files from the full package server.

[0050] When a full package server receives read and write requests from multiple game instances at the same time, its disk read and write and network transmission are under great pressure, which reduces the processing efficiency of cloud game files. However, the present application determines the number of game instances to be converted into candidate package servers; when the number is less than or equal to the total number of idle game instances, the number of idle game instances is converted into candidate package servers; and the candidate package servers are controlled to load game files from the full package server. The present application improves the stability and reliability of the cloud gaming system by converting idle game instances into candidate package servers and then using the candidate package servers to share the disk read and write and network transmission pressure of the full package server.

[0051] like Figure 1 As shown, Figure 1 This is a schematic diagram of the terminal device structure of the hardware operating environment involved in the embodiment of the present application.

[0052] like Figure 1 As shown, the terminal device may include: a processor 1001, such as a CPU, a network interface 1004, a user interface 1003, a memory 1005, and a communication bus 1002. Among them, the communication bus 1002 is used to realize the connection and communication between these components. The user interface 1003 may include a display screen (Display), an input unit such as a keyboard (Keyboard), and the user interface 1003 may also include a standard wired interface and a wireless interface. The network interface 1004 may optionally include a standard wired interface and a wireless interface (such as a WI-FI interface). The memory 1005 may be a high-speed RAM memory, or a stable memory (non-volatile memory), such as a disk memory. The memory 1005 may optionally be a storage device independent of the aforementioned processor 1001.

[0053] Those skilled in the art will understand that Figure 1 The terminal device structure shown in the figure does not constitute a limitation on the terminal device, and may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently.

[0054] like Figure 1 As shown, the memory 1005 as a computer-readable storage medium may include a data processing program for cloud gaming.

[0055] exist Figure 1 In the terminal device shown, the network interface 1004 is mainly used for data communication with the background server; the user interface 1003 is mainly used for data communication with the client (user end); when the terminal is a control server, the processor 1001 can be used to call the data processing program of the cloud game in the memory 1005 and perform the following operations:

[0056] Determine the number of game instances to be converted into candidate package servers;

[0057] When the number is less than or equal to the total number of idle game instances, converting the idle game instances of the number into candidate package servers;

[0058] Control the candidate package server to load the game file from the full package server.

[0059] refer to Figure 2 , Figure 2 This is a flow chart of the first embodiment of the data processing method for cloud gaming of the present application.

[0060] An embodiment of the present application provides a data processing method for cloud gaming. It should be noted that although a logical order is shown in the flowchart, in some cases, the steps shown or described may be performed in an order different from that shown here.

[0061] The cloud gaming data processing method of this embodiment is applied to a control server and includes the following steps:

[0062] Step S10, determining the number of game instances to be converted into candidate package servers;

[0063] It should be noted that the reference Figure 6 , Figure 6 This is a schematic diagram of the structure of the cloud gaming system of this application. In the cloud gaming system, it includes user terminals, game instances (including idle game instances and busy game instances), full package servers, and control servers, among which:

[0064] Full package server: a centrally deployed storage server that stores all game package files for the entire system;

[0065] Game instance: A virtual server used for rendering and logical operations of game programs, as well as for collecting, encoding, and streaming game audio and video;

[0066] Candidate package server: converted from game instances, dynamically stores popular TopC (top C ranked games, C is an integer) game packages;

[0067] Control server: used to connect all game instances and full package servers in the system.

[0068] The full package server can support file reading and writing of M game instances at the same time. On this basis, for every W game instances added, one idle game instance is selected and converted into a candidate package server.

[0069] When the full package server is detected to be overloaded, the first loading request time of the busy game instance is obtained, and then the first target busy game instance is determined based on the first loading request time. The first target busy game instance refers to the game instance that the full package server does not support reading and writing. For example, assuming that the full package server supports five game instances to be loaded simultaneously, and there are currently seven busy game instances sending loading requests to the full package server, at this time, it is necessary to determine the request time corresponding to each loading request, and based on the request time, the last two busy game instances received are used as the first target busy game instances. Furthermore, based on the number of the first target busy game instances and the minimum C i Determine the number of game instances to be converted into candidate package servers, where C i It refers to the maximum number of game instances that can simultaneously load and write game files after the idle game instance is converted to a candidate package server.

[0070] Step S20: when the number is less than or equal to the total number of idle game instances, convert the idle game instances of the number into candidate package servers;

[0071] In this embodiment, when the number is less than or equal to the total number of idle game instances, the idle game instances are converted into candidate package servers. For example, assuming that the number of game instances to be converted into candidate package servers is k, and the number of game instances currently in the free state is S free , if S free >=k, indicating that k game instances can be selected from the remaining free game instances to be converted into k candidate package servers. It can be understood that when there are sufficient free game instance resources, k game instances are triggered to be converted into candidate package servers.

[0072] In one embodiment, the candidate package server uses an asymmetric encryption algorithm to publish game files and verify.

[0073] (1) Each candidate package server uses an asymmetric encryption algorithm (RSA) to generate a public key and a private key pair<publicKey,privateKey> ,For example:<A,B> , use the Hash digest algorithm to process its own server address information (the digest is an algorithm that generates a fixed-length output from an input message of any length), such as: hash('{"Server1":"S1","GameList":"G"},"status":"add"')->C;

[0074] (2) The candidate package server uses its own private key B to encrypt the digest value C and generate the corresponding signature information, such as: sign("C", "B")->D, and the obtained signature information is D;

[0075] (3) The candidate package server publishes its own server address information, signature information, and public key to the system, where:

[0076] Server address information: {"Server1":"S1","GameList":"G"};

[0077] Signature information: D;

[0078] Public key: A;

[0079] After receiving the message, all game instances use the following formula to verify the message, assuming:

[0080] verify("D", "A") = hash('{"Server1":"S1", "GameList":"G", "status":"add"}'), then the verification is passed, and the server address information of the candidate package server is updated in the local available package server list.

[0081] Step S30: Control the candidate package server to load the game file from the full package server.

[0082] In this embodiment, a game file is obtained from a full package server, and the game file is divided into multiple game sub-files. The system includes at least two candidate package servers, and the number of game sub-files is less than or equal to the number of candidate package servers. Then, each candidate package server is controlled to load a game sub-file from the full package server, and then each candidate package server is controlled to load other game sub-files from the candidate package server that has loaded other game sub-files. All loaded game sub-files are combined to obtain the game file. For example, the control server selects k candidate package servers P = {P1, P2, ..., P k}Copy the game files of TopC (games ranked in the top C positions, C is an integer) from the full package server so that other game instances can load the game files from the candidate package server.

[0083] (1) The control server selects the game files G corresponding to the top C popular games with the most runs according to the number of games run, and selects the game files G = {G1, G2, ..., G C}, which is the target game file.

[0084] (2) The control server divides each game file in the game file set G on the full package server P0 into k parts in equal proportion, G i =∑(g i ),i=1,...,k。

[0085] (3) The control server sends a message to each candidate package server P in the candidate package server P. i Send loading instructions, P1 downloads game G i The g1 part, P2 download game G i The g2 part, and so on, P k Download GameG i g k Part. P1 Download Game G i After the g1 part is completed, a report message will be sent, such as Report <P1,G i , g1, Status: finish>, notify the control server that the download is complete. The other k-1 candidate package servers download and report in turn. The control server receives all P1, P2...P k After receiving the Report message, this step is completed.

[0086] (4) The control server sends a notification message to P1 to notify P1 to send a notification message to P2...P k Request download G i g2...g k Part, P1 completely obtained the game G i All the files are merged to get the game G i File, now complete the game G i Download process.

[0087] (5) Similarly, P2...P k Complete the game download process.

[0088] Execute the above steps repeatedly, candidate package servers P1...P k Complete the game set G={G1,G2,...,G C}All downloads.

[0089] In one embodiment, after the candidate package server loads the game files from the full package server, it controls the first target busy game instance to load the game files through the candidate package server. For example, a loading instruction is sent to each first target busy game instance, so that each first target busy game instance loads the game files through the corresponding candidate package server based on the loading instruction.

[0090] This embodiment determines the number of game instances to be converted into candidate package servers; when the number is less than or equal to the total number of idle game instances, converts the idle game instances into candidate package servers; and controls the candidate package servers to load game files from the full package servers. This embodiment converts idle game instances into candidate package servers, and then uses the candidate package servers to share the disk read / write and network transmission pressure of the full package servers. This effectively alleviates the disk read / write and network IO pressure of the package servers without adding any physical hardware, thereby improving the stability and reliability of the cloud gaming system.

[0091] Further, refer to Figure 3 , a second example of the data processing method for cloud gaming of this application is proposed.

[0092] The second embodiment of the cloud game data processing method differs from the first embodiment in that, after step S30, the method further includes:

[0093] Step S31, when the full package server is overloaded, obtaining the second loading request time of the busy game instance;

[0094] Step S32, determining a second target busy game instance according to the second loading request time;

[0095] Step S33: Control the second target busy game instance to load the game file through the candidate package server.

[0096] After the control server converts the idle game instance into a candidate package server, it will continue to detect whether the full package server is overloaded. If it is overloaded, it will obtain the second loading request time of the busy game instance, and then determine the second target busy game instance based on the second loading request time. The second target busy game instance may include the first target busy game instance. It can be understood that after the first target busy game instance loads the game file from the candidate package server, it continues to work, and when the game file needs to be loaded, it sends a loading request to the full package server. At this time, if it is detected that the full package server is overloaded, the first target busy game instance may again become a game instance that the full package server does not support loading, that is, the second target busy game instance.

[0097] In one embodiment, when the second target busy game instance includes the first target busy game instance, the number of game instances to be converted into candidate package servers is determined, recorded as k; then, the number of candidate package servers in the system is obtained, recorded as m. If m≥k, it means that the candidate package servers in the system can satisfy all the second target busy game instances to load game files; if m<k, it means that the candidate package servers in the system can only satisfy some of the second target busy game instances to load game files. At this time, it is necessary to convert (km) idle game instances into candidate package servers, and control (km) candidate package servers to load game files from the full package servers, and then control the second target busy game instances to load game files from the candidate package servers.

[0098] In one embodiment, when the second target busy game instance does not include the first target busy game instance, the number of game instances to be converted into candidate package servers is determined, recorded as k; then, the number of candidate package servers in the system is obtained, recorded as m. If m≥k, it means that the candidate package servers in the system can satisfy all the second target busy game instances to load game files; if m<k, it means that the candidate package servers in the system can only satisfy some of the second target busy game instances to load game files. At this time, it is necessary to convert (km) idle game instances into candidate package servers, and control (km) candidate package servers to load game files from the full package servers, and then control the second target busy game instances to load game files from the candidate package servers.

[0099] In this embodiment, when there is a candidate package server in the system, if it is detected that the full package server is overloaded, it is determined that the full package server does not support the loaded busy game instance, and then the busy game instance is controlled to load the game file from the candidate package server. In this way, without adding any physical hardware, the pressure on the disk reading and writing and network IO of the package server is effectively alleviated, thereby improving the stability and reliability of the cloud gaming system.

[0100] Further, refer to Figure 4 , a third embodiment of the data processing method for cloud gaming of the present application is proposed.

[0101] The third example of the cloud game data processing method differs from the second example in that step S10 includes:

[0102] Step S11, determining a first number of game instances that each of the idle game instances supports being loaded simultaneously;

[0103] In this embodiment, after all game instances are connected to the network, the game instances automatically establish a two-way message channel with the control server according to the configured control server address information. After the message channel is successfully established, the game instance actively reports the CPU main frequency, storage space, memory value and bandwidth information to the control server, such as Report<GameInstanceID,CPU,Memory,Disk,Bandwidth> .

[0104] The control server calculates how many game instances can simultaneously load game packages if the idle game instance is converted into a candidate package server based on the CPU frequency, storage space, memory, and bandwidth information of the idle game instance. Specifically, the first resource of the idle game instance is determined, that is, the resource information required for the idle game instance to provide a game instance with game file reading and writing. The first resource includes the CPU frequency, storage space, memory value, and bandwidth information. At the same time, the second resource required for the cloud game to run on the idle game instance is determined, that is, the second resource required for a cloud game to run on the idle game instance is determined. The second resource includes the CPU frequency, storage space, memory value, and bandwidth information. Then, the product of each first resource is obtained. For example, the product of the CPU main frequency, storage space, memory value, and bandwidth information is obtained, that is, CPU main frequency * storage space * memory value * bandwidth information. At the same time, the weighted sum of each second resource is obtained. For example, assuming the weight of the CPU main frequency is 20%, the weight of the storage space is 30%, the weight of the memory value is 10%, and the weight of the bandwidth information is 40%, then the weighted sum of each second resource is: CPU main frequency * 20% + storage space * 30% + memory value * 10% + bandwidth information * 40%. Further, the product of each first resource and the weighted sum of each second resource are obtained. Then, a first difference between the product and the weighted sum is obtained, the first difference is rounded to obtain a second difference, and a first quotient of the second difference and the weighted sum is obtained. The first quotient is used as the first number of game instances that the idle game instance supports loading simultaneously.

[0105] In one embodiment, assuming that after the idle game instance is converted into a candidate package server, the maximum number of game instances that can support reading and writing game files loaded at the same time is: C i =floor((J(Y(i))-T_i) / T_min);

[0106] Among them, the function of floor is to "round down";

[0107] J(y) refers to the evaluation function value of the overall resources of the idle game instance, where J(Y(i)) = CPU_i*Memory_i*Disk_i*Bandwidth_i, that is, J(Y(i)) is the product of CPU main frequency, storage space, memory value and bandwidth information;

[0108] T_i refers to the resource information required by the idle game instance to provide game file reading and writing for a game instance;

[0109] T_min refers to the minimum resource information required by the idle game instance to run a game instance, T_min = T_AVG + 3σ, where:

[0110] T_AVG refers to the amount of resources an idle game instance provides for reading and writing N game instances. Then, the average resource information required for reading and writing files for N game instances is calculated, where T_AVG = (T_1 + T_2 + T_3 + ... + T_N) / N.

[0111] σ refers to the standard deviation of the resources consumed by the idle game instance to provide file reading and writing for N game instances, where σ = sqrt(((T_1-T_AVG)^2+(T_2-T_AVG)^2+...(T_N-T_AVG)^2) / N), where ^2 is the square and sqrt is the square root.

[0112] In addition, the control server will add basic information of the game instance to local storage for easy access, for example:

[0113] <GameInstanceID,baseInfo,isPkgServer,Status> ,in:

[0114] GameInstanceID refers to the unique identifier of the game instance;

[0115] baseInfo refers to a structure containing basic information about the game instance: CPU frequency, storage space, memory, and bandwidth information;

[0116] isPkgServer refers to whether it has been converted to a package server, True: Yes, False: No;

[0117] The initial status is free. When the game instance is selected to run a game and push the game video stream to the user, the status of the game instance changes from free to busy.

[0118] Step S12, obtaining a second number of the first target busy game instances;

[0119] In this embodiment, the number of game instances supported by the full package server for simultaneous loading and the number of busy game instances in the system are obtained, and then the third difference between the number of game instances supported by the full package server for simultaneous loading and the number of busy game instances is obtained, and the third difference is used as the second number of the first target busy game instances. For example, assuming that the number of game instances supported by the full package server for simultaneous loading is M and the number of busy game instances is S busy , then the number of idle games that the full package server does not support loading (ie the second number) is: S busy -M.

[0120] Step S13: Determine the number of game instances to be converted to the candidate package server based on the second number and the minimum of the first number.

[0121] In this embodiment, according to the second number and the smallest first number (ie the smallest C i ) Determine the number of game instances to be converted into candidate package servers. For example, the control server calculates the number k of game instances to be converted into candidate package servers every 10 minutes, where the calculation formula for k is: k = (S busy -M) / W, where:

[0122] M: The full package server supports loading M game instances at the same time.

[0123] S free : The number of game instances that are currently in the free state S free .

[0124] S busy : The number of game instances that are currently busy S busy .

[0125] W: The smallest C in the game instance i , assigned to W, where C i Supports a first number of simultaneously loaded game instances for each idle game instance.

[0126] In this embodiment, the number of game instances C that each idle game instance supports to be loaded simultaneously is calculated. i , and obtain the second number of the first target busy game, then, based on the second number and the minimum C i The number of game instances to be converted into candidate package servers is calculated, and the corresponding number of idle game instances can be further converted into candidate package servers, thereby improving the stability and reliability of the cloud gaming system.

[0127] Further, refer to Figure 5, a fourth embodiment of the data processing method for cloud gaming of the present application is proposed.

[0128] The fourth example of the cloud game data processing method differs from the third embodiment in that step S20 includes:

[0129] Step S21: when the number is less than or equal to the total number of idle game instances, compare the resource information of each of the idle game instances to obtain a comparison result;

[0130] Step S22, determining the number of idle game instances to be converted from the idle game instances according to the comparison result;

[0131] Step S23: convert the idle game instance to be converted into the candidate package server.

[0132] The control server compares the resource information of each idle game instance to obtain a comparison result. Based on the comparison result, the control server determines the optimal idle game instance corresponding to the required number (i.e., the idle game instance to be converted). The optimal idle game instance is then converted into a candidate package server. The resource information refers to the idle game instance's remaining space, remaining memory, CPU frequency, and bandwidth information. In one embodiment, the control server searches for a game instance from a collection of idle game instances that has the optimal remaining space, memory size, CPU frequency, and bandwidth information, and converts it into a candidate package server.

[0133] Specifically, the control server selects S free The i-th game instance S i and the i+1th game instance S i+1 Then, the game instance S i With the game instance S i+1 Compare the resource status of the

[0134] When T>T_min(T is the S i+1 When the remaining resources of the game instance as the candidate package server, T_min refers to the minimum resource information required to run a game instance, the following steps are repeated:

[0135] (1) Calculate game instance resources S i+1 and game instance S i Resource difference, dE = (Y(i+1)) - J(Y(i)), where J(y) is the evaluation function value of the game instance resources, J(Y(i)) = CPU_i*Memory_i*Disk_i*Bandwidth_i;

[0136] (2) if (dE>=0), it indicates a new game instance S i+1If the resources are better than those of the current game instance, take the new game instance as the new current game instance, and set Y(i + 1) = Y(i);

[0137] (3) If (dE <= 0), it means that the new game instance S i+1 has inferior resources to the current game instance, that is, the resources of the current game instance are newer, and the current game instance remains unchanged;

[0138] Alternatively, when (dE <= 0), continue to determine whether to accept the movement of the game instance with a certain probability. If (exp(dE / T) > random(0, 1)), it means that the probability is within the acceptable range. Continue to search for new game instance resources to find an approximate global optimal solution and jump out of the local optimal solution with a certain probability.

[0139] Specifically, when (exp(dE / T) > random(0, 1)), take the new game instance S i+1 as the new current game instance resource, and set Y(i + 1) = Y(i);

[0140] where exp(dE / T) represents the probability, and its value range is (0, 1), and exp represents the natural exponent;

[0141] T = r * T; (where r is the probability of cooling down. The larger r is, the slower the cooling; the smaller r is, the faster the cooling. It can be understood that the probability r gradually decreases over time (tends to be stable when gradually decreasing), that is, cooling down);

[0142] 0 < r < 1. If r is too large, the possibility of finding the global optimal solution may be higher, but the search process is relatively long; if r is too small, the search process is faster, but finally it may reach a local optimal value. Therefore, to improve the search efficiency, set r = 0.5;

[0143] (4) Based on the new game instance resources, continue to follow the above steps to find the game instance with the optimal neighborhood and select it as the candidate package body server 1, and the number of game instances C1 that can be loaded simultaneously;

[0144] Continue to execute the above steps until the optimal K game instances are found as candidate package body servers, P = {P1, P2,..., P k};

[0145] Continue to find game instance 2 as candidate package body server 2, calculate the number of game instances C2 that candidate package body server 2 can support to load simultaneously, until the optimal K game instances are found as candidate package body servers, and the number of game instances supported to run C = C1 + C2 +... + C k , then there is no need to find new candidate package body servers.

[0146] This embodiment compares the resource information of each idle game instance to determine the optimal idle instance, and then converts the optimal idle instance into a candidate package server, thereby improving the loading efficiency of the game file.

[0147] In addition, the present application also provides a data processing device for cloud gaming, comprising a memory, a processor, and a data processing program stored in the memory and running on the processor. The device determines the number of game instances to be converted into candidate package servers; when the number is less than or equal to the total number of idle game instances, converts the idle game instances into candidate package servers; and controls the candidate package servers to load game files from the full package servers. This embodiment improves the stability and reliability of the cloud gaming system by converting idle game instances into candidate package servers and then using the candidate package servers to share the disk read / write and network transmission pressure of the full package servers.

[0148] In addition, the present application also provides a computer-readable storage medium, which stores a data processing method program for cloud games. When the data processing method program for cloud games is executed by a processor, the steps of the above data processing method for cloud games are implemented.

[0149] Those skilled in the art will appreciate that the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, the present application can adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application can adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) that contain computer-usable program code.

[0150] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable cloud gaming data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable cloud gaming data processing device generate instructions for implementing the processes in the process. Figure 1 a process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0151] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable cloud gaming data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device that implements the process. Figure 1 a process or multiple processes and / or boxes Figure 1 The function specified in one or more boxes.

[0152] These computer program instructions may also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable device to implement the process. Figure 1 a process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.

[0153] It should be noted that in the claims, any reference signs placed between brackets shall not be construed as limiting the claims. The word "comprising" does not exclude the presence of components or steps not listed in the claim. The word "a" or "an" preceding a component does not exclude the presence of a plurality of such components. The present application may be implemented by means of hardware comprising several different components and by means of a suitably programmed computer. In a unit claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The use of the words first, second, and third etc. does not indicate any order. These words may be interpreted as names.

[0154] Although the optional embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the optional embodiments and all changes and modifications that fall within the scope of the present application.

[0155] Obviously, those skilled in the art may make various changes and modifications to this application without departing from the spirit and scope of this application. Thus, if these modifications and variations of this application fall within the scope of the claims of this application and their equivalents, this application is intended to include these modifications and variations.

Claims

1. A data processing method for cloud gaming, characterized in that: The method comprises: Determining the number of game instances to be converted to candidate package servers, including: determining a first number of game instances that each idle game instance supports loading simultaneously; obtaining a second number of first target busy game instances; and determining the number of game instances to be converted to the candidate package servers based on the second number and the minimum of the first number. When the number of game instances of the candidate package server is less than or equal to the total number of idle game instances, converting the idle game instances equal to the number of game instances of the candidate package server into candidate package servers; Control the candidate package server to load the game file from the full package server.

2. The cloud game data processing method according to claim 1, wherein: Before the step of determining the number of game instances to be converted into candidate package servers, the method includes: When the full package server is overloaded, obtaining the first loading request time of the busy game instance; Determine a first target busy game instance according to the first loading request time; After the step of controlling the candidate package server to load the game file from the full package server, the method includes: Control the first target busy game instance to load the game file through the candidate package server.

3. The data processing method for cloud gaming according to claim 1, wherein: After the step of controlling the candidate package server to load the game file from the full package server, the method further includes: When the full package server is overloaded, obtaining the second loading request time of the busy game instance; Determine a second target busy game instance according to the second loading request time; Control the second target busy game instance to load the game file through the candidate package server.

4. The data processing method for cloud gaming according to claim 1, wherein: The step of determining the first number of game instances that each of the idle game instances supports to be loaded simultaneously comprises: Determining a first resource of the idle game instance and a second resource required for the cloud game to run on the idle game instance; Obtaining a product of each of the first resources and a weighted sum of each of the second resources; Obtaining a first difference between the product and the weighted sum, and rounding the first difference to obtain a second difference; Obtain a first quotient of the second difference and the weighted sum, and use the first quotient as a first number of game instances that the idle game instance supports being loaded simultaneously.

5. The cloud game data processing method according to claim 1, wherein: The step of obtaining the second number of first target busy game instances comprises: Obtain the number of game instances supported by the full package server for simultaneous loading, as well as the number of busy game instances; Obtain a third difference between the number of game instances supported by the full package server for simultaneous loading and the number of busy game instances; The third difference is used as the second number of the first target busy game instances.

6. The data processing method for cloud gaming according to claim 1, wherein: The number of the candidate package servers is at least two, and the step of controlling the candidate package servers to load game files from the full package server includes: Obtaining a game file from the full package server, and dividing the game file into a plurality of game sub-files, where the number of the game sub-files is less than or equal to the number of the candidate package servers; Control each candidate package server to load a game sub-file from the full package server; Control each candidate package server to load other game sub-files from the candidate package servers that have loaded other game sub-files, and merge all loaded game sub-files to obtain the game file.

7. The cloud game data processing method according to claim 1, wherein: The step of converting the number of idle game instances into candidate package servers includes: Comparing the resource information of each of the idle game instances to obtain a comparison result; determining the number of idle game instances to be converted from the idle game instances according to the comparison result; Convert the idle game instance to be converted to the candidate package server.

8. A data processing device for cloud gaming, characterized in that: The data processing device of the cloud game includes a memory, a processor, and a data processing program stored in the memory and running the cloud game on the processor. When the processor executes the data processing program of the cloud game, the steps of the method as described in any one of claims 1 to 7 are implemented.

9. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a data processing program for cloud gaming, and when the data processing program for cloud gaming is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

Citation Information

Patent Citations

  • Zoning adaptive network system based on cluster server and building method

    CN101753534A