Abstract: SYSTEM AND METHOD FOR LOAD BALANCING IN A MULTI-USER LIVE GAMING ENVIRONMENT A system and method, for Real-time Interactive Content Distributed (RICD) gaming wherein, the user equipment will display questions and answers with its probable options in sync with live broadcast on the smart computing device which would allow the users to seamlessly select the answers and get the results in-sync with the live telecast on the game show played on television. The novel method provides seamless and efficient concurrency and scalability with human-assisted massive gameplay in a multi-user, multi-instance environment which allows millions of players to compete against each other to score maximum correct answers without observing any issues related to concurrency and scalability.
FORM 2
THE PATENTS ACT, 1970
(39 OF 1970)
AND
THE PATENT RULES, 2003
COMPLETE SPECIFICATION
(See section 10 and rule 13)
“SYSTEM AND METHOD FOR LOAD BALANCING IN A MULTI-USER LIVE GAMING ENVIRONMENT”
We, RELIANCE JIO INFOCOMM LIMITED, an Indian National, of, 3rd Floor, Maker Chamber-IV, 222, Nariman Point, Mumbai- 400021, Maharashtra, India.
The following specification particularly describes the invention and the manner in which it is to be performed.
FIELD OF INVENTION
The present disclosure generally relates to a real-time Interactive Content Distributed (RICD) game-playing scenario and more particularly, to a new and improved multiplayer gaming which allows concurrency and scalability to millions of players to play along a real-time interactive content distributed gaming show.
BACKGROUND OF THE INVENTION
The following description of related art is intended to provide background information pertaining to the field of the disclosure. This section may include certain aspects of the art that may be related to various features of the present disclosure. However, it should be appreciated that this section be used only to enhance the understanding of the reader with respect to the present disclosure, and not as admissions of prior art.
Mobile applications have served as a catalyser in the online gaming environment which began over a decade ago when broadband internet became widely available to the consumers. Such mobile applications have moved away from the integrated software systems that are generally found on PCs. Instead, each app on the mobile provides functionality such as a game, calculator or mobile web browsing.
Earlier Live events, gameplays and entertainment were often provided to a remote audience, for example, via traditional TV broadcasting or other distribution methods. However, the remote audience was often limited to an observation of the live event and there was no possibility for interaction with the live event. In particular, old-fashioned TVs only allow receiving the broadcasted data and have no capabilities to transfer any feedback or participate in the live event watched via TV broadcasting. Now, the local spectators may contribute to the live event where the number of spectators is limited.
From live game on the field, the user moved to Television and PC games such as ‘console game’ which is another type of interactive multimedia software that uses a video game console to provide an interactive multimedia experience via television or another display device. The game console generally consists of a handheld control device (although some use cameras to monitor user movements) and a computer that runs the game's software. Console game developers eschewed the cartridge and distributed their games digitally over the internet.
‘Online game’ refers to playing electronic games, whether through consoles, computers, mobile phones or another medium altogether. Gaming is a nuanced term that suggests regular gameplay, possibly as a hobby. Although traditionally a solitary form of relaxation, online multiplayer video games have made gaming a popular group activity as well. Such online video games can produce large amounts of network traffic.
Several media entities have understood the importance of convergence of gaming content and technology and number of channels including broadcasters, telecommunication companies, etc. are using over-the-top (OTT) applications (digital platforms accessed on mobile devices) as well as native applications to provide users with gaming, movies, videos and exclusive content on their apps. An ‘over-the-top (OTT) application’ refers to an app or service that provides a product over the Internet and bypasses traditional distribution. The services that come over the top are most typically related to media and communication and are generally, if not always, lower in cost than the traditional method of delivery.
Multi-user online games (MMOG) are among the most successful interactive, world-scale distributed systems that have been built in the past decade. They possess a variety of features not limited to supporting large groups of players and supporting massive crowds. In multiuser game the target audience is the
gamer in real-time environment, with interactions producing results much like the actual game.
More particularly, ‘massively multiplayer online game (MMOG)’ refers to video games that allow a large number of players to participate simultaneously over an internet connection. These games usually take place in a shared world that the gamer can access after purchasing or installing the game software. The explosive growth in MMOGs has prompted many game designers to build online multiplayer modes into many traditionally single-player games. Another feature in the gaming industry that has come is ‘play along’ that refers to a format where the application will display questions and its respective answer with probable options in sync with the Live broadcast of a game on the computing device not limited to Television set.
There are several categories of gaming content which are presently prevalent in the online gaming industry which are First-person shooter game (FPS), Real-time strategy game (RTS), Multiplayer online battle arena game (MOBA), Massively multiplayer online game (MMO), Console gaming, Browser games, MUD which is class of multi-user real-time virtual worlds, Player versus environment (PvE), Player versus player (PvP) games amongst others.
Hence, the online gameplay can be broadly classified into two different sub-categories which are as follows:
1. Static Content Gaming: In static or simultaneous games, the players move one time simultaneously and no new/ additional information is revealed to any of the players during the game before they make their play. There is only static content related to static gaming.
2. Real-Time Content Gaming: The real-time multiplayer gaming is an online game with large numbers of players, typically from hundreds to thousands, playing simultaneously on the same server. Such games enable its players to compete against each other on a large scale across
the globe or in selected demography. The real-time gaming contains both static as well as dynamic/ real-time content. The real-time content display, concurrent call and scalability are some of the challenges in real¬time content gaming.
There are inherent challenges with the real-time gaming scenario such as latency, concurrency and scalability which occurs due to a large number of players involved in the Real-time Interactive Content Distributed (RICD) game playing scenario. The concurrency deals with coordination of the simultaneous execution of transactions in a multi-user database system. Hence, concurrency control is an important issue due to the necessity of controlling the simultaneous execution of transactions over a shared database which may create potential data integrity and consistency problems. Yet another issue is with regard to the scalability in the system which is the capability of a system, network, or process to handle a growing amount of work, or its potential to be enlarged to accommodate that growth. Hence, there is an intrinsic need to enhance the existing online gaming system by adding new functionality at minimal effort to make the system scalable with respect to network size.
In order to understand the scalability of such a system, it is imperative to understand different kind of load and the reason for generation of such loads in the system. In general, there are two kinds of loads, namely (i) Network/Data traffic load; and (ii) Processing cycle load.
In a gaming environment ‘Network/data traffic’ refers to the amount of data moving across a network at a given point of time. Network data is mostly encapsulated in network packets, which provide the load in the network. Network traffic is the main component for network traffic measurement, network traffic control and simulation. The proper organization of network traffic helps in ensuring the quality of service in a given network. It is directly related to the number of events and the amount of data to be distributed which, in turn is
related to the number of event-generating agents and the rate at which events are generated. Network traffic is the main component for bandwidth measurement and management. Moreover, various topologies of the network can only be implemented based on the amount of network traffic in the system.
Network traffic can be broadly classified into the following categories:
1. Busy/heavy traffic: High bandwidth is consumed in this traffic
2. Non-real-time traffic: Consumption of bandwidth during working hours
3. Interactive traffic: It is subjected to competition for bandwidth and could result in poor response times if prioritization of applications and traffic is not set
4. Latency-sensitive traffic: It is subjected to competition for bandwidth and could result in poor response times.
As used herein, another kind of load is the ‘Processing cycles load’ which refers to the processing load being used for rendering, simulation, handling the network traffic coming from different components, and assorted housekeeping. With the increasing number of online real-time game players in the real-time gaming environment, the biggest challenge is to offer seamless and real-time gaming content without any latency and lag considering the huge amount of network traffic at the same time. The solutions available today lack capacity, has latency, concurrency and scalability issues in the online real-time gaming environment when millions of simultaneous responses are received simultaneously.
Networks, however, have a limited capacity to convey information, and multiple computers and applications must share that limited resource. For example, networks such as the Internet, connect several computers with network links having a limited bandwidth that is shared among the many computers, each of which wants to maximize its usage of available bandwidth. When attempted,
data rates exceed the network capacity to convey that data, the network congests and the effective network capacity becomes a small fraction of the theoretical capacity, so applications must throttle their usage to remain within available bandwidth.
The current problem associated with the real-time gaming content delivery are as follows:
1. Network traffic is huge and is not minimized
2. Load balancing when millions of users are connected to game
3. Providing a secure gaming environment
4. Keeping the client application with less load
5. Providing gaming opportunity to all users simultaneously.
Therefore, there is a need in the art to provide a solution to the above problems and provide a system that is seamless and efficient for providing multi-user, multi-instance gaming environment which allows millions of players to scale and concurrently play along synchronized with live TV game show without any latency and issues related to concurrency and scalability.
SUMMARY
This section is provided to introduce certain objects and aspects of the present disclosure in a simplified form that are further described below in the detailed description. This summary is not intended to identify the key features or the scope of the claimed subject matter. In order to overcome at least a few problems associated with the known solutions as provided in the previous section, an object of the present disclosure is to provide a novel automatic method and system for load balancing in a multi-user live gaming environment.
Another object of the present disclosure is to provide multi-user, multi-instance environment which allows millions of players to scale and concurrently play
along synchronized with live TV game show without any latency and issues related to concurrency and scalability. Further, yet another object of the present disclosure is to provide a dynamic real-time gaming platform which uses the real¬time environment and context adapted for different media and could be utilised for games with varied contexts.
It is also an object of the present invention to minimize the network traffic and distribute the load. One more object of the present invention is to provide a user with a light client having high scalability and concurrency. Also an object of the present invention is to provide fair gaming opportunity to all users. Yet another object of the present invention is to enable real-time game playing experience wherein, the time is synchronized with live game show played on television. Also an object of the present invention is to enable human control to make the play semi-automated which can be controlled during the automatic schedule.
The other object of the present invention is to provide real-time game playing experience without the need of physical presence in the game show. Furthermore, one other object of the present invention is to provide real-time game playing experience wherein, the target audience gets engaged on a deeper level in promotional and advertisement related activities. Yet another object of the present invention is to provide a real-time game playing experience wherein, the players are rewarded points against each right answer during the live game playing environment.
In order to achieve at least some of the aforementioned objectives, the present disclosure provides a method and system for load balancing in a multi-user live gaming environment. One aspect of the present invention relates to a method of load balancing in a multi-user live gaming environment. The said method comprises, dynamically and continuously receiving requests, at one or more load balancers, from one or more user equipment in the multi-user live gaming environment. Thereafter, the method comprises receiving one or more requests,
at a plurality of servers, from the one or more load balancers, wherein each of the plurality of servers are connected to one or more web socket servers. The method then leads to dynamically maintaining, by the plurality of servers, a load condition of each of the one or more web socket servers. Further, the method encompasses directing, by the plurality of servers, an incoming request from the one or more user equipment to a target web socket server from said one or more web socket servers, based on said dynamic load condition of the one or more web socket servers.
Another aspect of the present disclosure encompasses a system for load balancing in a multi-user live gaming environment. The system comprises, one or more load balancers configured to dynamically and continuously receive requests from one or more user equipment in the multi-user live gaming environment. The system also comprises a plurality of servers connected to said one or more load balancers, wherein each of the plurality of servers are configured to receive one or more requests from the one or more load balancers. Further, the system comprises one or more web socket servers connected to each of said plurality of servers, wherein each of the plurality of servers is configured to dynamically maintain a load condition of each of said web socket servers, and the said system is further configured to direct an incoming request from the one or more user equipment to a target web socket server from said one or more web socket servers, based on said dynamic load condition of the one or more web socket servers.
3. BRIEF DESCRIPTION OF DRAWINGS
The accompanying drawings, which are incorporated herein, and constitute a part of this disclosure, illustrate exemplary embodiments of the disclosed methods and systems in which like reference numerals refer to the same parts throughout the different drawings. Components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the
principles of the present disclosure. Some drawings may indicate the components using block diagrams and may not represent the internal circuitry of each component. It will be appreciated by those skilled in the art that disclosure of such drawings includes disclosure of electrical components, electronic components or circuitry commonly used to implement such components.
FIG.1 illustrates an exemplary diagram of a system [100], in accordance with exemplary embodiment of the present disclosure.
FIG. 2 illustrates an exemplary method flow diagram [200], depicting method for load balancing in a multi-user live gaming environment, in accordance with exemplary embodiment of the present disclosure.
FIG. 3 illustrates an exemplary flow diagram [300], depicting method for load balancing in a multi-user live gaming environment, in accordance with exemplary embodiment of the present disclosure.
The foregoing shall be more apparent from the following more detailed description of the disclosure.
DESCRIPTION OF THE INVENTION
In the following description, for the purposes of explanation, various specific details are set forth in order to provide a thorough understanding of embodiments of the present disclosure. It will be apparent, however, that embodiments of the present disclosure may be practiced without these specific details. Several features described hereafter can each be used independently of one another or with any combination of other features. An individual feature may not address all of the problems discussed above or might address only some of the problems discussed above. Some of the problems discussed above might not be fully addressed by any of the features described herein.
The ensuing description provides exemplary embodiments only, and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the ensuing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing an exemplary embodiment. It should be understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the invention as set forth.
Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
Also, it is noted that individual embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in a figure.
The present invention provides a method and system for load balancing in a multi-user live gaming environment. More specifically, the invention provides the users a novel method and system to provide multi-user, multi-instance environment which allows millions of players to scale and concurrently play along synchronized with live TV game show without any latency and issues related to concurrency and scalability. The invention also provides the Real-time
Interactive Content Distributed (RICD) game-playing scenario wherein, the application present on the user device/ user equipment will display questions and answer with its probable options in sync with live broadcast on the computing device, not limited to television set, and the present invention allows the users to seamlessly select the answers and get the results in-sync with the live telecast on the game show played on television. The present invention also encompasses a dynamic real-time gaming platform which uses the real-time environment and context adapted for different media and could be utilised for games with varied contexts. One more key aspect of the present invention is to minimize network traffic and distribute the load.
Furthermore, in order to provide load balancing in a multi-user live gaming environment the present invention dynamically and continuously receives at one or more load balancers, requests from one or more user equipment in said multi¬user live gaming environment. The present invention comprises a plurality of servers configured to receive one or more said requests from said one or more load balancers, each of said servers connected to one or more web socket servers. The present invention further dynamically maintains a load condition of the web socket servers via said plurality of servers connected to the web socket servers. Thereafter the present invention directs an incoming request at said plurality of servers to a target web socket server from said one or more web socket servers, wherein the said directing of said incoming request is based on said dynamic load condition of the one or more web socket servers.
As used herein, the “user equipment” or ‘computing device’ refers to any electrical, electronic, or any computing device or equipment, or a combination of one or more of the above devices. Computing devices may include, but not limited to, a mobile phone, smartphone, pager, laptop, a general-purpose computer, desktop, personal digital assistant, tablet computer, mainframe computer, or any other computing device as may be obvious to a person skilled in the art. In general, a smart computing device is a digital, user-configured,
computer-networked device that can operate autonomously. A smart computing device is one of the appropriate systems for storing data and other information. The said device operates at all the seven levels of ISO reference model but the primary function is related to the application layer along with the network, session and presentation layer with any additional features of touch screen, apps ecosystem, physical and biometric security, etc. Further a ‘smartphone’ is one type of “smart computing device” that refers to the mobility wireless cellular connectivity device/mobility device that allows end-users to use services on 2G, 3G or 4G mobile broadband Internet connections with an advanced mobile operating system which combines features of a personal computer operating system with other features useful for mobile or handheld use. These smartphones can access the Internet, have a touchscreen user interface, can run third-party apps including capability of hosting online gameplay applications, music players and are camera phones possessing high-speed mobile broadband 4G LTE internet with video calling, hotspot functionality, motion sensors, mobile payment mechanisms and enhanced security features with alarm and alert in emergency situations. Further, said mobility devices/user equipment may include the devices capable of hosting online gameplay applications such as smartphones, wearable devices, smart-watches, smart bands, wearable augmented devices, and such other device obvious to a person skilled in the art. Further, for the sake of specificity, the mobility device refers to both feature phone and smartphones in this disclosure but it will not limit the scope of the disclosure and may extend to any mobility device in implementing the technical solutions.
Referring to Fig. 1, an exemplary diagram of a system [100], in accordance with exemplary embodiment of the present disclosure is shown.
As shown in Fig. 1, the system [100] comprises plurality of user equipment [102(A)], [102(B)], [102(C)]….. [102(N)] (Collectively referred to as user equipment [102]), at least one registration unit [104], at least one DNS server
[106], plurality of load balancers [108(1)], [108(2)], [108(3)]….. [108(N)] (Collectively referred to as load balancer [108]), plurality of servers [110(1)]….….. [110(N)] (Collectively referred to as server [110]) and plurality of web socket servers [112(1)], [112(2)]….. [112(N-1)], [112(N)] (Collectively referred to as web socket server [112]).
The said user equipment [102] is a ‘smart computing device’ refers to any electrical, electronic, electro-mechanical or an equipment or a combination of one or more of the above devices. Smart computing devices may include, but not limit to, a mobile phone, smartphone, pager, laptop, a general-purpose computer, desktop, personal digital assistant, tablet computer, mainframe computer, or any other computing device capable of hosting online gameplay applications and /or events or any other similar device as may be obvious to a person skilled in the art.
The user equipment [102] is configured to launch at least one Real-time Interactive Content Distributed (RICD) gameplay. The user equipment [102], is also configured to dynamically and continuously transmit requests to at least one of the load balancer [108] in a multi-user live gaming environment via at least one DNS server [106].
The system further comprises at least one registration unit [104] connected to said at least one user equipment [102] and at least one DNS server [106], said registration unit [104] is configured to register said at least one user equipment [102] for said Real-time Interactive Content Distributed (RICD) gameplay. The registration unit [104] is also configured to authenticate at least one web socket connection by registering at least one user/user equipment [102] on at least one web socket server [112]. In an instance, the registration unit [104] may register a user equipment [102]/user by using specific user details and on the basis of the user details, the registration unit [104] assigns a unique registration ID to said user equipment [102]/user.
The at least one DNS server [106], is connected to the at least one registration unit [104] and one or more load balancers [108]. The DNS server [106], is configured to evaluate said RICD gameplay. Also, the DNS server [106], is configured to transmit said at least one request from the user equipment [102] to said one or more load balancers [108]. The DNS server [106], schedules to the one or more load balancers [108], one or more gameplay events, which further broadcasted to all the user equipment [102] who are registered to the web socket server [112]. Further, the at least one DNS (Domain Name System) server [106], is also configured to translate domain names into IP addresses.
Also, said one or more load balancers [108] are further connected to a plurality of servers [110], and said load balancers [108] are configured to dynamically and continuously receive requests from one or more user equipment [102] in the multi-user live gaming environment via said at least one DNS server [104]. The one or more load balancers [108] are further configured to schedule the one or more user equipment [102], to said plurality of servers [110], wherein said scheduling is based on the network bandwidth that consequently allows users to be connected concurrently. Also, the one or more load balancers [108] are configured to pass the RICD dynamic content to the user equipment [102], to serve the dynamic handling of the RICD content to balance the load.
As used herein the “Load Balancer [108]” is highly scalable to balance load by distributing loads to said plurality of servers [110] and able to handle millions of the requests from user equipment [102] simultaneously.
Furthermore, the invention encompasses a plurality of servers [110] connected to said one or more load balancers [108] and plurality of web socket servers [112], wherein the said plurality of servers [110] includes plurality of HAProxy servers/HAP servers. The said HAP server is a high availability proxy server and it is a highly scalable module to distribute traffic. The HAP server is based on the
response time of a request and is used to identify and distribute the load to other modules.
Further, the each of the plurality of servers [110], are configured to receive one or more requests from the one or more load balancers [108]. The one or more load balancers [108] schedules said at least one of a said plurality of servers [110], the at least one user equipment [102] depending on the network bandwidth that consequently allows users to be connected concurrently.
Also, said each of the plurality of servers [110] are connected to the said plurality of web socket servers [112] to provide connectivity to RICD gaming users concurrently.
The plurality of servers [110] are also configured to dynamically maintain a load condition of each of said web socket servers [112] and direct an incoming request from the one or more user equipment [102] to a target web socket server [112] from said one or more web socket servers [112], based on said dynamic load condition of the one or more web socket servers [112]. The dynamic load condition of the target web socket server [112] is a minimum dynamic load condition among the dynamic load conditions of one or more web socket servers [112]. In an instance, the plurality of servers [110] may route the traffic by determining best possible routing path based on the type of traffic that is to be transmitted and minimum dynamic load condition associated with a web socket servers [112].
Also, the plurality of servers [110] are configured to synchronize a system time with a request time of the requests received from the one or more user equipment [102]. In an instance, the plurality of servers [110] may be configured to assign a timestamp to the request received from the one or more user equipment [102] and further said plurality of servers [110] may sync the system time with said request time using said timestamp.
Further, the plurality of web socket servers [112] provides at least one web socket connection between the one or more user equipment [102] and the one or more web servers [112] to provide connectivity to RICD gaming users. The one or more web servers [112] contains answers of all the questions related to said RICD gaming and is connected to the one or more user equipment [102] for broadcasting events and evaluating answers.
Furthermore, the system also comprises a scheduler (not shown in the figure) configured to schedule one or more live events in the multi-user live gaming environment. The scheduler may receive inputs from at least one human controller/admin. In an instance, the admin may schedule all the events in conjunction with live TV broadcast and manually controls the gameplay. Also, in one more instance once the scheduler ticks/schedules a gameplay, a gameplay event gets broadcasted to all the user equipment [102] which are registered to at least one web socket server [112].
Although a limited number of units and connections between said units are shown in Fig. 1, however, it will be appreciated by those skilled in the art that the invention encompasses the use of multiple such units and multiple such connections as may be necessary to implement the features of the invention.
Referring to Fig. 2, an exemplary method flow diagram [200] depicting a method for load balancing in a multi-user live gaming environment, in accordance with exemplary embodiment of the present disclosure is shown. As shown in Fig. 2, the method begins at step [202].
At step [204], the method comprises dynamically and continuously receiving requests, at one or more load balancers [108], from one or more user equipment [102] in the multi-user live gaming environment via at least one DNS server [106]. The user equipment [102] is registered in a multi-user live gaming environment for at least one RICD gameplay via at least one registration unit [104]. The registration unit [104] registers said at least one user equipment [102]
for said Rea –time Interactive Content Distributed (RICD) gameplay and authenticates at least one web socket connection by registering said at least one user/user equipment [102] on at least one web socket server [112]. In an instance, the registration unit [104] may register a user equipment [102]/user by using specific user details and on the basis of the user details, the registration unit [104] assigns a unique registration ID to said user equipment [102]/user.
Further, the method at step [206] encompasses, receiving one or more requests, at a plurality of servers [110], from the one or more load balancers [108], wherein each of the plurality of servers [110] are connected to one or more web socket servers [112]. The plurality of servers [110] are connected to one or more web socket servers [112] to provide connectivity to RICD gaming users concurrently. The one or more load balancers [108] schedules said at least one of a said plurality of servers [110], the at least one user equipment [102] depending on the network bandwidth that consequently allows users to be connected concurrently. The plurality of servers [110], includes plurality of HAProxy servers/HAP servers. The said HAP server is a high availability proxy server and it is a highly scalable module to distribute traffic. The HAP server is based on the response time of a request and is used to identify and distribute the load to other modules.
Thereafter the method at step [208] comprises, dynamically maintaining, by the plurality of servers [110], a load condition of each of the one or more web socket servers [112], based on said dynamic load condition of the one or more web socket servers [112].
Next, the method at step [210] comprises, directing, by the plurality of servers [112], an incoming request from the one or more user equipment [102] to a target web socket server [112] from said one or more web socket servers [112], based on said dynamic load condition of the one or more web socket servers. The dynamic load condition of the target web socket servers [112] is a minimum
dynamic load condition among the dynamic load conditions of the one or more web socket servers [112]. In an instance, the plurality of servers [110] may route the traffic by determining best possible routing path based on the type of traffic that is to be transmitted and minimum dynamic load condition associated with a web socket servers [112].
Also, the method encompasses synchronizing a system time with a request time of the requests received from the one or more user equipment [102]. In an instance, the plurality of servers [110] may be configured to assign a timestamp to the request received from the one or more user equipment [102] and further said plurality of servers [110] may sync the system time with said request time using said timestamp.
Furthermore, the method also comprises establishing a web socket connection between the one or more user equipment [102] and one or more web servers [112]. Each one of the plurality of web socket servers [112] connected to said plurality of servers [110], provides at least one web socket connection between the one or more user equipment [102] and the one or more web servers [112] to provide connectivity to RICD gaming users. The one or more web servers [112] contains answers of all the questions related to said RICD gaming and is connected to the one or more user equipment [102] for broadcasting events and evaluating answers.
Thereafter the method terminates at step [212], after providing an efficient load balancing in a multi-user live gaming environment.
Referring to Fig. 3, an exemplary flow diagram [300], depicting the method for load balancing in a multi-user live gaming environment, in accordance with exemplary embodiment of the present disclosure is shown. As shown in Fig. 3, the process begins at step [302] and proceeds further wherein the user downloads a user app on a user equipment [102] at step [304]. The said user app
is associated with at least one Real-time Interactive Content Distributed (RICD) gameplay.
Thereafter, the process leads to step [306], at step [306] the user registers the user equipment [102] on said user app for said Real-time Interactive Content Distributed (RICD) gameplay. The said registration authenticates at least one web socket connection between said user and at least one of a plurality of web socket servers [112], by registering at least one user/user equipment [102] on said at least one web socket server [112]. In an instance, the registration unit [104] may register a user equipment [102]/user by using specific user details and on the basis of the user details, the registration unit [104] assigns a unique registration ID to said user equipment [102]/user.
Next, the process leads to step [308], where the user equipment [102] launches play along. The “play along” refers to a format where the application displays questions and its respective answer with probable options in sync with the live broadcast, on the user equipment [102].
Further, the process leads to step [310], where a server is configured to perform the profile evaluation of the user equipment [102] that is registered for the said Real-time Interactive Content Distributed (RICD) gameplay. After said profile evaluation, the process further leads to step [312]. At step [312], the user equipment [102] is configured to launch gameplay, which authenticates the web socket connection and awaits for the gameplay events to commence.
Next, at step [314], a game is started. The said starting of the game is based on at least one input from at least one scheduler. Further at step [316], a scheduler is configured to schedule one or more live events in the multi-user live gaming environment and to provide at least one input for starting said game. Also, the scheduler at step [318] receives input from an Admin. The Admin is a human controller and schedules all the events in conjunction with live TV broadcast and manually controls the gameplay.
Thereafter, the process further proceeds to step [320], the step [320] encompasses answering of questions, which further depends on the input received from the scheduler. Once the scheduler ticks/schedules a gameplay event, the gameplay event gets broadcasted to all the user equipment [102] that are registered to at least one web socket server [112]. Also, at step [320], the user may provide the answers to live questions once the live game starts in the user app.
Thereafter, the answer provided by the user is evaluated taking into account network latency due to network bandwidth. For instance, if the user provides an answer within the stipulated allowed time period of say 10 seconds, however, due to network latency if the answer reaches the server after 10 seconds, the answer is still evaluated by the server. If the answer is correct, the process leads to step [322] wherein the user is then rewarded points for the said correct answer at step [322].
After, providing load balancing in a multi-user live gaming environment to the user, to scale and concurrently play along synchronized with the live game show without any latency and issues related to concurrency and scalability the process further terminates at step [324].
While considerable emphasis has been placed herein on the disclosed
embodiments, it will be appreciated that many embodiments can be made and
that many changes can be made to the embodiments without departing from the
principles of the present invention. These and other changes in the embodiments
of the present invention will be apparent to those skilled in the art, whereby it is
to be understood that the foregoing descriptive matter to be implemented is
illustrative and non-limiting.
We claim:
1. A system for load balancing in a multi-user live gaming environment, the
system comprising:
- one or more load balancers [108], configured to dynamically and continuously receive requests from one or more user equipment [102] in the multi-user live gaming environment;
- a plurality of servers [110] connected to said one or more load balancers [108], wherein each of the plurality of servers [110] are configured to receive one or more requests from the one or more load balancers [108]; and
- one or more web socket servers [112] connected to each of said plurality of servers [110],
wherein each of the plurality of servers [110] is configured to
dynamically maintain a load condition of each of said web socket servers [112], and
direct an incoming request from the one or more user equipment [102] to a target web socket server [112] from said one or more web socket servers [112], based on said dynamic load condition of the one or more web socket servers [112].
2. The system as claimed in claim 1 wherein the dynamic load condition of the target web socket server [112] is a minimum dynamic load condition among the dynamic load conditions of one or more web socket servers [112].
3. The system as claimed in claim 1 further comprising a scheduler configured to schedule one or more live events in the multi-user live gaming environment.
4. The system as claimed in claim 1 wherein the plurality of servers [110] are configured to synchronize a system time with a request time of the requests received from the one or more user equipment [102].
5. The system as claimed in claim 1 wherein the load balancer [108] receives said requests from one or more user equipment via a Domain Name System (DNS) server [106].
6. A method of load balancing in a multi-user live gaming environment, the method comprising:
- dynamically and continuously receiving requests, at one or more load balancers [108], from one or more user equipment [102] in the multi-user live gaming environment;
- receiving one or more requests, at a plurality of servers [110], from the one or more load balancers [108], wherein each of the plurality of servers are connected to one or more web socket servers [112];
- dynamically maintaining, by the plurality of servers [110], a load condition of each of the one or more web socket servers [112]; and
- directing, by the plurality of servers [110], an incoming request from the one or more user equipment [102] to a target web socket server [112] from said one or more web socket servers [112], based on said dynamic load condition of the one or more web socket servers [112].
7. The method as claimed in claim 6 dynamic load condition of the target web socket servers is a minimum dynamic load condition among the dynamic load conditions of the one or more web socket servers.
8. The method as claimed in claim 6 further comprising synchronizing a system time with a request time of the requests received from the one or more user equipment.
9. The method as claimed in claim 6 further comprising establishing a web socket connection between the one or more user equipment and the one or more web servers.
| # | Name | Date |
|---|---|---|
| 1 | 201821045929-STATEMENT OF UNDERTAKING (FORM 3) [05-12-2018(online)].pdf | 2018-12-05 |
| 2 | 201821045929-PROVISIONAL SPECIFICATION [05-12-2018(online)].pdf | 2018-12-05 |
| 3 | 201821045929-FORM 1 [05-12-2018(online)].pdf | 2018-12-05 |
| 4 | 201821045929-FIGURE OF ABSTRACT [05-12-2018(online)].pdf | 2018-12-05 |
| 5 | 201821045929-Proof of Right (MANDATORY) [17-01-2019(online)].pdf | 2019-01-17 |
| 6 | 201821045929-FORM-26 [23-01-2019(online)].pdf | 2019-01-23 |
| 7 | 201821045929-ORIGINAL UR 6(1A) FORM 1-210119.pdf | 2019-05-07 |
| 8 | 201821045929-ORIGINAL UR 6(1A) FORM 26-280119.pdf | 2019-05-17 |
| 9 | 201821045929-ENDORSEMENT BY INVENTORS [02-12-2019(online)].pdf | 2019-12-02 |
| 10 | 201821045929-DRAWING [02-12-2019(online)].pdf | 2019-12-02 |
| 11 | 201821045929-COMPLETE SPECIFICATION [02-12-2019(online)].pdf | 2019-12-02 |
| 12 | 201821045929-FORM 18 [04-12-2019(online)].pdf | 2019-12-04 |
| 13 | Abstract1.jpg | 2019-12-09 |
| 14 | 201821045929-FER_SER_REPLY [02-09-2021(online)].pdf | 2021-09-02 |
| 15 | 201821045929-FER.pdf | 2021-10-18 |
| 16 | 201821045929-PA [26-02-2022(online)].pdf | 2022-02-26 |
| 17 | 201821045929-ASSIGNMENT DOCUMENTS [26-02-2022(online)].pdf | 2022-02-26 |
| 18 | 201821045929-8(i)-Substitution-Change Of Applicant - Form 6 [26-02-2022(online)].pdf | 2022-02-26 |
| 19 | 201821045929-FORM 13 [05-04-2022(online)].pdf | 2022-04-05 |
| 20 | 201821045929-AMENDED DOCUMENTS [05-04-2022(online)].pdf | 2022-04-05 |
| 21 | 201821045929-ORIGINAL UR 6(1A) FORM 26-121022.pdf | 2022-10-26 |
| 22 | 201821045929-US(14)-HearingNotice-(HearingDate-28-08-2023).pdf | 2023-08-09 |
| 23 | 201821045929-Correspondence to notify the Controller [23-08-2023(online)].pdf | 2023-08-23 |
| 24 | 201821045929-US(14)-ExtendedHearingNotice-(HearingDate-21-09-2023).pdf | 2023-08-29 |
| 25 | 201821045929-Correspondence to notify the Controller [13-09-2023(online)].pdf | 2023-09-13 |
| 26 | 201821045929-Written submissions and relevant documents [05-10-2023(online)].pdf | 2023-10-05 |
| 27 | 201821045929-PatentCertificate25-10-2023.pdf | 2023-10-25 |
| 28 | 201821045929-IntimationOfGrant25-10-2023.pdf | 2023-10-25 |
| 1 | SearchStrategyE_25-02-2021.pdf |