Cloud gaming processing method, device, equipment, and computer program
The cloud gaming method enables multiple clients to access and operate the same instance using independent stream processing resources, enhancing flexibility and diversity by ensuring efficient and stable data transmission.
Patent Information
- Application Number
- JP2023548745
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-04-28
- Filing Date
- 2022-03-22
- Publication Date
- 2025-10-07
- Estimated Expiration
- 2042-03-22
AI Technical Summary
Cloud gaming operation modes lack flexibility and diversity, as users are typically limited to operating the cloud game instance they have logged in to.
Implementing a cloud gaming processing method that allows multiple clients to access and operate the same cloud game instance by binding each client to an independent stream processing resource, enabling targeted and individual encoding and quality control for efficient and stable data transmission.
This approach enhances the flexibility and diversity of cloud gaming operations by allowing multiple clients to access and operate the same instance efficiently and stably, reducing delays and improving media stream quality through independent stream processing resources.
Smart Images

Figure 0007750613000001 
Figure 0007750613000002 
Figure 0007750613000003
Abstract
Description
[Technical Field]
[0001] This application claims priority from a Chinese patent application filed with the China Patent Office on April 28, 2021, bearing application number 202110463379.X and titled "Cloud gaming processing method, device, equipment and storage medium," the entire contents of which are incorporated herein by reference.
[0002] The present application relates to the technical field of computers, in particular to the technical field of cloud gaming, and specifically to cloud gaming processing. [Background technology]
[0003] With the rapid development of computer technology, cloud gaming is occupying an increasingly important position in the gaming market. Cloud gaming is a gaming method based on cloud computing. The general flow is as follows: a user requests to launch a cloud game using their device, which then launches a cloud game instance in the cloud. The user logs in to the cloud game instance via their device and operates the cloud game, thereby realizing cloud game play. In the cloud game execution mode, all cloud game instances run on the cloud game server, which renders and compresses the game screen and transmits it to the user's device over the network for display. When the device detects user operation events, such as touch events, keyboard / mouse events, etc., it transmits the operation events to the cloud game server over the network, thereby achieving the purpose of operating the cloud game. Summary of the Invention [Problem to be solved by the invention]
[0004] The embodiments of the present application provide a cloud gaming processing method, device, equipment, and storage medium that can improve the flexibility and diversity of cloud gaming operation modes. [Means for solving the problem]
[0005] According to one aspect, an embodiment of the present application provides a cloud gaming processing method, the cloud gaming processing method comprising: receiving an access request from a second client to a cloud game instance, wherein the cloud game instance is created based on a play request from a first client to the cloud game, the first client is bound to a first path stream processing resource of the cloud game instance, and data transmission between the cloud game instance and the first client is realized by the first path stream processing resource; In response to an access request from a second client, creating a second path stream processing resource of the cloud game instance, wherein the first path stream processing resource and the second path stream processing resource are independent of each other; The method includes binding a second path stream processing resource to a second client, and realizing data transmission between the second client and the cloud game instance through the second path stream processing resource.
[0006] According to another aspect, an embodiment of the present application provides a cloud gaming processing device, the cloud gaming processing device including: a media encoding module and a media transmission module; The media transmission module receives a second client's access request to the cloud game instance, the cloud game instance is created based on the first client's play request to the cloud game, the first client is bound to a first path stream processing resource of the cloud game instance, and data transmission between the cloud game instance and the first client is realized by the first path stream processing resource; The media encoding module and the media transmission module both create a second path stream processing resource of the cloud game instance in response to an access request of a second client, and the first path stream processing resource and the second path stream processing resource are independent of each other; The media transmission module further binds a second path stream processing resource to a second client, and realizes data transmission between the second client and the cloud game instance through the second path stream processing resource.
[0007] According to another aspect, an embodiment of the present application provides a cloud gaming processing device, the cloud gaming processing device comprising: The present invention includes a processor suitable for implementing a computer program and a computer-readable storage medium having the computer program stored thereon, the computer program being suitable for being loaded by the processor to execute the above-mentioned cloud gaming processing method.
[0008] According to another aspect, an embodiment of the present application provides a computer-readable storage medium having a computer program stored therein, the computer program being capable of causing the computer device to perform the above-described cloud gaming processing method when read and executed by a processor of the computer device.
[0009] According to another aspect, an embodiment of the present application provides a computer program product or a computer program, the computer program product or the computer program including computer instructions stored in a computer-readable storage medium, a processor of a computer device reading the computer instructions from the computer-readable storage medium, and the processor executing the computer instructions to cause the computer device to perform the above-mentioned cloud gaming processing method. [Effects of the Invention]
[0010] In an embodiment of the present application, when a first client initiates a play request to a cloud game to create a cloud game instance, the first client is assigned a first path stream processing resource of the cloud game instance, and the first client is bound to the first path stream processing resource, with data transmission between the cloud game instance and the first client being realized by the first path stream processing resource. A second client can request access to the cloud game instance requested by the first client, and in response to the second client's access request, the second client is assigned a second path stream processing resource of the cloud game instance, and the second path stream processing resource is bound to the second client, with data transmission between the second client and the cloud game instance being realized by the second path stream processing resource. As can be seen, the embodiment of the present application supports multiple operations on the same cloud game instance, i.e., allows multiple clients (e.g., a first client and a second client) to access and operate the same cloud game instance, effectively improving the flexibility and diversity of cloud game operation modes. In addition, each client accessing the same cloud game instance is bound to a single stream processing resource of one path of the cloud game instance, and data transmission is realized through each bound single stream processing resource. This is advantageous for performing targeted and individual encoding stream control and quality control for each client based on each stream processing resource. Since each stream processing resource is independent of each other and does not affect each other, data can be transmitted efficiently and stably between the client and the cloud game instance. [Brief explanation of the drawings]
[0011] [Figure 1]1 is a schematic diagram of a processing scheme of cloud gaming provided by one exemplary embodiment of the present application. [Figure 2] FIG. 1 is a schematic diagram of a processing scheme for cloud gaming provided by another exemplary embodiment of the present application. [Figure 3] 1 is a schematic architecture diagram of a cloud gaming processing system provided by one exemplary embodiment of the present application. [Figure 4] 1 is a flowchart of a cloud gaming processing method provided by one exemplary embodiment of the present application. [Figure 5] 1 is a flowchart of a response process for responding to a client's access request provided by one exemplary embodiment of the present application. [Figure 6] 1 is a flowchart of a processing method for cloud gaming provided by another exemplary embodiment of the present application. [Figure 7a] 1 is a flowchart of a resolution setting process provided by one exemplary embodiment of the present application. [Figure 7b] 1 is a flowchart of a flow control process provided by one exemplary embodiment of the present application. [Figure 7c] 1 is a flowchart of a media frame dropping process provided by one exemplary embodiment of the present application. [Figure 7d] 1 is a flowchart of an authorization control process provided by one exemplary embodiment of the present application. [Figure 7e] 1 is a flowchart of a multi-user cloud gaming instance operation provided by one exemplary embodiment of the present application. [Figure 8a] 1 is a schematic diagram of an interface for cloud gameplay operation provided by one exemplary embodiment of the present application; FIG. [Figure 8b] FIG. 1 is a schematic interface diagram of a cloud game sharing operation provided by one exemplary embodiment of the present application. [Figure 8c] 1 is a flowchart of a cloud gaming instance access process provided by one exemplary embodiment of the present application. [Figure 9]1 is a schematic configuration diagram of a cloud gaming processing device provided by an exemplary embodiment of the present application; FIG. [Figure 10] FIG. 1 is a schematic diagram of a cloud gaming processing device provided by an exemplary embodiment of the present application. DETAILED DESCRIPTION OF THE INVENTION
[0012] The following clearly and completely describes the technical solutions of the embodiments of the present application, combined with the drawings of the embodiments of the present application, and it is obvious that the described embodiments are not all of the embodiments, but only some of the embodiments of the present application. All other embodiments obtained by a person skilled in the art based on the embodiments of the present application without any inventive effort fall within the scope of protection of the present application.
[0013] In order to more clearly understand the technical solutions provided by the embodiments of the present application, the technical terms of the embodiments of the present application are introduced below.
[0014] (1) Cloud Gaming. Cloud gaming, also known as gaming on demand, is a gaming method based on cloud computing technology. Cloud gaming enables high-quality games to be run on thin clients with relatively limited graphics processing and data computing capabilities. In a cloud gaming scenario, all cloud game instances are not run on the user's device but on the cloud gaming server. The cloud gaming server compresses and encodes the game screen and game audio from the cloud game instance into a media stream and then transmits the media stream to the user's device over the network. The media stream includes a video stream and an audio stream. The user's device does not need to have powerful graphics processing and data computing capabilities; it only needs to have basic streaming media playback capabilities and the ability to receive user input and send the user input to the server.
[0015] (2) Cloud Game Instance. A cloud game is deployed and executed on a cloud game instance, which represents a virtual computing resource including a set of basic computing components such as a CPU (Central Processing Unit), an operating system, a network, a magnetic disk, and a GPU (Graphics Processing Unit). That is, a cloud game instance is a successfully launched and operational cloud game. In a possible embodiment, the cloud game instance uses OpenGL ES technology to render the game interface. OpenGL ES (OpenGL for Embedded Systems) is a subset of the OpenGL (Open Graphics Library) 3D graphics API (Application Programming Interface), and OpenGL ES includes an API for rendering graphics.
[0016] (3) Containers. Containers are a lightweight virtualization scheme for cloud gaming, and cloud game instances run in containers. A cloud game server can run multiple containers, with each container corresponding to one cloud game instance. In the present application, the containers can include Docker containers in an ARM server or Linux environment. Docker is an open-source application container engine that allows developers to package their applications and dependent packages into portable mirrors and deploy them on any popular Linux (operating system) or Windows (operating system) machine to achieve virtualization. ARM (Advanced RISC Machine) servers are RISC (Reduced Instruction Set Computing) microprocessors, featuring small size, low power consumption, low cost, and high performance.
[0017] (4) Cloud Computing. Cloud gaming is based on cloud computing technology, which provides it with powerful graphics processing and data computing capabilities. Cloud computing is a computing mode in which computing tasks are distributed across a resource pool consisting of a large number of computers, allowing various application systems to obtain computing power, storage space, and information services as needed. The network that provides these resources is called the "cloud." For users, resources in the "cloud" are unlimitedly scalable, readily available, available as needed, expandable, and pay-per-use. Providers of cloud computing's basic capabilities create cloud computing resource pools (abbreviated as cloud platforms), commonly referred to as Infrastructure as a Service (IaaS) platforms. Cloud computing resource pools deploy various types of virtual resources for external clients to select and use. Cloud computing resource pools primarily include computing equipment (including virtualized machines and operating systems), storage equipment, and network equipment. If we divide it according to logical functions, the PaaS (Platform as a Service) layer is placed above the IaaS layer, and the SaaS (Software as a Service) layer is placed above the PaaS layer, and SaaS can also be placed directly on IaaS. PaaS is a platform on which software (e.g., databases, web containers, etc.) runs. SaaS is various business software (e.g., web portal sites, SMS mass transmission, etc.). Generally, SaaS and PaaS are layers above IaaS.
[0018] Cloud computing is a mode of provisioning and using IT (Internet technology) infrastructure, where needed resources are obtained over a network in a scalable manner on demand. Generalized cloud computing is a mode of provisioning and using services, where needed services are obtained over a network in a scalable manner on demand. Such services may be related to IT, software, the Internet, or other services. Cloud computing is the fusion of traditional computer and network technology advancements, such as grid computing, distributed computing, parallel computing, utility computing, network storage technologies, virtualization, and load balancing. Cloud computing has developed rapidly with the growth of the Internet, real-time data streams, and diversification of connected devices, as well as the needs for search services, social networks, mobile commerce, and open collaboration. Unlike traditional parallel distributed computing, the emergence of cloud computing conceptually drives a revolutionary change in the entire Internet model and enterprise management model.
[0019] (5) Blockchain technology. Blockchain is a new application mode of computer technologies such as distributed data storage, P2P (Peer to Peer) transmission, consensus mechanisms, and encryption algorithms. A blockchain is essentially a decentralized database, a series of data blocks associated using encryption methods, each containing information from a batch of network transactions that are used to verify the validity of the information (anti-counterfeiting) and generate the next block. Blockchain uses encryption methods to ensure that data cannot be tampered with or forged.
[0020] In order to more clearly understand the technical solutions provided by the embodiments of the present application, the implementation principle of cloud gaming will be introduced below. The implementation principle of cloud gaming roughly includes the following: 1. A terminal (e.g., a mobile phone, a PC (personal computer), etc.) includes a cloud gaming client, and a user enters and plays a cloud game through the cloud gaming client. 2. The cloud gaming server allocates and runs one container for each client participating in the cloud game, and each execution of one container launches one cloud game instance, that is, each time a user plays a cloud game, it corresponds to one cloud game instance. For example, when a user uses a cloud gaming client to enter and play a cloud game, the cloud gaming server launches and runs one container in the cloud, that is, launches and runs one cloud game instance. Then, the cloud game instance corresponds to the client used by the user, and provides the cloud gaming client with a cloud game interface through the cloud game instance. 3. The cloud game client displays the game interface returned from the corresponding cloud game instance, and when the user performs various operations on the game interface, the cloud game client reports the operation data resulting from these operations to the cloud game server, and the cloud game server refreshes the cloud game interface on the corresponding cloud game instance based on the operation data, and returns the refreshed game interface to the cloud game client for display. 4. After the cloud game play is finished, the cloud game instance created by the cloud game server is automatically destroyed.The operation performed by the user on the game interface includes a moving operation, a selecting operation, etc., for example, the user moves a game character on the game interface from a first position on the game interface to a second position on the game interface, or the user selects a game control on the game interface (for example, a single click, a double click, a long press, etc.). The operation data from the operation includes operation touch coordinates, for example, when the user moves a game character on the game interface from a first position on the game interface to a second position on the game interface, the operation data includes the coordinates on the game interface of the first position and the coordinates on the game interface of the second position, or when the user selects a game control on the game interface, the operation data includes the coordinates on the game interface of the game control.
[0021] Currently, cloud gaming usage scenarios generally only allow users to operate the cloud game instance they have logged in to, so the cloud gaming operation mode lacks flexibility and diversity. In order to improve the flexibility and diversity of the cloud gaming operation mode, the embodiments of the present application implement several practices and propose a series of solutions to support multiple operations on the same cloud game instance in cloud gaming.
[0022] One solution can be seen in FIG. 1, which shows a schematic diagram of a cloud gaming processing scheme provided by an exemplary embodiment of the present application. As shown in FIG. 1, multiple (two or more) clients can access the same cloud game instance of a cloud game. The embodiment of the present application will be described using a first client and a second client as an example. The first client and the second client share the same stream processing resource, and the cloud game instance transmits data to the first client or the second client based on the shared stream processing resource. Here, the stream processing resource refers to a tool (e.g., hardware or software program) that processes various types of data, such as media streams and operation data, during cloud game play. The stream processing resource includes codec resources, transmission control resources, etc. The codec resources are used for encoding or decoding, and the transmission control resources are used for data transmission, transmission control, etc. The codec resources are provided by a media encoding module, and the transmission control resources are provided by a media transmission module. The data transmission process between the cloud game instance and the first client or the second client using a shared stream processing resource includes: a step in which the cloud game server sends a media stream in the cloud game instance to the first client and the second client based on the stream processing resource; when the first client requests to operate the cloud game instance, a step in which the cloud game server receives operation data of the first client based on the stream processing resource; and when the second client requests to operate the cloud game instance, a step in which the cloud game server receives operation data of the second client based on the stream processing resource.
[0023] As shown in FIG. 1, the shared stream processing resource is provided by a media encoding module and a media transmission module. The media encoding module provides a codec resource for one path, and the media transmission module provides a transmission control resource for one path. The first client and the second client share the same stream processing resource, i.e., the first client and the second client share the same codec resource and the same transmission control resource. The media encoding module is used to capture media data for the cloud game instance, including game screens and game audio. After capturing the media data for the cloud game instance, the media encoding module performs encoding processing on the captured media data to obtain media streams, including video streams and audio streams. The media transmission module is used to transmit the media streams to the first client and the second client. When the first client operates the cloud game instance, the media transmission module transmits operation data of the first client to the media encoding module, and the media encoding module introduces the operation data of the first client into the cloud game instance to achieve the purpose of operating the cloud game instance. When the second client operates the cloud game instance, the media transmission module transmits the operation data of the second client to the media encoding module, and the media encoding module introduces the operation data of the second client into the cloud game instance to achieve the purpose of operating the cloud game instance. The solution shown in Figure 1 supports multiple clients to access the same cloud game instance of a cloud game, and can also support multiple operations on the same cloud game instance, which to a certain extent improves the flexibility and diversity of cloud game operation modes.Practice shows that multiple clients accessing a cloud gaming instance share the same stream processing resources, and since stream processing resources are shared by multiple clients, during peak network times, multiple clients are likely to compete for resources with each other, delaying the media stream transmission process and reducing the resolution of the media stream.
[0024] Based on the solution of Fig. 1, an embodiment of the present application further proposes another solution, which may be referred to in Fig. 2, which shows a schematic diagram of a cloud game processing scheme provided by another exemplary embodiment of the present application. As shown in Fig. 2, the cloud game also supports multiple (two or more) clients accessing the same cloud game instance of the cloud game, and can support multiple operations on the same cloud game instance. The embodiment of the present application takes access by a first client and a second client as an example. In addition, each client accessing the same cloud game instance is bound to a single stream processing resource of one path of the cloud game instance, and transmits data based on the bound single stream processing resource.
[0025] For a first client, the first client that accesses the cloud game instance is bound to a first path stream processing resource, and data is transmitted between the cloud game instance and the first client based on the first path stream processing resource bound to the first client, where the first path stream processing resource includes a separate codec resource and a separate transmission control resource, where the codec resource in the first path stream processing resource is provided by a first video encoding sub-module, and the transmission control resource in the first path stream processing resource is provided by a first media stream transmission sub-module. The data transmission process between the cloud game instance and the first client via the first path stream processing resource includes the steps of: a first video encoding submodule performing an encoding process on the game screen captured from the cloud game instance and transmitting the first video stream obtained by the encoding to a first media stream transmission submodule; a first media stream transmission submodule sending a first media stream consisting of the first video stream and an audio stream to the first client; and when the first client operates the cloud game instance, the first media stream transmission submodule transmitting the operation data of the first client to the first video encoding submodule, and the first video encoding submodule introducing the operation data of the first client into the cloud game instance.
[0026] For a second client, the second client that accesses the cloud game instance is bound to a second path stream processing resource, and data is transmitted between the cloud game instance and the second client based on the second path stream processing resource bound to the second client, where the second path stream processing resource includes a separate codec resource and a separate transmission control resource, where the codec resource of the second path stream processing resource is provided by a second video encoding sub-module, and the transmission control resource of the second path stream processing resource is provided by a second media stream transmission sub-module. The data transmission process between the cloud game instance and the second client via the second path stream processing resource includes: a second video encoding sub-module encoding a game screen captured from the cloud game instance and transmitting the encoded second video stream to a second media stream transmission sub-module; the second media stream transmission sub-module transmitting a second media stream consisting of a second video stream and an audio stream to the second client; and when the second client operates the cloud game instance, the second media stream transmission sub-module transmitting operation data of the second client to the second video encoding sub-module, and the second video encoding sub-module introducing the operation data of the second client into the cloud game instance. In this solution, each client is subjected to targeted and individual encoding stream control and quality control based on each independent stream processing resource, and the stream processing resources are independent and do not affect each other, thereby enabling efficient and stable data transmission between the client and the cloud game instance.
[0027] Hereinafter, a cloud gaming processing system suitable for realizing the cloud gaming processing scheme provided by the embodiments of the present application will be introduced, and the cloud gaming processing scheme shown in Figure 2 will be introduced in more detail by combining the cloud gaming processing system. Figure 3 shows a schematic architecture diagram of a cloud gaming processing system provided by one exemplary embodiment of the present application. As shown in Figure 3, the cloud gaming processing system 30 includes a first terminal 301, a second terminal 302, a third terminal 303, and a server 304. Here, in an actual application scenario, the number of terminals included in the cloud gaming processing system 30 may be at least one. The embodiments of the present application will be described taking the cloud gaming processing system 30 including the first terminal 301, the second terminal 302, and the third terminal 303 as an example. Any one of the first terminal 301, the second terminal 302, or the third terminal 303 may be, but is not limited to, a smartphone, tablet, laptop, desktop computer, in-vehicle device, smart speaker, smart watch, etc. A first cloud gaming client may be executed on the first terminal 301, a second cloud gaming client may be executed on the second terminal 302, and an observer client may be executed on the third terminal 303. The first client, the second client, and the observer client may each be any one of an independent application program, API, or SDK (Software Development Kit). The cloud gaming server 304 may be an independent physical server, a server cluster or a distributed system consisting of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain services, security services, CDN (Content Delivery Network) services, big data, and artificial intelligence platforms.The first terminal 301, the second terminal 302, the third terminal 303 and the cloud game server 304 may be directly or indirectly connected via wired or wireless communication, which is not limited in this application.
[0028] The server 304 may include a cloud gaming instance, a media encoding module, and a media transmission module. The media encoding module includes an image capture sub-module, an audio capture sub-module, an audio pre-processing sub-module, and at least one video encoding sub-module. In the embodiments of the present application, the media encoding module includes a first video encoding sub-module and a second video encoding sub-module. The image capture sub-module can capture game screens from a cloud game instance. The audio capture sub-module can capture game audio from the cloud game instance. The first video encoding sub-module can perform encoding on the captured game screens and transmit the resulting first video stream to the media transmission module. The second video encoding sub-module can perform encoding on the captured game screens and transmit the resulting second video stream to the media transmission module. The audio pre-processing sub-module can perform audio pre-processing on the captured game audio and transmit the audio pre-processed game audio to the media transmission module. The audio pre-processing is a simple process performed on the game audio before encoding. The audio pre-processing can improve the encoding efficiency of the game audio and can include noise reduction for the game audio and extraction of audio features from the game audio.
[0029] The media transmission module includes an audio encoding sub-module, a forwarding sub-module, and at least one media stream transmission sub-module. In the embodiments of the present application, the media transmission module includes a first media stream transmission sub-module and a second media stream transmission sub-module. The forwarding sub-module transmits data, for example, the first video stream transmitted from the first video encoding sub-module to the first media stream transmission sub-module, the second video stream transmitted from the second video encoding sub-module to the second media stream transmission sub-module, and the audio pre-processed game audio transmitted from the audio pre-processing sub-module to the audio encoding sub-module. The audio encoding sub-module encodes the audio pre-processed game audio to obtain an audio stream, and forwards the audio stream to the first media stream transmission sub-module and the second media stream transmission sub-module. The first media stream transmission sub-module transmits the first media stream, consisting of the first video stream and the audio stream, to the first client and the observer client. The second media stream transmission sub-module can transmit a second media stream, which consists of a second video stream and an audio stream, to a second client.
[0030] Based on the cloud game processing scheme shown in Figure 2 and the cloud game processing system shown in Figure 3, functions such as data transmission, flow control, authority control, real-time adjustment of transmission parameters, and transmission monitoring can be realized between the cloud game instance and the client. The following introduces each of the above functions. (1) Data transmission The first video encoding sub-module provides a codec resource of the first path stream processing resource, and the first media stream transmission sub-module provides a transmission control resource of the first path stream processing resource, that is, the first video encoding sub-module and the first media stream transmission sub-module jointly provide the first path stream processing resource. The first path stream processing resource is bound to a first client, and data is transmitted between the cloud game instance and the first client based on the first path stream processing resource. The data transmission process between the cloud game instance and the first client via the first path stream processing resource includes: the first video encoding sub-module encoding a game screen captured from the cloud game instance and transmitting the first video stream obtained by the encoding to the first media stream transmission sub-module; and the first media stream transmission sub-module transmitting the first media stream consisting of the first video stream and the audio stream to the first client. When the first client operates the cloud game instance, the first media stream transmission sub-module transmits the operation data of the first client to the first video encoding sub-module, and the first video encoding sub-module introduces the operation data of the first client into the cloud game instance. In this way, by binding the first client to the first path stream processing resource, efficient and stable data transmission between the first client and the cloud game instance can be ensured.
[0031] The second video encoding sub-module can provide a codec resource of the second path stream processing resource, and the second media stream transmission sub-module can provide a transmission control resource of the second path stream processing resource, that is, the second video encoding sub-module and the second media stream transmission sub-module jointly provide the second path stream processing resource. The second path stream processing resource is bound to a second client, and data is transmitted between the cloud game instance and the second client based on the second path stream processing resource. The data transmission process between the cloud game instance and the second client via the second path stream processing resource includes: the second video encoding sub-module performs an encoding process on the captured game screen and transmits the second video stream obtained by the encoding to the second media stream transmission sub-module; and the second media stream transmission sub-module transmits the second media stream consisting of the second video stream and the audio stream to the second client. When the second client operates the cloud game instance, the second media stream transmission sub-module transmits the operation data of the second client to the second video encoding sub-module, and the second video encoding sub-module introduces the operation data of the second client into the cloud game instance. In this way, by binding the second client to the second path stream processing resource, efficient and stable data transmission between the second client and the cloud game instance can be ensured.
[0032] (2) Flow control The first path stream processing resource may perform rate control during transmission of the first media stream. The rate control process is as follows: During transmission of the first media stream to the first client, the first media stream transmission sub-module may also send a network probe packet to the first client and receive network information feedback from the first client. The network probe packet is a probe toolkit for probing a network congestion status, and the network information is information describing the network congestion status. If the network information indicates that the network is not congested, the first media stream transmission sub-module may send a first stream control command to the first video encoding sub-module. The first stream control command is used to instruct the first video encoding sub-module to increase the media encoding bit rate in the first video encoding sub-module, increase the frame rate of media frames in the first video encoding sub-module, etc. If the network information indicates that the network is congested, the first media stream transmission sub-module can send a second stream control command to the first video encoding sub-module, where the second stream control command is used to instruct the first video encoding sub-module to reduce a media encoding bit rate in the first video encoding sub-module, reduce a frame rate of media frames in the first video encoding sub-module, drop some media frames in the first media stream, etc. The media encoding bit rate is the number of bits that transmit a media stream within a unit time (e.g., 1 second), and the higher the media encoding bit rate, the clearer the image quality of the game screen will be, and the lower the media encoding bit rate, the less clear the image quality of the game screen will be.The frame rate of a media frame is the number of media frames in a media stream encoded within a unit time (e.g., 1 second), and the higher the frame rate of the media frame, the smoother the game screen will be, while the lower the frame rate of the media frame, the more laggy the game screen will be. In this way, by performing targeted and individual flow control on the first client, it is possible to effectively reduce delays in the process of transmitting the media stream to the first client and improve the definition and fluency of the media stream. The second path stream processing resource may perform rate control during transmission of the second media stream. The rate control process is as follows: During transmission of the second media stream to the second client, the second media stream transmission sub-module may send a network probe packet to the second client and receive network information feedback from the second client. If the network information indicates that the network is not congested, the second media stream transmission sub-module may send a first stream control command to the second video encoding sub-module. The first stream control command is used to instruct the second video encoding sub-module to increase the media encoding bitrate in the second video encoding sub-module, increase the frame rate of media frames in the second video encoding sub-module, etc. If the network information indicates that the network is congested, the second media stream transmission sub-module can send a second stream control command to the second video encoding sub-module, which is used to instruct the second video encoding sub-module to reduce the media encoding bit rate in the second video encoding sub-module, reduce the frame rate of media frames in the second video encoding sub-module, drop some media frames in the second media stream, etc. In this way, by performing flow control targeted and individually for the second client, the delay in the process of transmitting the media stream to the second client can be effectively reduced, and the definition and fluency of the media stream can be improved.
[0033] (3) Permission Control In the first and second clients that access the cloud game instance, the operation data of the client that has the operation authority for the cloud game instance can be introduced into the cloud game instance, and the operation data of the client that does not have the operation authority for the cloud game instance can be dropped during transmission. Specifically, if the first client does not have the operation authority for the cloud game instance, the first video encoding sub-module can drop the operation data of the first client, or if the second client does not have the operation authority for the cloud game instance, the second video encoding sub-module can drop the operation data of the second client. In this way, dropping the operation data can perform authority control for each client that accesses the cloud game instance, which is advantageous for performing authority management control for each client that accesses the cloud game instance.
[0034] (4) Real-time adjustment of transmission parameters The cloud game instance may support real-time adjustment of transmission parameters. A client accessing the cloud game instance may send a transmission parameter setting request to the media transmission module. The media transmission module may modify the original transmission parameters in response to the transmission parameter setting request. The media encoding module may perform encoding processing on the game screen using the modified transmission parameters. For example, if a first client accessing the cloud game instance sends a media encoding bitrate setting request to the first media stream transmission submodule, the first media stream transmission submodule may modify the original media encoding bitrate based on the media encoding bitrate requested in the media encoding bitrate setting request and transmit the modified media encoding bitrate to the first video encoding submodule. The first video encoding submodule may perform encoding processing on the game screen using the modified media encoding bitrate. Alternatively, if a second client accessing the cloud game instance sends a request to the second media stream transmission sub-module to set a frame rate of media frames, the second media stream transmission sub-module modifies the original frame rate of media frames based on the frame rate of media frames requested in the request to set a frame rate of media frames, and transmits the modified frame rate of media frames to the second video encoding sub-module, which then performs encoding processing on the game screen using the modified frame rate of media frames. In this way, clients can adjust transmission parameters in real time according to their needs, and the bound stream processing resources can adjust or modify transmission parameters in real time according to the adjustment needs of the clients, which is highly flexible and efficient.
[0035] (5) Transmission monitoring An observer client that accesses a cloud game instance can share the stream processing resources of the cloud game instance. The observer client may be a client used by a cloud game tester, and the observer client monitors the data transmission process by the stream processing resources. Specifically, when an access request for a cloud game instance from an observer client is received, a stream processing resource of one path is selected from the existing stream processing resources of the cloud game instance, and the selected stream processing resource of one path is bound to the observer client. Selecting a stream processing resource for one path from the existing stream processing resources of the cloud game instance may involve randomly selecting and binding a stream processing resource for one path from the existing stream processing resources of the cloud game instance. For example, if the existing stream processing resources of the cloud game instance are a first path stream processing resource and a second path stream processing resource, one path can be randomly selected from the first path stream processing resource and the second path stream processing resource. For example, the first path stream processing resource can be selected and bound to an observer client. Selecting a stream processing resource for one path from the existing stream processing resources of the cloud game instance may involve selecting and binding a predetermined stream processing resource for one path from the existing stream processing resources of the cloud game instance. For example, if the existing stream processing resources of the cloud game instance are a first path stream processing resource and a second path stream processing resource, and the predetermined stream processing resource is the first path stream processing resource, the observer client can be bound to the first path stream processing resource.After receiving the first media stream transmitted from the first media stream transmission sub-module, the observer client can analyze and display the game screen in the first media stream to verify whether the game screen is clear and smooth. In addition, since the observer client does not participate in rate control but only observes the game screen, the observer client and the first client can share the first path stream processing resources, thereby effectively reducing resource consumption and saving transmission bandwidth.
[0036] In an embodiment of the present application, a cloud game server allows multiple clients to access and operate the same cloud game instance, effectively improving the flexibility and diversity of cloud game operation modes. The cloud game server creates and binds an independent stream processing resource for each of multiple clients accessing the same cloud game instance. Any stream processing resource can transmit data between the bound client and the cloud game instance, ensuring efficient and stable data transmission. Any stream processing resource can perform targeted and individual rate control for the bound client, effectively reducing delays in the media stream transmission process and effectively improving the definition and fluency of the media stream. If a client does not have permission to operate the cloud game instance, the bound stream processing resource can perform permission control for the client by dropping the operation data, which is advantageous for performing permission management control for each client accessing the cloud game instance. Clients can adjust transmission parameters in real time according to their needs, and the bound stream processing resource can adjust or modify transmission parameters in real time according to the client's adjustment needs, resulting in high flexibility and efficiency.
[0037] The cloud gaming processing scheme proposed in the embodiments of the present application may also be combined with a blockchain. For example, a cloud gaming client or server may be a node in a blockchain network. The binding process between the client and the stream processing resource in the embodiments of the present application and the data transmission process between the client and the cloud game instance by the stream processing resource may both be uploaded to and stored in the blockchain. For example, media streams, operation data, etc. in the embodiments of the present application may be stored in the blockchain in the form of blocks, and the binding relationship between the client and the stream processing resource may also be stored in the blockchain in the form of blocks. Due to the immutable and unforgeable characteristics of blocks in the blockchain, the binding process between the client and the stream processing resource is more secure and reliable, and the data transmission process between the client and the cloud game instance by the stream processing resource is more secure and reliable.
[0038] Here, the cloud gaming processing system described in the examples of the present application does not limit the technical solutions provided by the examples of the present application, but is intended to more clearly explain the technical solutions of the examples of the present application. As those skilled in the art will appreciate, with the evolution of system architecture and the emergence of new traffic scenarios, the technical solutions provided by the examples of the present application can be similarly applied to similar technical problems.
[0039] Based on the above description, Figure 4 shows a flowchart of a cloud gaming processing method provided by an exemplary embodiment of the present application, which is executed by a cloud gaming processing device provided by the embodiment of the present application, and the cloud gaming processing device may be the cloud gaming server 304 in the cloud gaming processing system 30 shown in Figure 3. The cloud gaming processing method may include the following steps S401 to S404. S401: Receive a second client's access request to a cloud gaming instance.
[0040] A cloud game instance is created based on a first client's request to play a cloud game, the first client is bound to a first path stream processing resource of the cloud game instance, and data transmission between the cloud game instance and the first client is realized by the first path stream processing resource. Specifically, when a cloud game server receives a first client's request to play a cloud game, it can obtain the number of cloud game instances created in the cloud game. If the number of cloud game instances created in the cloud game does not exceed (i.e., is equal to or less than) an instance creation threshold, the cloud game server creates a cloud game instance based on the first client's request to play the cloud game, creates a first path stream processing resource, binds the first path stream processing resource to the first client, and transmits data between the cloud game instance and the first client based on the first path stream processing resource. The instance creation threshold is an upper limit on the number of cloud game instances that can be created by one cloud game. For example, the upper limit on the number of cloud game instances that can be created by one cloud game is 50,000. If the number of cloud game instances created in the cloud game exceeds (i.e., is greater than) the instance creation threshold, the processor of the cloud game returns a cloud game instance creation failure notification to the first client, and for the first client, after receiving the cloud game instance creation failure notification, the first client may restart the play request for the cloud game, or may queue and wait until the cloud game server creates the cloud game instance when the number of cloud game instances created in the cloud game does not exceed (i.e., is less than) the instance creation threshold.
[0041] The step of realizing data transmission between the cloud game instance and the first client by the first path stream processing resource includes the steps of obtaining a media stream in the cloud game instance, sending the media stream (e.g., the above-mentioned first media stream) to the first client by the first path stream processing resource, and receiving operation data of the first client by the first path stream processing resource when the first client requests to operate the cloud game instance.
[0042] The second client's access request for the cloud game instance is triggered by the shared password. Specifically, the cloud gaming server receives the first client's request for sharing the cloud game instance. After receiving the first client's request for sharing the cloud game instance, the cloud gaming server returns the shared password of the cloud game instance to the first client in response to the first client's request for sharing, thereby allowing the first client to share the shared password with other clients other than the first client. In one implementation, after receiving the shared password of the cloud game instance returned from the cloud gaming server, the first client shares the shared password with the second client. After receiving the shared password shared by the first client, the second client can input the shared password into the second client's cloud game joining interface, thereby triggering the second client to send an access request for the cloud game instance to the cloud gaming server. In another implementation, the shared password may be a cloud gaming join link, and the second client can trigger an access request for the cloud gaming instance to be sent to the cloud gaming server by directly clicking on the shared password shared by the first client.The shared password may include a cloud game instance identifier and a login password for the cloud game instance. The cloud game instance identifier is used to identify the cloud game instance, i.e., it can ensure that the cloud game instance to which the second client requests access is the cloud game instance shared by the first client. The cloud game instance login password is used to verify the identity of the second client. For example, the login password for the cloud game instance entered by the second client is compared with the login password for the cloud game instance stored in the cloud game server. If the two are the same, the verification is successful and the second client is allowed to access the cloud game instance. If the two are different, the verification fails and the second client is prohibited from accessing the cloud game instance. By verifying the identity of the second client using the login password for the cloud game instance, it can be ensured that the second client accessing the cloud game instance is trustworthy.
[0043] S402: In response to an access request from a second client, create a second path stream processing resource for the cloud gaming instance.
[0044] After receiving a second client's access request for the cloud game instance, a second path stream processing resource of the cloud game instance can be created in response to the second client's access request. As shown in the above embodiment of FIG. 2, the second path stream processing resource is provided by a second video encoding sub-module and a second media stream transmission sub-module. The second video encoding sub-module can perform encoding processing on the captured game screen of the cloud game instance and transmit the second video stream obtained by encoding to the second media stream transmission sub-module. The second media stream transmission sub-module can transmit the second media stream consisting of the second video stream and the audio stream to the second client. The first path stream processing resource and the second path stream processing resource are independent of each other.
[0045] The access request of the second client includes a user identifier (userID2) of the second client and a first access policy (Exclusive policy), where the first access policy is used to indicate that the type of the second client is a user type. In this case, creating a second path stream processing resource of the cloud game instance may include: assigning an access session identifier (SDK Session ID2) to the second client based on the user identifier of the second client; and generating a second path stream processing resource of the cloud game instance and an identifier (CG Session ID2) of the second path stream processing resource based on the first access policy, where the second path stream processing resource and the corresponding identifier are generated in real time.
[0046] S403: Bind the second path stream processing resource to the second client.
[0047] After creating the second path stream processing resource of the cloud game instance, the second path stream processing resource can be bound to a second client. Binding the second path stream processing resource to the second client means establishing a binding relationship between an access session identifier of the second client and an identifier of the second path stream processing resource, thereby realizing the binding between the second path stream processing resource and the second client.
[0048] S404: A second path stream processing resource realizes data transmission between the second client and the cloud game instance.
[0049] After binding the second path stream processing resource to the second client, data transmission between the second client and the cloud game instance can be realized by the second path stream processing resource. The step of realizing data transmission between the second client and the cloud game instance by the second path stream processing resource can include: acquiring a media stream (e.g., the above-mentioned second media stream) in the cloud game instance; sending the media stream to the second client by the second path stream processing resource; and, when the second client requests to operate the cloud game instance, receiving operation data of the second client by the second path stream processing resource.
[0050] The third client may be a client other than the first client and the second client that requests access to the cloud game instance. The cloud gaming server can receive the third client's access request for the cloud game instance, where the third client's access request includes the third client's user identifier (userID3) and an access policy. The response process of the cloud gaming server to the third client's access request can be seen in FIG. 5, which shows a flowchart of the response process for responding to a client's access request provided by an exemplary embodiment of the present application. As shown in FIG. 5, in one implementation, if the access policy is the first access policy, the cloud gaming server can create a third path stream processing resource for the cloud game instance in response to the third client's access request, bind the third path stream processing resource to the third client, and transmit data between the third client and the cloud game instance based on the third path stream processing resource. In another implementation, if the access policy is a second access policy (Shared policy), the cloud gaming server can check whether the cloud gaming instance has a stream processing resource created based on the first access policy, and the second access policy indicates that the type of the third client is an observer (e.g., the third client may be the observer client mentioned in the above embodiment).The cloud game instance has a stream processing resource created based on a first access policy. For example, if the cloud game instance has a first path stream processing resource and a second path stream processing resource, in response to an access request from a third client, a stream processing resource of one path is selected from the first path stream processing resource and the second path stream processing resource, and the selected stream processing resource of one path is bound to the third client. Data can be transmitted between the third client and the cloud game instance based on the selected stream processing resource of one path. Selecting a stream processing resource means randomly selecting a stream processing resource for one path from the first path stream processing resources and the second path stream processing resources of the cloud game instance (e.g., selecting a first path stream processing resource). Selecting a stream processing resource for one path from the first path stream processing resources and the second path stream processing resources of the cloud game instance also means selecting a predetermined stream processing resource for one path from the first path stream processing resources and the second path stream processing resources of the cloud game instance (e.g., if the predetermined stream processing resource is the first path stream processing resource, the selected stream processing resource is the first path stream processing resource). If the cloud game instance does not have a stream processing resource created based on the first access policy, in response to an access request from a third client, a third path stream processing resource for the cloud game instance is created, the third path stream processing resource is bound to the third client, and data is transmitted between the third client and the cloud game instance based on the third path stream processing resource.Creating a third path stream processing resource of the cloud game instance and binding the third path stream processing resource to the third client may be as follows: assigning an access session identifier (SDK Session ID3) to the third client based on the user identifier of the third client, generating a third path stream processing resource of the cloud game instance and an identifier (CG Session ID3) of the third path stream processing resource based on the first access policy, and establishing a binding relationship between the access session identifier of the third client and the identifier of the third path stream processing resource. Taking selecting a first path stream processing resource from the first path stream processing resource and the second path stream processing resource as an example, binding the selected one path stream processing resource to the third client means establishing a binding relationship between the access session identifier of the third client and the identifier (CG Session ID1) of the first path stream processing resource.
[0051] In an embodiment of the present application, multiple clients (e.g., a first client and a second client) can access and operate the same cloud game instance, thereby effectively improving the flexibility and diversity of cloud game operation modes. A separate stream processing resource is created and bound to each of the multiple clients accessing the same cloud game instance. The stream processing resource of any one of the cloud game instance's stream processing resources transmits data between the bound client and the cloud game instance. This allows targeted and individual encoding stream control and quality control for each client based on each stream processing resource. Since the stream processing resources are independent and do not affect each other, data can be transmitted efficiently and stably between the client and the cloud game instance. Taking a second client as an example, by establishing a binding relationship between the second client and a second path stream processing resource, when operation data of the second client is received, the bound second path stream processing resource is quickly determined based on the binding relationship, and the operation data of the second client is introduced into the cloud game instance by the second path stream processing resource; further, when a media stream of the cloud game instance is obtained, the second client bound to the second path stream processing resource is quickly determined based on the binding relationship, and the media stream is quickly transferred to the second client by the second path stream processing resource, thereby effectively improving the accuracy of the data transmission process and reducing the delay in the data transmission process.
[0052] Based on the above description, Figure 6 shows a flowchart of a cloud gaming processing method provided by another exemplary embodiment of the present application, where the cloud gaming processing method is performed by a cloud gaming processing device provided by the embodiment of the present application, and the cloud gaming processing device may be the cloud gaming server 304 in the cloud gaming processing system 30 of Figure 3. The cloud gaming processing method may include the following steps S601 to S606. S601: Receive a second client's access request to a cloud gaming instance.
[0053] A cloud game instance is created based on a first client's play request for the cloud game, the first client is bound to a first path stream processing resource of the cloud game instance, and data transmission between the cloud game instance and the first client is realized by the first path stream processing resource.
[0054] S602: In response to an access request of a second client, create a second path stream processing resource of the cloud game instance.
[0055] The access request of the second client includes a user identifier of the second client and a first access policy, and the first access policy is used to indicate that the type of the second client is a user type. In this case, creating a second path stream processing resource of the cloud gaming instance can include assigning an access session identifier to the second client based on the user identifier of the second client, and generating a second path stream processing resource of the cloud gaming instance and an identifier of the second path stream processing resource based on the first access policy.
[0056] S603: Bind the second path stream processing resource to the second client.
[0057] After creating the second path stream processing resource of the cloud game instance, the second path stream processing resource can be bound to a second client. Binding the second path stream processing resource to the second client means establishing a binding relationship between an access session identifier of the second client and an identifier of the second path stream processing resource, thereby realizing the binding between the second path stream processing resource and the second client.
[0058] S604: Acquire a media stream in the cloud gaming instance.
[0059] S605: Send the media stream to the second client based on the second path stream processing resource.
[0060] S606: When a second client requests to operate the cloud game instance, receive operation data of the second client by a second path stream processing resource.
[0061] A cloud game instance can support real-time adjustment of transmission parameters. A client accessing a cloud game instance can send a transmission parameter setting request to a cloud game server. In response to the transmission parameter setting request, the cloud game server can modify the original transmission parameters and perform encoding processing on the game screen using the modified transmission parameters. The transmission parameters can include at least one of a media encoding rate, a media frame frame rate, and a resolution. The media encoding bitrate may be the number of bits transmitted for a media stream within a unit of time (e.g., 1 second). A higher media encoding bitrate results in clearer image quality for the game screen, while a lower media encoding rate results in less clear image quality for the game screen. The media frame rate may be the number of media frames in a media stream encoded within a unit of time (e.g., 1 second). A higher media frame frame rate results in smoother game screens, while a lower media frame rate results in more laggy game screens. Resolution can include device resolution and encoding resolution. Device resolution, also known as display resolution, refers to the number of horizontal pixels and the number of vertical pixels in the entire visible area of the device's display screen. For example, if the device resolution is 720*960, 720 pixels will be displayed horizontally and 960 pixels will be displayed vertically in the entire visible area of the device's display screen. Once the device encoding rate is determined, it cannot be changed. Encoding resolution refers to the number of horizontal pixels and the number of vertical pixels in the encoded game screen. For example, if the encoding resolution is 720*960, 720 pixels will be displayed horizontally and 960 pixels will be displayed vertically in the encoded game screen.
[0062] Regarding the resolution in the transmission parameters, after the first client accesses the cloud game instance, the cloud game server can receive the device resolution sent from the first client based on the first path stream processing resource, where the device resolution may be the device resolution of the first terminal on which the first client runs, and the device resolution of the first terminal may be the number of horizontal pixels and the number of vertical pixels in the entire visible area of the display screen of the first terminal, for example, if the device resolution of the first terminal is 720*960, then 720 pixels will be displayed horizontally and 960 pixels will be displayed vertically in the entire visible area of the display screen of the first terminal. After receiving the device resolution sent from the first client, the cloud gaming server sets the container window resolution of the cloud game instance based on the device resolution. The step of setting the container window resolution of the cloud game instance based on the device resolution includes: setting a first ratio of the cloud game instance to be the same as a second ratio of the first terminal, where the first ratio is the ratio between the number of horizontal pixels and the number of vertical pixels of the container window of the cloud game instance, and the second ratio is the ratio between the number of horizontal pixels and the number of vertical pixels of the display screen of the first terminal. For example, if the device resolution of the first terminal is 720*960, the container window resolution of the cloud game instance is set to 1080*1440, and the ratios between the number of horizontal pixels and the number of vertical pixels are both 0.75. The cloud game server further sends a container window resolution to the first client based on the first path stream processing resource, and when the first client requests to operate the cloud game instance, can perform coordinate transformation on the operation touch coordinates based on the device resolution and the container window resolution, for example, can transform the first operation touch coordinates at the device resolution into the second operation touch coordinates at the container window resolution.
[0063] Here, once the container window resolution of the cloud game instance is determined, it cannot be changed. If the third ratio of the encoding resolution set by the client accessing the cloud game instance is different from the first ratio, the game screen in the media stream obtained by encoding will be stretched and deformed. Therefore, the third ratio of the encoding resolution set by the client must be maintained to be the same as the first ratio of the cloud game instance. The third ratio is the ratio of the number of horizontal pixels to the number of vertical pixels in the encoding resolution set by the client. Taking a second client as an example, after the second client accesses the cloud game instance, the cloud game server can send the container window resolution to the second client based on the second path stream processing resource. When the second client requests to operate the cloud game instance, it can perform coordinate transformation on the operation touch coordinates based on the device resolution and the container window resolution. The cloud gaming server may also receive a resolution setting request sent from the second client based on the second path stream processing resource, where the resolution setting request includes an encoding resolution requested by the second client. The cloud gaming server may modify the encoding resolution requested to be set based on a container window resolution and perform encoding processing on the media stream transmitted based on the second path stream processing resource using the modified encoding resolution. Modifying the encoding resolution requested to be set based on the container window resolution by the cloud gaming server may include setting a third ratio of the encoding resolution requested to be set to the same as the first ratio of the cloud game instance. For example, if the encoding resolution requested by the second client is 480P, the encoding resolution requested to be set may be modified based on the container window resolution of 1080*1440, whereby the modified encoding resolution is 480*640.
[0064] The resolution setting process may be described with reference to FIG. 7A, which illustrates a flowchart of the resolution setting process provided by an exemplary embodiment of the present application. Taking the second client as an example, after the container window resolution of the cloud game instance is determined, the second video encoding sub-module can transmit the container window resolution of the cloud game instance to the second media stream transmission sub-module. For example, the container window resolution of the cloud game instance is 1080*1440. After receiving the encoding resolution requested by the second client to be set, the second media stream transmission sub-module can modify the encoding resolution requested to be set based on the container window resolution to obtain the modified encoding resolution. For example, if the requested encoding resolution is 480P, the modified encoding resolution is 480*640. The second media stream transmission sub-module can then transmit the modified encoding resolution to the second video encoding sub-module, which can use the modified encoding resolution to perform encoding processing on the media stream to be transmitted to the second client.
[0065] As can be seen from the above description of real-time adjustment of transmission parameters, the cloud game server can adjust or modify the transmission parameters in real time based on the transmission parameter setting requests of clients accessing the cloud game instance, and can well meet the transmission parameter setting needs of clients accessing the cloud game instance, which is very flexible and efficient.
[0066] The cloud game instance can also support rate control during data transmission. The cloud game server sends a network probe packet to the second client based on the second path stream processing resource and receives network information feedback from the second client, where the network probe packet is a probe toolkit for probing a network congestion status, and the network information is information describing the network congestion status. The cloud game server can then adjust the data volume of the network probe packet and adjust the transmission parameters of the second path stream processing resource based on the network information. The step of adjusting the amount of data in the network probe packet and adjusting the transmission parameters of the second path stream processing resource based on the network information may include: if the network information indicates that the network is congested, reducing the amount of data in the network probe packet and making a first adjustment to the transmission parameters of the second path stream processing resource; and if the network information indicates that the network is not congested, increasing the amount of data in the network probe packet and making a second adjustment to the transmission parameters of the second path stream processing resource, wherein the first adjustment may include at least one of reducing a media encoding bit rate in the second path stream processing resource, reducing a frame rate of media frames in the second path stream processing resource, and dropping some media frames in the second path stream processing resource; and the second adjustment may include at least one of increasing a media encoding bit rate in the second path stream processing resource and increasing the frame rate of media frames in the second path stream processing resource.
[0067] The rate control process may be described with reference to Figure 7b, which shows a flow chart of a rate control process provided by an exemplary embodiment of the present application. Here, the rate control process between the second client and the cloud game instance is described as an example. The rate control process between the first client and the cloud game instance is similar to the rate control process between the second client and the cloud game instance, and therefore is not described here. The rate control process of Figure 7b may include the following: the second video encoding sub-module of the second path stream processing resource transmits the encoded second video stream to the second media stream transmission sub-module of the second path stream processing resource, and then the second media stream transmission sub-module transmits the second media stream including the second video stream and the audio stream to the second client. In transmitting the second media stream to the second client, the second media stream transmission sub-module may also transmit a network probe packet to the second client and receive network information feedback from the second client.The second media stream transmission submodule may send a stream control command to the second video encoding submodule based on the network information, and if the network information indicates that the network is not congested, the second media stream transmission submodule may send a first stream control command to the second video encoding submodule, and the first stream control command is used to instruct the second video encoding submodule to increase the media encoding bitrate in the second video encoding submodule, to increase the frame rate of media frames in the second video encoding submodule, etc.; if the network information indicates that the network is congested, the second media stream transmission submodule may send a second stream control command to the second video encoding submodule, and the second stream control command is used to instruct the second video encoding submodule to reduce the media encoding bitrate in the second video encoding submodule, to reduce the frame rate of media frames in the second video encoding submodule, to drop some media frames in the second media stream, etc.
[0068] Here, the second media stream transmission sub-module can transmit the second media stream and the network probe packet to the second client through an unreliable transport protocol, where the unreliable transport protocol can include RTP (Real-time Transport Protocol). The reliable transport protocol TCP (Transmission Control Protocol) cannot lose packets or retransmits lost packets when the network is congested, resulting in increased delays. Therefore, the transmission efficiency of TCP is reduced when the network is congested. Based on this, the embodiment of the present application can use the unreliable transport protocol RTP to transmit the media stream and the network probe packet. When the network is congested, the unreliable transport protocol RTP can spontaneously perform packet loss, which is advantageous for effectively reducing transmission delays when the network is congested. In addition, the second media stream transmission sub-module may adopt a protocol with a feedback mechanism to receive network information fed back from the second client, where the protocol with the feedback mechanism may include RTCP (RTP Control Protocol), and the network information may include RTCP RR (RTCP Receiver Report), and the client feeds back the network information once per target period, where the target period may be, for example, 100 milliseconds.
[0069] The second video encoding sub-module takes time to adjust transmission parameters such as the media encoding bit rate and the frame rate of media frames in response to stream control commands. Therefore, when the network suddenly becomes congested, the adjustment of the transmission parameters may cause a certain delay. Therefore, a method of dropping some media frames in the media stream is generally adopted to quickly reduce the media encoding bit rate. 7c shows a flowchart of a media frame dropping process provided by an exemplary embodiment of the present application. As shown in FIG. 7c, if the network information indicates that the network is suddenly congested, the second media stream transmission sub-module can send a media frame drop request to the second video encoding sub-module. In response to the media frame drop request, the second video encoding sub-module can drop some of the captured media frames according to a frame drop policy after the image capture sub-module captures a game screen. Dropping some of the captured media frames according to the frame drop policy means dropping some of the captured media frames according to a target proportion, and the target proportion may be one-third, one-tenth, one-two-hundredth, etc. of the number of media frames captured by the image capture sub-module. If the network information indicates that the network is not congested, the frame drop policy can be turned off.
[0070] As can be seen from the above description of flow control, the media encoding module and the media transmission module in the cloud game server can jointly perform flow control, effectively reduce the transmission delay of the media stream, improve the quality of the game screen in the media stream, and transmit data between the client and the cloud game instance efficiently and stably.
[0071] The cloud game instance can also support permission control during data transmission. The cloud gaming server can configure permissions for the second client based on the permission configuration request of the first client. The permissions can include at least one of operation permission for the cloud game instance or viewing permission for the cloud game instance. The operation permission for the cloud game instance is the permission to operate the cloud game instance, and the viewing permission for the cloud game instance is the permission to view the game screen of the cloud game instance. A user with viewing permission for the cloud game instance cannot operate the cloud game instance but can only view the game screen of other users operating the cloud game instance. If the second client does not have operation permission for the cloud game instance, the cloud gaming server can drop the operation data of the second client when receiving the operation data of the second client based on the second path stream processing resource. If the second client has operation permission for the cloud game instance, the cloud gaming server can introduce the operation data of the second client into the cloud game instance when receiving the operation data of the second client based on the second path stream processing resource. The operation data may include at least one of touch operation data (for example, the above-mentioned operation touch coordinates), text input data, voice input data, GPS (Global Positioning System) data, sensor sensing data, etc.
[0072] 7d shows a flowchart of an authority control process provided by an exemplary embodiment of the present application. As shown in FIG. 7d, the first media stream transmission sub-module provides an authority setting interface (HTTP Restful interface). The first client sends an authority setting request to the first media stream transmission sub-module through the authority setting interface of the first media stream transmission sub-module to request authority setting for the second client. The first media stream transmission sub-module then sets authority for the second client based on the authority setting request of the first client and sends the authority setting result to the first video encoding sub-module. The first video encoding sub-module then forwards the authority setting result to the second video encoding sub-module. If the authority setting result indicates that the second client does not have operation authority for the cloud game instance, the second video encoding sub-module can drop the operation data of the second client. If the authority allocation result indicates that the second client has operation authority for the cloud game instance, the second video encoding submodule can introduce the operation data of the second client into the cloud game instance to operate the cloud game instance.
[0073] As can be seen from the above description of authority control, the authority control of the cloud game instance is realized by introducing or dropping operation data, and the operation data of clients who have operation authority for the cloud game is introduced into the cloud game instance, and the operation data of clients who do not have operation authority for the cloud game is dropped during transmission, effectively enriching the operation mode of the cloud game.
[0074] The cloud game instance can also support simultaneous operation by multiple users, where two users, i.e., a first client and a second client, operate the cloud game instance as an example, the first client can be mapped to a first operation control in the cloud game instance, and the second client can be mapped to a second operation control in the cloud game instance, and both the first operation control and the second operation control can be a joystick in the cloud game instance. Figure 7e shows a flowchart for multi-users operating a cloud game instance provided by one exemplary embodiment of the present application. As shown in Figure 7e, when receiving operation data of a first client based on a first path stream processing resource, the cloud game processor can introduce the operation data of the first client into a first operation control and control the first operation control to operate the cloud game instance. Specifically, when the first client requests to operate a cloud game instance, the first media stream transmission sub-module can receive the operation data of the first client and transmit the received operation data of the first client to the first video encoding sub-module. The first video encoding sub-module can introduce the operation data of the first client into the first operation control and control the first operation control to operate the cloud game instance. When the first video encoding submodule acquires a game screen of a cloud game instance, it can perform an encoding process on the game screen to acquire a first video stream and transmit the first video stream to the first media transmission submodule, and the first media transmission submodule then transmits a first media stream including the first video stream and the audio stream to the first client.When receiving operation data of the second client according to the second path stream processing resource, the cloud gaming server can introduce the operation data of the second client into a second operation control to control the second operation control to operate the cloud game instance. Specifically, when the second client requests to operate the cloud game instance, the second media stream transmission sub-module can receive the operation data of the second client and transmit the received operation data of the second client to the second video encoding sub-module. The second video encoding sub-module can introduce the operation data of the second client into the second operation control to control the second operation control to operate the cloud game instance. When the second video encoding sub-module acquires a game screen of the cloud game instance, it can perform encoding processing on the game screen to acquire a second video stream and transmit the second video stream to the second media transmission sub-module. The second media transmission sub-module then transmits the second media stream including the second video stream and the audio stream to the first client.
[0075] The mapping of a first client to a first operation control in a cloud game instance includes the following two situations: a mapping relationship exists between the identifier of the first path stream processing resource and the identifier of the first operation control, i.e., a binding relationship is established between the identifier of the first path stream processing resource and the identifier of the first operation control, or the operation data sent from the first client includes the identifier of the first operation control. The mapping of a second client to a second operation control in a cloud game instance includes the following two situations: a mapping relationship exists between the identifier of the second path stream processing resource and the identifier of the second operation control, i.e., a binding relationship is established between the identifier of the second path stream processing resource and the identifier of the second operation control, or the operation data sent from the second client includes the identifier of the second operation control.
[0076] As can be seen from the above description of multiple users operating a cloud game instance simultaneously, the cloud game instance supports multiple clients to simultaneously introduce operation data, which effectively enriches the operation mode of the cloud game.
[0077] In an embodiment of the present application, the cloud game server adjusts or modifies transmission parameters in real time based on the transmission parameter setting requests of clients accessing the cloud game instance, thereby well meeting the transmission parameter setting needs of clients accessing the cloud game instance and being highly flexible and efficient. The media encoding module and media transmission module in the cloud game server can cooperate to perform flow control, effectively reducing the transmission delay of the media stream and improving the quality of the game screen in the media stream, thereby efficiently and stably transmitting data between the client and the cloud game instance. In addition, the cloud game instance also supports authority control, whereby operation data from clients with cloud game operation authority is input to the cloud game instance, and operation data from clients without cloud game operation authority is dropped during transmission, effectively enriching the operation mode of the cloud game. In addition, the cloud game instance also supports simultaneous operation by multiple users, i.e., multiple clients accessing the cloud game instance can all input operation data to the cloud game instance, further enriching the operation mode of the cloud game.
[0078] The cloud gaming processing schemes mentioned in the above embodiments are applied to two game scenarios: cloud gaming training by live stream users and cloud gaming operation by multiple users of arcade games. The two game scenarios are introduced below. (1) Cloud gaming training by live streamers In a game scenario of cloud game training by live streamers, the first client is a live streamer client used by a live streamer user, and the second client is a viewer client used by a viewer user. In an actual game scenario, a viewer user may include at least one, that is, a viewer client may include at least one, and the embodiments of this application will be described taking a situation including one viewer user as an example.
[0079] For a live streamer user, the cloud game server creates a cloud game instance in response to a live streamer client's request to play a cloud game, creates a first path stream processing resource for the cloud game instance, binds the live streamer client to the first path stream processing resource, and transmits data between the cloud game instance and the live streamer client based on the first path stream processing resource. A cloud game play request is generated by the live streamer client in response to a live streamer user's cloud game play operation. As shown in FIG. 8a, FIG. 8a illustrates a schematic diagram of a cloud game play operation interface provided by one exemplary embodiment of the present application. The live streamer client's service interface 80 displays multiple cloud game game information (e.g., cloud game icons, cloud game images, etc.) and cloud game play controls. For example, when the game control 801 for Cloud Game 2 on the service interface 80 is selected, the live streamer user's client can generate a play request for Cloud Game 2 and send the play request for Cloud Game 2 to the cloud game server. In one implementation, if the number of cloud game instances created in cloud game 2 does not exceed the instance creation threshold, the cloud game server creates a cloud game instance of cloud game 2 based on the live streamer client's play request for cloud game 2, and if the creation of the cloud game instance is successful, the live streamer client can display the game interface 81 of the cloud game instance of cloud game 2, and the instance creation threshold is the upper limit of the number of cloud game instances that one cloud game can create.In another implementation, if the number of cloud game instances created in cloud game 2 exceeds the instance creation threshold, the cloud game processor returns a cloud game instance creation failure notification to the liver client, and the liver client outputs a creation failure indication message 802 (e.g., as shown in Figure 8a, "There are no idle devices at the moment. Please queue up and wait a moment") to the service interface 80 based on the cloud game instance creation failure notification, and if the liver client is eligible to create a cloud game instance (i.e., the number of cloud game instances created in cloud game 2 does not exceed the instance creation threshold), it waits in line until the cloud game server creates a game instance of cloud game 2 in response to the play request for cloud game 2, and if the creation of the cloud game instance is successful, the liver client displays the game interface 81 of the cloud game instance of cloud game 2.
[0080] 8b, which illustrates a schematic interface diagram of a cloud game sharing operation provided by one exemplary embodiment of the present application. After the cloud game instance of Cloud Game 2 is successfully created, the live streamer client displays a game interface 81 of Cloud Game 2, which includes a cloud game instance sharing control 811. When the cloud game instance sharing control 811 is selected, the live streamer client sends a sharing request for the cloud game instance to the cloud game server. After receiving the live streamer client's sharing request for the cloud game instance, the cloud game server returns a shared password for the cloud game instance to the live streamer client in response to the sharing request. In one implementation, the live streamer client can output the shared password for the cloud game instance to the game interface 81. The shared password includes the cloud game instance identifier and the login password for the cloud game instance, for example, "Your account password: 0021," which is the shared password 812 in FIG. 8b. In another implementation, the live streamer client can send the shared password for the cloud game instance to the viewer client.
[0081] For a viewer user, the viewer user's processing flow can be seen in FIG. 8c, which shows a flowchart of a cloud game instance access process provided by an exemplary embodiment of the present application. As shown in FIG. 8c, if a viewer user obtains a shared password and the cloud game client is not installed on the device used by the viewer user (i.e., the viewer client is not installed), the viewer user needs to download and install a client to log in to the cloud game on the device. In one implementation, if the cloud game client is installed on the viewer user's device, the viewer user can enter the shared password on the viewer client, for example, in the game participation interface of the viewer client. After entering the shared password, the viewer client can send an access request to the cloud game server. In another implementation, the shared password can be a cloud game participation link. If the cloud game client is installed on the viewer user's device, the viewer user can directly click the shared password on the live streaming interface displayed on the viewer client, or directly click the shared password shared by the live streamer client to the viewer client, which can trigger an access request to the cloud game server. If the number of clients accessing the cloud game instance of cloud game 2 exceeds the access count threshold, the cloud game server can return an access failure notification to the viewer client, and after the viewer client receives the access failure notification, it can output an access failure notification to the viewer user in response to the access failure notification. For example, the content of the access failure notification may be "The access location of cloud game 2 is full," and the access count threshold is the upper limit of the number of clients that can access the cloud game instance of cloud game 2.If the number of clients accessing the cloud game instance of cloud game 2 does not exceed the access number threshold, the viewer client is allowed to access the cloud game instance. If the viewer client successfully accesses the cloud game instance, the cloud game server can create a second path stream processing resource of the cloud game instance and bind the viewer client to the second path stream processing resource, and data can be transmitted between the cloud game instance and the viewer client based on the second path stream processing resource.
[0082] Before a viewer client accesses a cloud game instance, the live streamer client has the permission to operate the cloud game instance, i.e., the live streamer client can operate the cloud game instance. After the viewer client successfully accesses the cloud game instance, the cloud game server assigns the permission to the viewer client based on the permission assignment request from the live streamer client. The permission can include at least one of permission to operate the cloud game instance or permission to view the cloud game instance. The permission to operate the cloud game instance is the permission to operate the cloud game instance, and the permission to view the cloud game instance is the permission to view the game screen of the cloud game instance. A user with permission to view the cloud game instance cannot operate the cloud game instance, but can only view the game screen of other users operating the cloud game instance. In one implementation, when the cloud gaming server allocates cloud game instance operation permissions to the viewer client based on the live streamer client's permission setup request, the viewer client's operation data is imported into the cloud game instance, allowing the viewer client to operate the cloud game instance, the live streamer client can view a game screen in which the viewer client controls the cloud game instance, and a control prompt 813 (e.g., "Viewer client is controlling" in FIG. 8b) is output in the game interface 81. In another implementation, when the cloud gaming server allocates cloud game instance viewing permissions to the viewer client based on the live streamer client's permission setup request, the viewer client's operation data is dropped during transmission to the cloud game instance, allowing the viewer client to not operate the cloud game instance but only view a game screen in which the live streamer client controls the cloud game instance.
[0083] (2) Arcade games, multi-user cloud gaming In the game scenario for multi-user cloud game operation for arcade games, the process by which a first client triggers the creation of a cloud game instance and the process by which a second client accesses the cloud game instance are similar to the game scenario for livestream cloud game training, and therefore will not be described in detail here. The differences between the game scenario for multi-user cloud game operation for arcade games and the game scenario for livestream cloud game training are as follows: In the game scenario for livestream cloud game training, the second client's authority to the cloud game instance is configured by the cloud game server based on the authority setup request of the first client, and only one of the livestream client and viewer client has the authority to operate the cloud game instance, while the other has the authority to view the cloud game instance. In the game scenario for multi-user cloud game operation for arcade games, all clients that access the cloud game instance have the authority to operate the cloud game and can operate the cloud game instance. For example, in a two-player fighting cloud game, after a cloud game instance of the two-player fighting cloud game is successfully created, a first client is mapped to a first operation control and selects two-player mode in the game interface, and a second client is mapped to a second operation control after accessing the cloud game instance, such that a user of the first client can input operation data of the first client into the first operation control and control a first joystick to control a first fighter in the cloud game instance based on the input operation data, and a user of the second client can input operation data of the second client into a second joystick and control a second joystick to control a second fighter in the cloud game instance based on the input operation data, thereby realizing two-player fighting.
[0084] As can be seen from the above game scenario involving live streamer user cloud game training, the live streamer client sends an authority installation request to the cloud game server, thereby realizing the switching and transfer of operating authority between the live streamer client and the viewer client, thereby meeting the game needs of live streamer training. As can be seen from the above game scenario involving multi-user cloud game operation of arcade games, multiple clients accessing a cloud game instance all have operating authority for the cloud game instance and can operate the cloud game instance, meeting the game needs of multi-user participation. The cloud game processing scheme described in the embodiments of the present application can enrich cloud game play scenarios, and each client participating in a cloud game is equipped with an independent stream processing resource, which can ensure efficient and stable data transmission between the client and the cloud game instance. The game screen displayed on each client is clear and smooth, effectively improving users' game participation experience.
[0085] The above describes in detail the method of the embodiment of the present application, and in order to better implement the above solution of the embodiment of the present application, the following provides the apparatus of the embodiment of the present application accordingly.
[0086] Referring to FIG. 9, FIG. 9 shows a schematic configuration diagram of a cloud gaming processing device provided by an exemplary embodiment of the present application, where the cloud gaming processing device 90 may be located in a cloud gaming processing device, and the cloud gaming processing device may be the server 304 in the cloud gaming processing system shown in FIG. 3, and the cloud gaming processing device 90 may perform corresponding steps in the method embodiments of FIG. 4 or FIG. 6, and the cloud gaming processing device 90 includes: a media transmission module 901 and a media encoding module 902; The media transmission module 901 receives a second client's access request for the cloud game instance, the cloud game instance is created based on the first client's play request for the cloud game, the first client is bound to a first path stream processing resource of the cloud game instance, and data transmission between the cloud game instance and the first client is realized by the first path stream processing resource; The media encoding module 902 and the media transmission module 901 both respond to the access request of the second client to create a second path stream processing resource of the cloud game instance; The media transmission module 901 further binds a second path stream processing resource to the second client, and realizes data transmission between the second client and the cloud game instance through the second path stream processing resource.
[0087] In one implementation, the access request of the second client includes a user identifier of the second client and a first access policy, and the first access policy is used to indicate that the type of the second client is a user type; When the media encoding module 902 and the media transmission module 901 both respond to the access request of the second client to create the second path stream processing resource of the cloud gaming embodiment, specifically: assigning an access session identifier to the second client based on a user identifier of the second client; and generating a second path stream processing resource and an identifier of the second path stream processing resource for the cloud game instance based on the first access policy.
[0088] In one implementation, when the media transmission module 901 binds the second path stream processing resource to the second client, specifically: A step of realizing binding between the second path stream processing resource and the second client is performed by establishing a binding relationship between an access session identifier of the second client and an identifier of the second path stream processing resource.
[0089] In one implementation, the media transmission module 901 further comprises: receiving a third client's access request to the cloud gaming instance, the third client's access request including a user identifier of the third client and a second access policy, the second access policy being used to indicate that the type of the third client is an observer type; selecting a path stream processing resource from the first path stream processing resource and the second path stream processing resource in response to an access request from a third client; and performing a step of binding the stream processing resource of the selected one path to a third client and transmitting data between the third client and the cloud game instance based on the stream processing resource of the selected one path.
[0090] In one implementation, when the media transmission module 901 transmits data between the second client and the cloud game instance based on the second path stream processing resource, specifically: obtaining a media stream at the cloud gaming instance; and performing a step of sending the media stream to the second client via the second path stream processing resource, and receiving operation data of the second client via the second path stream processing resource if the second client requests to operate the cloud game instance.
[0091] In one implementation, the media transmission module 901 further comprises: Based on the second path stream processing resource, perform the steps of sending a network probe packet to the second client, receiving network information fed back from the second client, and adjusting the data amount of the network probe packet and the transmission parameters of the second path stream processing resource based on the network information.
[0092] In one implementation, when the media transmission module 901 adjusts the data amount of the network probe packet and the transmission parameters of the second path stream processing resource based on the network information, specifically: If the network information indicates that the network is congested, reducing the data amount of the network probe packet and making a first adjustment to the transmission parameters of the second path stream processing resource; If the network information indicates that the network is not congested, increasing the data amount of the network probe packet to make a second adjustment to the transmission parameters of the second path stream processing resource; Run the first adjustment includes at least one of reducing a media encoding bit rate in the second path stream processing resource, reducing a frame rate of media frames in the second path stream processing resource, and dropping some media frames in the second path stream processing resource; The second adjustment includes at least one of increasing a media encoding bit rate in the second path stream processing resource and increasing a frame rate of the media frames in the second path stream processing resource.
[0093] In one implementation, the media transmission module 901 further performs a step of configuring permissions for the second client based on the permission configuration request of the first client, where the permissions include at least one of operation permissions for the cloud game instance or viewing permissions for the cloud game instance; The media encoding module 902 further performs a step of dropping the operation data of the second client if the operation data of the second client is received by the second path stream processing resource and the second client does not have operation authority for the cloud game instance.
[0094] In one implementation, a first client maps to a first operational control in the cloud gaming instance, and a second client maps to a second operational control in the cloud gaming instance; When the media transmission module 901 receives the operation data of the first client according to the first path stream processing resource, the media encoding module 902 further performs the following steps: introduce the operation data of the first client into a first operation control, and control the first operation control to operate the cloud game instance; If the media transmission module 901 receives operation data of the second client based on the second path stream processing resource, the media encoding module 902 further performs the step of introducing the operation data of the second client into the second operation control and controlling the second operation control to operate the cloud game instance.
[0095] In one implementation, the media transmission module 901 further performs the steps of receiving, by a first path stream processing resource, a device resolution sent from the first client; The media encoding module 902 further performs the steps of setting a container window resolution for the cloud gaming instance based on the device resolution; The media transmission module 901 further performs the step of sending the container window resolution to the first client via a first path stream processing resource.
[0096] In one implementation, the media transmission module 901 further includes the steps of: after the second client accesses the cloud game instance, sending the container window resolution to the second client through a second path stream processing resource; receiving, by a second path stream processing resource, a resolution setting request sent from a second client, the resolution setting request including an encoding resolution that the second client requests to be set; modifying the encoding resolution to request placement based on the container window resolution; The media encoding module 902 further performs the step of performing an encoding process on the transmitted media stream using the modified encoding resolution.
[0097] In one implementation, the media transmission module 901 further includes receiving a first client's share request for the cloud gaming instance; In response to a sharing request from the first client, returning a shared password of the cloud game instance to the first client so that the first client can share the shared password with other clients other than the first client, wherein the shared password includes an identifier of the cloud game instance and a login password of the cloud game instance; The access request of the second client is sent triggered by the shared password after the second client obtains the shared password.
[0098] According to one embodiment of the present application, each unit in the cloud gaming processing device 90 shown in FIG. 9 may be integrated into one or several other units, or some of the units may be further divided into multiple functionally smaller units, thereby achieving the same operation without affecting the technical effect of the embodiment of the present application. The above units are divided based on logical functions, and in actual applications, the function of one unit may be realized by multiple units, or the functions of multiple units may be realized by one unit. In other embodiments of the present application, the cloud gaming processing device 90 may include other units, and in actual applications, these functions may be realized with the support of other units or through cooperation between multiple units. According to another embodiment of the present application, a general-purpose computing device, such as a general-purpose computer including processing elements and storage elements such as a central processing unit (CPU), a random access memory (RAM), and a read-only memory (ROM), executes a computer program (including program code) capable of executing each step of the corresponding method shown in Fig. 4 or 6, thereby configuring a cloud gaming processing device 90 shown in Fig. 9 and realizing the cloud gaming processing method of the embodiment of the present application. The computer program can be, for example, written on a computer-readable storage medium, and installed and executed on the computing device by the computer-readable storage medium.
[0099] In an embodiment of the present application, when a first client initiates a play request to a cloud game to create a cloud game instance, a first path stream processing resource of the cloud game instance is allocated to the first client, the first client is bound to the first path stream processing resource, and the cloud game instance and the first client transmit data based on the first path stream processing resource. A second client can request access to the cloud game instance requested by the first client, and in response to the second client's access request, a second path stream processing resource of the cloud game instance is allocated to the second client, and the second path stream processing resource is bound to the second client, and data is transmitted between the second client and the cloud game instance based on the second path stream processing resource. As can be seen from this, the embodiment of the present application supports multiple operations on the same cloud game instance, i.e., allows multiple clients (e.g., a first client and a second client) to access and operate the same cloud game instance, effectively improving the flexibility and diversity of cloud game operation modes. In addition, each client accessing the same cloud game instance is bound to a single stream processing resource of one path of the cloud game instance, and transmits data based on the single bound stream processing resource. This is advantageous for performing targeted and individual encoding stream control and quality control for each client based on each stream processing resource. Since each stream processing resource is independent and does not affect each other, data can be transmitted efficiently and stably between the client and the cloud game instance.
[0100] 10, which shows a schematic configuration diagram of a cloud gaming processing device provided by an exemplary embodiment of the present application, the cloud gaming processing device 100 including at least a processor 1001, a computer-readable storage medium 1002, and a communication interface 1003. The processor 1001, the computer-readable storage medium 1002, and the communication interface 1003 are connected by a bus or other means. The communication interface 1003 can receive a play request from a first client, an access request from a second client, operation data from the first client, operation data from the second client, etc., and can also transmit media streams to the first client and the second client. The computer-readable storage medium 1002 may be stored in a memory, and the computer-readable storage medium 1002 stores a computer program, which includes computer instructions. The processor 1001 executes the computer instructions. The processor 1001 (also referred to as CPU (Central Processing Unit)) is the calculation and control core of the cloud gaming processing device 100, and can implement one or more computer instructions, specifically, can load and execute one or more computer instructions to implement corresponding method flows or functions.
[0101] An embodiment of the present application further provides a computer-readable storage medium (Memory), which is a storage device for storing programs and data in the cloud gaming processing device 100. Here, the computer-readable storage medium 1002 may include a storage medium built into the cloud gaming processing device 100, or may of course include an expansion storage medium supported by the cloud gaming processing device 100. The computer-readable storage medium provides a storage space in which an operating system of the cloud gaming processing device 100 is stored. Furthermore, the storage space stores one or more computer instructions that are loaded and executed by the processor 1001, and these computer instructions may be one or more computer programs (including program codes). Here, the computer-readable storage medium 1002 may be a high-speed RAM memory, a non-volatile memory (Non-Volatile Memory), for example, at least one magnetic disk memory, or at least one computer-readable storage medium located remotely from the processor 1001.
[0102] The cloud gaming processing device 100 may be the server 304 in the cloud gaming processing system shown in Figure 3, and the computer-readable storage medium 1002 stores a computer program, which includes one or more computer instructions. The processor 1001 loads and executes the one or more computer instructions to realize the corresponding steps in the method embodiments of Figure 4 or Figure 6. In a specific implementation, the computer instructions in the computer-readable storage medium 1002 are loaded by the processor 1001 to perform the cloud gaming processing method provided in the above-mentioned various optional forms.
[0103] In an embodiment of the present application, when a first client initiates a play request to a cloud game to create a cloud game instance, a first path stream processing resource of the cloud game instance is allocated to the first client, and the first client is bound to the first path stream processing resource, and the cloud game instance and the first client transmit data based on the first path stream processing resource. A second client can request access to the cloud game instance requested by the first client, and in response to the second client's access request, a second path stream processing resource of the cloud game instance is allocated to the second client, and the second path stream processing resource is bound to the second client, and data is transmitted between the second client and the cloud game instance based on the second path stream processing resource. As can be seen from this, the embodiment of the present application supports multiple operations on the same cloud game instance, that is, allows multiple clients (e.g., a first client and a second client) to access and operate the same cloud game instance, effectively improving the flexibility and diversity of cloud game operation modes. In addition, each client accessing the same cloud game instance is bound to a single stream processing resource of one path of the cloud game instance, and transmits data based on the single bound stream processing resource. This is advantageous for performing targeted and individual encoding stream control and quality control for each client based on each stream processing resource. Since each stream processing resource is independent and does not affect each other, data can be transmitted efficiently and stably between the client and the cloud game instance.
[0104] Moreover, the embodiments of the present application further provide a storage medium, the storage medium storing a computer program, and the computer program executing the method provided in the above embodiments.
[0105] According to one aspect of the present application, there is provided a computer program product or a computer program, the computer program product or the computer program including computer instructions stored in a computer-readable storage medium, the computer instructions read by a processor of a computer device from the computer-readable storage medium, and the processor executes the computer instructions to cause the computer device to perform the cloud gaming processing method provided in the various optional forms described above.
[0106] The above are only specific embodiments of the present application, and the scope of protection of the present application is not limited thereto, and any modifications or substitutions that a person skilled in the art can easily make within the technical scope disclosed in the present application should fall within the scope of protection of the present application. Therefore, the scope of protection of the present application is based on the scope of protection of the claims of the patent. [Explanation of symbols]
[0107] 2. Cloud gaming 30 Processing System 80 Service Interface 81 Game Interface 90 Processing equipment 100 Processing Equipment 301 First Terminal 302 Second Terminal 303 Third Terminal 304 Server 801 Game Control 802 Creation failure suggestion message 811 Shared Control 812 Shared Password 813 Control Presentation 901 Media Transmission Module 902 Media Encoding Module 1001 processor 1002 Computer-readable storage medium 1003 Communication Interface
Claims
1. A cloud game processing method executed by a cloud game processing device, receiving a second client's access request to a cloud game instance, wherein the cloud game instance is created based on a first client's request to play the cloud game, the first client is bound to a first path stream processing resource of the cloud game instance, and data transmission between the cloud game instance and the first client is realized by the first path stream processing resource; In response to the access request of the second client, creating a second path stream processing resource for the cloud gaming instance; binding the second path stream processing resource to the second client; Using the second path stream processing resource to realize data transmission between the second client and the cloud game instance; Including, A method in which the first client and the second client access the same cloud game instance, the first path stream processing resource and the second path stream processing resource transmit data to the same cloud game instance, the first path stream processing resource and the second path stream processing resource are independent of each other, the first client performs operations on the same cloud game instance using the first path stream processing resource bound to the first client, and the second client performs operations on the same cloud game instance using the second path stream processing resource bound to the second client, and multiple operations on the same cloud game instance are performed by the operations by the first client and the operations by the second client.
2. the access request of the second client includes a user identifier of the second client and a first access policy, and the first access policy is used to indicate that the type of the second client is a user type; The step of creating a second path stream processing resource for the cloud gaming instance in response to an access request of the second client includes: assigning an access session identifier to the second client based on a user identifier of the second client; Generating a second path stream processing resource for the cloud game instance and an identifier of the second path stream processing resource based on the first access policy; 10. The method of claim 1, comprising:
3. The step of binding the second path stream processing resource to the second client comprises:
3. The method of claim 2, further comprising: realizing a binding between the second path stream processing resource and the second client by establishing a binding relationship between an access session identifier of the second client and an identifier of the second path stream processing resource.
4. receiving a third client's access request to the cloud game instance, the third client's access request including a user identifier of the third client and a second access policy, the second access policy being used to indicate that the type of the third client is an observer type; selecting a stream processing resource for one path from the first path stream processing resource and the second path stream processing resource in response to an access request from the third client; binding a stream processing resource of the selected path to the third client; Transmitting data between the third client and the cloud gaming instance based on the selected stream processing resource of one path; The method of claim 1 further comprising:
5. The step of realizing data transmission between the second client and the cloud game instance by the second path stream processing resource includes: acquiring a media stream in the cloud gaming instance; transmitting the media stream to the second client by the second path stream processing resource; When the second client requests to operate the cloud game instance, receiving operation data of the second client by the second path stream processing resource; 10. The method of claim 1, comprising:
6. sending network probe packets to the second client based on the second path stream processing resources and receiving network information fed back from the second client; adjusting the data amount of the network probe packet and the transmission parameters of the second path stream processing resource based on the network information; The method of claim 5 further comprising:
7. adjusting the data amount of the network probe packet and the transmission parameters of the second path stream processing resource based on the network information; If the network information indicates that the network is congested, reducing the data amount of the network probe packet and making a first adjustment to a transmission parameter of the second path stream processing resource; If the network information indicates that the network is not congested, increasing the data amount of the network probe packet to make a second adjustment to the transmission parameters of the second path stream processing resource; Including, the first adjustment includes at least one of reducing a media encoding bit rate in the second path stream processing resource, reducing a frame rate of media frames in the second path stream processing resource, or dropping some of the media frames in the second path stream processing resource; 7. The method of claim 6, wherein the second adjustment comprises at least one of increasing a media encoding bit rate in the second path stream processing resource or increasing a frame rate of media frames in the second path stream processing resource.
8. arranging authority for the second client based on an authority establishment request of the first client, wherein the authority includes at least one of an operation authority for the cloud game instance or a viewing authority for the cloud game instance; If the second client does not have operation authority for the cloud game instance, when the operation data of the second client is received by the second path stream processing resource, dropping the operation data of the second client; The method of claim 1 further comprising:
9. the first client is mapped to a first operational control in the cloud game instance, and the second client is mapped to a second operational control in the cloud game instance; The method comprises: When receiving operation data of the first client according to the first path stream processing resource, introducing the operation data of the first client into the first operation control to control the first operation control to operate the cloud game instance; When receiving operation data of the second client according to the second path stream processing resource, introducing the operation data of the second client into the second operation control to control the second operation control to operate the cloud game instance; The method of claim 1 further comprising:
10. receiving, by the first path stream processing resource, a device resolution sent from the first client; Setting a container window resolution of the cloud game instance based on the device resolution; sending the container window resolution to the first client by the first path stream processing resource; The method of claim 1 further comprising:
11. After the second client accesses the cloud game instance, sending the container window resolution to the second client by the second path stream processing resource; receiving, by the second path stream processing resource, a resolution setting request sent from the second client, the resolution setting request including an encoding resolution that the second client requests to be set; modifying the encoding resolution requested to be set based on the container window resolution; performing encoding processing on the transmitted media stream based on the second path stream processing resource using the modified encoding resolution; The method of claim 10 further comprising:
12. receiving a share request from the first client for the cloud gaming instance; In response to a sharing request from the first client, returning the shared password of the cloud game instance to the first client so that the first client can share the shared password with other clients other than the first client, wherein the shared password includes an identifier of the cloud game instance and a login password of the cloud game instance; further comprising The method according to any one of claims 1 to 11, wherein the access request of the second client is sent by being triggered by the shared password after the second client obtains the shared password.
13. A cloud gaming processing device, the cloud gaming processing device including: a media encoding module and a media transmission module; The media transmission module receives a second client's access request to a cloud game instance, the cloud game instance is created based on a first client's play request to the cloud game, the first client is bound to a first path stream processing resource of the cloud game instance, and data transmission between the cloud game instance and the first client is realized by the first path stream processing resource; The media encoding module and the media transmission module both create a second path stream processing resource for the cloud game instance in response to an access request from the second client; The media transmission module further binds the second path stream processing resource to the second client, and realizes data transmission between the second client and the cloud game instance through the second path stream processing resource; A cloud game processing device, wherein the first client and the second client access the same cloud game instance, the first path stream processing resource and the second path stream processing resource transmit data to the same cloud game instance, the first path stream processing resource and the second path stream processing resource are independent of each other, the first client performs operations on the same cloud game instance using the first path stream processing resource bound to the first client, and the second client performs operations on the same cloud game instance using the second path stream processing resource bound to the second client, and multiple operations on the same cloud game instance are performed by the operations by the first client and the operations by the second client.
14. A cloud gaming processing device, a processor for executing a computer program; a computer-readable storage medium having a computer program stored thereon; Including, A cloud gaming processing device, wherein the computer program is loaded by the processor and adapted to execute the cloud gaming processing method according to any one of claims 1 to 12.
15. A computer program comprising instructions that, when executed by a computer, cause the computer to perform the cloud gaming processing method of any one of claims 1 to 12.
Citation Information
Patent Citations
Cloud game response method, system and device and readable storage medium
CN112473133A
Virtual space sharing device
JP2005267347A
System and method for multi-stream video compression
JP2012521268A
Dynamic allocation of rendering resources in cloud-based game systems
JP2015523886A
Game system, program and server device
JP2020103741A