WO2008104221A1 - Method and apparatus for use in multiplayer server-based gaming - Google Patents
Method and apparatus for use in multiplayer server-based gaming Download PDFInfo
- Publication number
- WO2008104221A1 WO2008104221A1 PCT/EP2007/051856 EP2007051856W WO2008104221A1 WO 2008104221 A1 WO2008104221 A1 WO 2008104221A1 EP 2007051856 W EP2007051856 W EP 2007051856W WO 2008104221 A1 WO2008104221 A1 WO 2008104221A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- server
- update
- gaming
- client
- clients
- Prior art date
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A63F13/12—
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/534—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/5526—Game data structure
- A63F2300/5533—Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Definitions
- the present invention relates to a method and apparatus for use in a communications network.
- Multiplayer network games form a rapidly growing segment of the computer game industry.
- the popularity of online gaming applications leads to increasing revenues in this market.
- the world- wide online game market is predicted to grow from USD3.4 billion in 2005 to over USD 13 billion in 2011.
- North America is expected to challenge the current market leader, Asia, as becoming the leading region for online games.
- the subscription revenue which is only one part of the online game business, was USD2 billion in 2005 and is expected to grow to USD6.8 billion by 2011.
- Delay and jitter values depend even in the internet quite much on the location of the nodes.
- the delay between different regions can be around 100-400ms (lOObyte packets, based on Ping End-to-end Reporting in June 2006).
- Online game providers typically install servers in different regions to provide acceptable gaming quality. For example, clients connected to Quake3 servers in a 200ms latency 'radius' of Internet in 2001.
- Delay and jitter can be an even more important issue in mobile networks.
- the general characteristics and classification of 2G and 3G delays are discussed in 3GPP specifications (TS 22.060 and 23.107). However, the measured delay and jitter varies at different operators based on their system version, configuration, traffic load, etc.
- the Round Trip Time (RTT) values are typically in the order of 100ms in 2G and in the order of 10ms in 3G networks [M. Busse, B. Lamparter, M. Mauve, and W. Effelsberg. Lightweight QoS-Support for Networked Mobile Gaming. In Proc. of the 3rd Workshop on Network and System Support for Games, NETGAMES 2004, Portland, Oregon, USA, pages 85-92, August 2004].
- RTT Round Trip Time
- Mechanisms that are based on prediction are quite complex, and also are decentralized, i.e. running on the client side.
- Time warping is also complex and it may undermine gaming consistency, e.g. the rolled back game status may be in conflict with the game status already confirmed to the clients.
- Mechanisms that introduce processing delays are typically not adaptive (a predefined server update period is applied, typically set for LAN environment) or in some games the clients have to set the "connection quality" in a range that is typically not flexible enough for the large delay variations in heterogeneous networks.
- a method for use in a multiplayer server-based gaming protocol in which each of a plurality of gaming clients is in communication over a network with a gaming server for participating in a common multiplayer network game, the protocol comprising a sequence of update periods in each of at least some of which a gaming update is sent from the server to each of at least some of the clients for updating them on a status of the game, with each client sending a gaming action, if any, to the server in response to receipt of such a gaming update, the gaming action being used at the server to update the status of the game, the network being of a type to produce variations in client-server communication delays, and the method comprising: accessing for each client a function representing a distribution of client-server delays relating to that client, causing a parameter used to determine a duration of the update periods to be updated so as to tend to improve an evaluation relating to a predetermined measure of game quality, the evaluation being dependent upon the functions and the parameter, and causing the functions to be updated based
- Improving the evaluation may comprise minimising or maximising the evaluation. Whether the evaluation is maximised or minimised depends on the nature of the evaluation. For example, an evaluation of a negative measure of game quality might be minimised, while an evaluation of a positive measure of game quality might be maximised.
- the evaluation may relate to a likelihood (which may take the form of a probability) that the predetermined measure of game quality is greater or less than a predetermined threshold. Again, the direction over the threshold depends on the nature of the evaluation being made.
- the function may take the form of a probability density function and/or a probability distribution function.
- the predetermined measure may comprise an element relating to an idle time for each of the clients in an update period.
- an idle time for a client in an update period may be considered to relate to the time remaining in that update period after a reply to the gaming update from the client is received at the server.
- the aim may be to minimise a probability p[max ⁇ ; > A), where ⁇ , represents the idle
- T represents the parameter
- Xi represents the client-server delay for client i, where ⁇ (t) represents the probability density function for client i, with F t (t) representing the corresponding probability distribution function, and where ⁇ represents the maximum delay among the clients.
- the predetermined measure may comprise an element relating to the average idle among the clients in an update period.
- the predetermined measure may comprise an element relating to the loss among the clients in an update period.
- the predetermined measure may comprise an element relating to the average loss rate among the clients.
- the duration of an update period may be determined in dependence upon whether replies to the gaming update for that update period have been received at the server from all the clients to which the gaming update was sent.
- the duration of an update period may be determined to be the lowest multiple of the base duration that allows replies to the gaming update for that update period to be received at the server from all the clients, at least up to a predetermined maximum multiple.
- the predetermined maximum multiple is two. Updating the parameter may be performed as part of a recursive optimisation routine, such as a gradient search routine.
- the optimisation routine may be performed at predetermined intervals.
- the network node performing the method actually stores the functions.
- the functions may be stored remotely and accessed from that remote location by the node.
- the method performed by the node may comprise storing the functions locally.
- the network node performing the method actually makes measurements of the network delays; this may be performed by another node.
- the network node performing the method actually performs the updating of the parameter.
- the network node performing the method actually performs the updating of the functions. It is even possible that the maintenance of the functions is entirely separate from the node, so that it is not even essential to cause the updating of the functions, only to access the functions, maintained independently and remotely, so as to be able to perform the evaluation based on the functions.
- the function may be modelled using radial basis functions. Updating the function may be performed as part of a radial basis function fitting technique.
- the function may be updated at predetermined intervals.
- the parameter may be updated at predetermined intervals.
- the client-server delay may be determined in dependence upon the time period from sending a gaming update to receiving a gaming action in reply.
- the network may be of a heterogeneous type.
- the method may be performed at the server.
- apparatus for use in a multiplayer server-based gaming protocol in which each of a plurality of gaming clients is in communication over a network with a gaming server for participating in a common multiplayer network game, the protocol comprising a sequence of update periods in each of at least some of which a gaming update is sent from the server to each of at least some of the clients for updating them on a status of the game, with each client sending a gaming action, if any, to the server in response to receipt of such a gaming update, the gaming action being used at the server to update the status of the game, the network being of a type to produce variations in client-server communication delays, and the apparatus comprising: means for accessing for each client a function representing a distribution of client-server delays relating to that client, means for causing a parameter used to determine a duration of the update periods to be updated so as to tend to improve an evaluation relating to a predetermined measure of game quality, the evaluation being dependent upon the functions and the parameter, and means for causing the functions to
- a program for controlling an apparatus to perform a method according to the first aspect of the present invention or which, when loaded into an apparatus, causes the apparatus to become an apparatus according to the second aspect of the present invention may be carried on a carrier medium.
- the carrier medium may be a storage medium.
- the carrier medium may be a transmission medium.
- an apparatus programmed by a program according to the third aspect of the present invention.
- a storage medium containing a program according to the third aspect of the present invention there is provided a storage medium containing a program according to the third aspect of the present invention.
- An embodiment of the present invention has one or more of the following technical advantages over previously-considered approaches.
- the server update period can be adaptively optimized.
- the algorithm can find the optimal server update period in case the clients experience different and varying latency to a game server.
- the game provider can support much more clients from heterogeneous network environment. Therefore, the method can contribute to achieving higher revenues from network games and can further increase the perceived game quality and user satisfaction. Thus, an embodiment of the present invention paves the way towards serving more players which can further increase the business potential of network games.
- the solution can be implemented on the server side and has the advantage of running only one centralized algorithm, thus it avoids putting unnecessary computational overhead onto the clients.
- the algorithm has a fast convergence speed.
- Figure IA illustrates a protocol model based on a period of T
- Figure IB illustrates a protocol model based on a period up to 2 T
- Figure 2 illustrates a mechanism of server period time optimization according to an embodiment of the present invention
- Figure 3 is a block diagram illustrating apparatus according to an embodiment of the present invention.
- FIG. 4 illustrates quality measures by T server parameter
- FIG. 5 illustrates quality measures by T server parameter (extended protocol);
- Figure 6 illustrates a comparison of measurements and model results;
- Figure 7 illustrates a convergence of the server period time.
- an embodiment of the present invention provides a novel adaptive game server protocol optimization method to combat network latencies in a heterogeneous network environment.
- an embodiment of the present invention provides a solution to a technical problem that enables the serving of more players, which in turn can further increase the business potential of network games.
- a server-side solution according to an embodiment of the present invention can be applied by network operators, as it has the advantage of running a centralized algorithm, thereby avoiding putting unnecessary computational overhead onto the clients.
- latency compensation is treated as an optimization problem on the server side, tackled by a recursive optimization algorithm.
- An algorithm has been developed for use in an embodiment of the present invention to find the optimal server update period, i.e. the game status update period is set by the server, subject to the criterion of minimizing the tail probability of the maximal idle time.
- the loss probability can also be taken into account, i.e. too short an update period for minimizing the idle time can increase the loss of "slow" clients.
- a sever-based game protocol is considered as a number of arrival processes from the clients (which are characterized by different delays) and periodical updates sent by the server to the clients.
- the reason for applying a periodical update process has been well discussed in the literature.
- a server S updates the status of the game periodically, after each update period (the duration of this period is denoted by T) with packets U-il, U- jl (first update to clients C 1 , C, respectively) and U- i2, U-j2 (second update to clients C 1 , C j respectively); • The clients C 1 , C j send new packets (their gaming actions) A-il, A-jl respectively upon receiving updates U-il, U-jl from the server S;
- the clients C 1 , C j send further packets (their gaming actions) upon receiving further updates U-i2, U-j2 from the server S; • The arrived packets A-il have to wait for a time IT 1 until the next update
- this waiting time is referred to as the client idle time.
- the loss can be minimized by increasing T, since there is enough time to receive the packets of each client, even though some of them may have large delays.
- the idle time IT is also increased, as a client C with a small access delay has to remain idle for a long period, until packets generated by the larger delay clients are received.
- the protocol in this form does not cope well with heterogeneous clients and a wide variety of delays.
- an extended protocol in which the server S is able to accept packets arriving from the clients C in a period of length 2 J, and in which the server S is able to send an update U with a period of either J (where the packet of each participant is received within the interval [0, J]), or 2 J (where there are some participants whose packets are received within the interval [J, 2J]).
- J where the packet of each participant is received within the interval [0, J]
- 2 J where there are some participants whose packets are received within the interval [J, 2J]
- J In view of the variable length of update period in the extended protocol, compared to the fixed length of update period of the protocol shown in Figure IA, despite both being controlled by the same basic update period J, for the avoidance of confusion, J will henceforth be referred to as the "update parameter", while the “update period” will refer to the actual length of time between successive updates, which may be J or 2 J in this protocol.
- the update parameter J can be considered to be a parameter that is used to determine the duration of the update periods.
- the server S sends an update U after J if the packets of all participants have arrived earlier than J, or sends an update U after 2 J (like U-i2, U-j2 of Figure IB) if there is at least one client packet (like A-jl in Figure IB) received within the interval [J, 2 J].
- the update period is effectively either J or 2 T, depending on whether replies to a gaming update for a particular update period have been received at the server from all the clients to which the gaming update was sent at the J time point. It is desirable to choose the server update period subject to minimize the probability of the maximal idle time exceeding a certain threshold (which threshold is associated with the "psycho-physically approved quality of the game"). In order to calculate the optimal server update period and the underlying tail distribution, statistical tools from large deviation theory are used.
- an adaptive on-line algorithm has been developed for use in an embodiment of the present invention that can adjust the server update period by estimating the corresponding delay probability density functions based on past observations.
- the p.d.f. of the measured delay processes is approximated and the tail probability of the maximal idle time is expressed analytically as a function of the server update parameter.
- the optimal server update parameter can found by performing, for example, a gradient search on this function. Finding the optimal server update parameter in turn means that the optimal server update period is found, since one is related to the other.
- an adaptive sever update algorithm can be developed which helps to optimize the sever update period even in the case of clients with unknown and varying latencies.
- the client C 1 misses an update if the access delay is longer than 2T.
- the objective is to optimize the server update parameter T in order minimize the probability that the maximum idle time is larger then a predefined quantity A, where A relates to the quality of the game. More precisely, gaming optimization amounts to solving the following problem:
- T(k + 1) T(k) - ⁇ sgn( ⁇ (T(k)) - ⁇ (T(k - I)) ) (5)
- the computational process of the algorithm is summarized in Figure 2, while a schematic block diagram of a server 100 for carrying out the algorithm is shown in Figure 3.
- the server 100 comprises a delay measuring portion 110, a p.d.f. updating portion 120, a parameter updating portion 130, an evaluation portion 140, a parameter storing portion 150, a p.d.f. storing portion 160 and a control portion 170.
- the various portions 110 to 160 operate under control of the control portion 170.
- step Sl the delay measuring portion 110 measures the delays, and passes this information to the p.d.f. updating portion 120, which in step S2 uses the information to update the distributions, which are stored in the p.d.f. storing portion
- step S2 The updating of the distributions runs simultaneously with the game session.
- P.d.f. estimation in step S2 can make use of Radial Basis Function (RBF) fitting techniques, for example.
- RBF Radial Basis Function
- step S2 When a new measurement is taken about the delay of client C; in the course of the game, the corresponding density is updated (step S2).
- the server update parameter T which is stored in the parameter storing portion 150, is optimized recursively by plugging the updated p.d.f.s into expression (3) and (4) (step S3); this is performed by the evaluation portion 140 in dependence upon information from the parameter storing portion 150 and the p.d.f. storing portion 160.
- the parameter updating portion 130 of the server 100 can optimize the update parameter (step S4) based on the newly obtained delay information in the course of the game.
- Recursion (5) is based on a gradient search, which can get stuck in local optima. However, simulations demonstrated that p[max ⁇ ; > ⁇ ) has only one global minimum
- recursion (5) can be started from many different initial points.
- an embodiment of the present invention can be considered to be applicable in any situation where there is a base duration for each update period, and an overall duration of each update period is determined to be a multiple of the base duration, typically an integer multiple of the base duration.
- the integer multiple is determined in advance to be one.
- the duration of an update period is determined in dependence upon whether replies to the gaming update for that update period have been received at the server from all the clients to which the gaming update was sent.
- the duration of an update period is determined to be the lowest multiple of the base duration that allows replies to the gaming update for that update period to be received at the server from all the clients, at least up to a predetermined maximum multiple of two in this particular protocol, although the predetermined maximum multiple could be any suitable number.
- Figures 3 and 4 show the quality measures (loss rate, average idle time and tail probability) as a function of the server update parameter T, in the case of applying the single T protocol ( Figure 4) and the extended 2T protocol ( Figure 5).
- the quality measures (loss rate, average idle time and tail probability) as a function of the server update parameter T, in the case of applying the single T protocol ( Figure 4) and the extended 2T protocol ( Figure 5).
- operation of one or more of the above-described components can be controlled by a program operating on the device or apparatus.
- Such an operating program can be stored on a computer-readable medium, or could, for example, be embodied in a signal such as a downloadable data signal provided from an Internet website.
- the appended claims are to be interpreted as covering an operating program by itself, or as a record on a carrier, or as a signal, or in any other form.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Pinball Game Machines (AREA)
Abstract
A method is disclosed for use in a multiplayer server-based gaming protocol in which each of a plurality of gaming clients is in communication over a network with a gaming server for participating in a common multiplayer network game. The protocol is one in which a sequence of update periods in each of at least some of which a gaming update is sent from the server to each of at least some of the clients for updating them on a status of the game. In the protocol, each client sends a gaming action, if any, to the server in response to receipt of such a gaming update, the gaming action being used at the server to update the status of the game. The network is of a type to produce variations in client-server communication delays. The disclosed method comprises: accessing (S3) for each client a function representing a distribution of client-server delays relating to that client, updating (S4) a parameter used to determine a duration of the update periods so as to tend to improve an evaluation (performed in S3) relating to a predetermined measure of game quality, the evaluation being dependent upon the functions and the parameter, and updating (S2) the functions based on measurements (S1) of client-server delay in the network.
Description
TITLE OF THE INVENTION
METHOD AND APPARATUS FOR USE IN MULTIPLAYER SERVER-BASED GAMING
BACKGROUND OF THE INVENTION 1. Field of the Invention
The present invention relates to a method and apparatus for use in a communications network.
2. Description of the Related Art
Multiplayer network games form a rapidly growing segment of the computer game industry. The popularity of online gaming applications leads to increasing revenues in this market. The world- wide online game market is predicted to grow from USD3.4 billion in 2005 to over USD 13 billion in 2011. During this time period North America is expected to challenge the current market leader, Asia, as becoming the leading region for online games. The subscription revenue, which is only one part of the online game business, was USD2 billion in 2005 and is expected to grow to USD6.8 billion by 2011.
Additionally, many popular games like first-person shooters and sports or racing games are increasingly played online charge-free. The growth in this market and in the client base indicates a growing demand to access online game services in a heterogeneous network environment. The network operators are also interested in providing good online game access to increase their subscriber base and traffic. As a result, as well as having a clear business potential, the extension of game services to heterogeneous networks also presents a technical challenge due to the wide range of delays associated with clients from different networking environment, e.g., in mobile networks.
Most of the online games (typically First Person Shooter (FPS) and Real Time Strategy (RTS)) support a lot of simultaneous players which requires increasing network and computational resources. These games are typically designed for good network connections, e.g., in a LAN environment. In a LAN environment, the latency is
typically small and exhibits homogenous characteristics. However, in heterogeneous network environment the following attributes must be taken into account:
• the clients experience different latency to a game server; • the clients experience different latency in different game sessions;
• the clients experience a large delay variation within a game session.
Delay and jitter values depend even in the internet quite much on the location of the nodes. The delay between different regions can be around 100-400ms (lOObyte packets, based on Ping End-to-end Reporting in June 2006). Online game providers typically install servers in different regions to provide acceptable gaming quality. For example, clients connected to Quake3 servers in a 200ms latency 'radius' of Internet in 2001.
Delay and jitter can be an even more important issue in mobile networks. The general characteristics and classification of 2G and 3G delays are discussed in 3GPP specifications (TS 22.060 and 23.107). However, the measured delay and jitter varies at different operators based on their system version, configuration, traffic load, etc. The Round Trip Time (RTT) values are typically in the order of 100ms in 2G and in the order of 10ms in 3G networks [M. Busse, B. Lamparter, M. Mauve, and W. Effelsberg. Lightweight QoS-Support for Networked Mobile Gaming. In Proc. of the 3rd Workshop on Network and System Support for Games, NETGAMES 2004, Portland, Oregon, USA, pages 85-92, August 2004]. Even though there is a continuous improvement of delay characteristics in mobile networks, the delay variation is still typically higher than in a fixed environment.
There are publications concerning the tolerated delay and jitter for FPS games, for example specifying 139ms as a maximum delay for mobile real-time games in [J. Nichols and M. Claypool. The Effects of Latency on Online Madden NFL Football. In Proc. of the 14th international workshop on Network and operating systems support for digital audio and video, Cork, Ireland, pages 146-151, 2004]. In [T. Henderson. Latency and user behaviour on a multiplayer games server. In Proc. of the 3rd International Workshop on Networked Group Communication (NGC), London, UK, pages 1-13, November 2001] a delay bound of 150ms is defined for Halflife, whereas
300ms delay maximum is given for RTS games, e.g., Age of Empires. In [M. Busse, B. Lamparter, M. Mauve, and W. Effelsberg. Lightweight QoS-Support for Networked Mobile Gaming. In Proc. of the 3rd Workshop on Network and System Support for Games, NETGAMES 2004, Portland, Oregon, USA, pages 85-92, August 2004] a maximum acceptable end-to-end delay was evaluated between 100ms and 200ms.
When extending games to heterogeneous networks, latency and related quantities (such as jitter, packet loss) have long been identified as primary obstacles, which can fundamentally impair the gaming quality [T. Henderson. Latency and user behaviour on a multiplayer games server. In Proc. of the 3rd International Workshop on Networked Group Communication (NGC), London, UK, pages 1-13, November 2001]. In the literature, several research studies have been conducted to analyze the effect of changing network parameters on the quality [A. Chandler and J. Finney. On the Effects of Loose Causal Consistency in Mobile Multiplayer Games. In Proc. of 4th ACM Network and System Support for Games (NetGames), Hawthorne, NY, USA, pages 1- 11, October 2005] [J. Nichols and M. Claypool. The Effects of Latency on Online Madden NFL Football. In Proc. of the 14th international workshop on Network and operating systems support for digital audio and video, Cork, Ireland, pages 146-151, 2004] [T. Henderson. Latency and user behaviour on a multiplayer games server. In Proc. of the 3rd International Workshop on Networked Group Communication (NGC), London, UK, pages 1-13, November 2001].
To combat latencies and ensure tolerable gaming quality and fairness, a number of different latency compensation techniques have been proposed, which can be classified into three major groups (for more details see [A. Chandler and J. Finney. On the Effects of Loose Causal Consistency in Mobile Multiplayer Games. In Proc. of 4th ACM Network and System Support for Games (NetGames), Hawthorne, NY, USA, pages 1- 11, October 2005]):
• Predicting the game status (each client predicts the server response instead of waiting for the status information);
• Applying time warping (the server applies a time-roll-back mechanism to consider game actions which arrive with large delays); and
• Introducing processing delays (the server delays the processing of client status information).
The present applicant has appreciated the following problems with the above-mentioned previously-proposed approaches.
Mechanisms that are based on prediction are quite complex, and also are decentralized, i.e. running on the client side.
Time warping is also complex and it may undermine gaming consistency, e.g. the rolled back game status may be in conflict with the game status already confirmed to the clients.
Mechanisms that introduce processing delays are typically not adaptive (a predefined server update period is applied, typically set for LAN environment) or in some games the clients have to set the "connection quality" in a range that is typically not flexible enough for the large delay variations in heterogeneous networks.
It is desirable to address at least some of the above-identified issues.
SUMMARY OF THE INVENTION
According to a first aspect of the present invention there is provided a method for use in a multiplayer server-based gaming protocol in which each of a plurality of gaming clients is in communication over a network with a gaming server for participating in a common multiplayer network game, the protocol comprising a sequence of update periods in each of at least some of which a gaming update is sent from the server to each of at least some of the clients for updating them on a status of the game, with each client sending a gaming action, if any, to the server in response to receipt of such a gaming update, the gaming action being used at the server to update the status of the game, the network being of a type to produce variations in client-server communication delays, and the method comprising: accessing for each client a function representing a distribution of client-server delays relating to that client, causing a parameter used to
determine a duration of the update periods to be updated so as to tend to improve an evaluation relating to a predetermined measure of game quality, the evaluation being dependent upon the functions and the parameter, and causing the functions to be updated based on measurements of client-server delay in the network.
Improving the evaluation may comprise minimising or maximising the evaluation. Whether the evaluation is maximised or minimised depends on the nature of the evaluation. For example, an evaluation of a negative measure of game quality might be minimised, while an evaluation of a positive measure of game quality might be maximised.
The evaluation may relate to a likelihood (which may take the form of a probability) that the predetermined measure of game quality is greater or less than a predetermined threshold. Again, the direction over the threshold depends on the nature of the evaluation being made.
The function may take the form of a probability density function and/or a probability distribution function.
The predetermined measure may comprise an element relating to an idle time for each of the clients in an update period. In this respect, an idle time for a client in an update period may be considered to relate to the time remaining in that update period after a reply to the gaming update from the client is received at the server.
The predetermined measure may comprise an element relating to the maximum idle time among the clients in an update period. Improving the evaluation may comprise minimising a likelihood that the predetermined measure of game quality is greater than a predetermined threshold.
The aim may be to minimise a probability p[maxη; > A), where η, represents the idle
time for client i of the plurality of clients, and where A represents the predetermined threshold.
The aim may be to tend to minimise the expression
where T represents the parameter, where
Xi represents the client-server delay for client i, where β(t) represents the probability density function for client i, with Ft(t) representing the corresponding probability distribution function, and where ζ represents the maximum delay among the clients.
The predetermined measure may comprise an element relating to the average idle among the clients in an update period.
It may be that a reply to a gaming update received at the server after the end of the update period in which that gaming update was sent is considered as a loss. In this case, the predetermined measure may comprise an element relating to the loss among the clients in an update period. The predetermined measure may comprise an element relating to the average loss rate among the clients.
The parameter may relate to a base duration for each update period, and an overall duration of each update period is determined to be a multiple of the base duration. The duration of each update period may be determined to be an integer multiple of the base duration. The integer multiple may be determined in advance to be one.
The duration of an update period may be determined in dependence upon whether replies to the gaming update for that update period have been received at the server from all the clients to which the gaming update was sent.
The duration of an update period may be determined to be the lowest multiple of the base duration that allows replies to the gaming update for that update period to be received at the server from all the clients, at least up to a predetermined maximum multiple. In one example, the predetermined maximum multiple is two.
Updating the parameter may be performed as part of a recursive optimisation routine, such as a gradient search routine.
The optimisation routine may be performed at predetermined intervals.
It is not essential that there is a separate function for each client. It is possible that at least one function relates to, or is shared by, more than one client. This might be the case where several clients share similar delay characteristics.
It is not essential that the network node performing the method actually stores the functions. The functions may be stored remotely and accessed from that remote location by the node. On the other hand, the method performed by the node may comprise storing the functions locally. Likewise, it is not essential that the network node performing the method actually makes measurements of the network delays; this may be performed by another node. Likewise, for example if the parameter is stored remotely, it is not essential that the network node performing the method actually performs the updating of the parameter. Likewise it is not essential that the network node performing the method actually performs the updating of the functions. It is even possible that the maintenance of the functions is entirely separate from the node, so that it is not even essential to cause the updating of the functions, only to access the functions, maintained independently and remotely, so as to be able to perform the evaluation based on the functions.
The function may be modelled using radial basis functions. Updating the function may be performed as part of a radial basis function fitting technique.
The function may be updated at predetermined intervals. The parameter may be updated at predetermined intervals.
The client-server delay may be determined in dependence upon the time period from sending a gaming update to receiving a gaming action in reply.
The network may be of a heterogeneous type.
The method may be performed at the server.
According to a second aspect of the present invention there is provided apparatus for use in a multiplayer server-based gaming protocol in which each of a plurality of gaming clients is in communication over a network with a gaming server for participating in a common multiplayer network game, the protocol comprising a sequence of update periods in each of at least some of which a gaming update is sent from the server to each of at least some of the clients for updating them on a status of the game, with each client sending a gaming action, if any, to the server in response to receipt of such a gaming update, the gaming action being used at the server to update the status of the game, the network being of a type to produce variations in client-server communication delays, and the apparatus comprising: means for accessing for each client a function representing a distribution of client-server delays relating to that client, means for causing a parameter used to determine a duration of the update periods to be updated so as to tend to improve an evaluation relating to a predetermined measure of game quality, the evaluation being dependent upon the functions and the parameter, and means for causing the functions to be updated based on measurements of client-server delay in the network.
According to a third aspect of the present invention there is provided a program for controlling an apparatus to perform a method according to the first aspect of the present invention or which, when loaded into an apparatus, causes the apparatus to become an apparatus according to the second aspect of the present invention. The program may be carried on a carrier medium. The carrier medium may be a storage medium. The carrier medium may be a transmission medium.
According to a fourth aspect of the present invention there is provided an apparatus programmed by a program according to the third aspect of the present invention.
According to a fifth aspect of the present invention there is provided a storage medium containing a program according to the third aspect of the present invention.
An embodiment of the present invention has one or more of the following technical advantages over previously-considered approaches.
Based on this model the server update period can be adaptively optimized. The algorithm can find the optimal server update period in case the clients experience different and varying latency to a game server.
The game provider can support much more clients from heterogeneous network environment. Therefore, the method can contribute to achieving higher revenues from network games and can further increase the perceived game quality and user satisfaction. Thus, an embodiment of the present invention paves the way towards serving more players which can further increase the business potential of network games.
The solution can be implemented on the server side and has the advantage of running only one centralized algorithm, thus it avoids putting unnecessary computational overhead onto the clients.
The algorithm has a fast convergence speed.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure IA illustrates a protocol model based on a period of T;
Figure IB illustrates a protocol model based on a period up to 2 T;
Figure 2 illustrates a mechanism of server period time optimization according to an embodiment of the present invention;
Figure 3 is a block diagram illustrating apparatus according to an embodiment of the present invention;
Figure 4 illustrates quality measures by T server parameter;
Figure 5 illustrates quality measures by T server parameter (extended protocol);
Figure 6 illustrates a comparison of measurements and model results; and
Figure 7 illustrates a convergence of the server period time.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Before describing an embodiment of the present invention in detail, an overview will first be provided.
In order to make game playing feasible for clients accessing the game via different networks, an embodiment of the present invention provides a novel adaptive game server protocol optimization method to combat network latencies in a heterogeneous network environment. Thus, an embodiment of the present invention provides a solution to a technical problem that enables the serving of more players, which in turn can further increase the business potential of network games.
A server-side solution according to an embodiment of the present invention can be applied by network operators, as it has the advantage of running a centralized algorithm, thereby avoiding putting unnecessary computational overhead onto the clients.
To realise an embodiment of the present invention, latency compensation is treated as an optimization problem on the server side, tackled by a recursive optimization algorithm. An algorithm has been developed for use in an embodiment of the present invention to find the optimal server update period, i.e. the game status update period is set by the server, subject to the criterion of minimizing the tail probability of the maximal idle time. The loss probability can also be taken into account, i.e. too short an update period for minimizing the idle time can increase the loss of "slow" clients.
By recursively updating the delay p.d.f. (Probability Density Function) estimations with the measured delays, an adaptive sever update algorithm has been developed which helps to optimize the sever update period even in the case of clients with unknown or varying latencies. In this way, the gaming quality can be improved and even heterogeneous clients can enjoy rather similar gaming experiences.
An embodiment of the present invention will now be described in more detail.
A sever-based game protocol is considered as a number of arrival processes from the clients (which are characterized by different delays) and periodical updates sent by the server to the clients. The reason for applying a periodical update process has been well discussed in the literature.
One protocol is described as follows with reference to Figure IA:
• There is a client population C1, where i = 1, ..., N;
• A server S updates the status of the game periodically, after each update period (the duration of this period is denoted by T) with packets U-il, U- jl (first update to clients C1, C, respectively) and U- i2, U-j2 (second update to clients C1, Cj respectively); • The clients C1, Cj send new packets (their gaming actions) A-il, A-jl respectively upon receiving updates U-il, U-jl from the server S;
• A packet (client action) like A-jl arriving at the server S from the client Cj after an interval of τ, from the sending of the last update U-jl, which is longer than the update period T, is discarded and regarded as a loss, whereas a packet like A-il arriving at the server S from the client C1 after an interval X1 from the sending of the last update U-il, which is within the update period T, is not regarded as a loss;
• The clients C1, Cj send further packets (their gaming actions) upon receiving further updates U-i2, U-j2 from the server S; • The arrived packets A-il have to wait for a time IT1 until the next update
U-i2 to be validated, and this waiting time is referred to as the client idle time.
It is desirable to choose an optimal value for T that guarantees an acceptable quality for each client participating in the game, despite the different network latencies.
It can readily be seen that the loss can be minimized by increasing T, since there is enough time to receive the packets of each client, even though some of them may have
large delays. However, in this case the idle time IT is also increased, as a client C with a small access delay has to remain idle for a long period, until packets generated by the larger delay clients are received. As a result, the protocol in this form does not cope well with heterogeneous clients and a wide variety of delays.
Thus, an extended protocol is introduced in which the server S is able to accept packets arriving from the clients C in a period of length 2 J, and in which the server S is able to send an update U with a period of either J (where the packet of each participant is received within the interval [0, J]), or 2 J (where there are some participants whose packets are received within the interval [J, 2J]). With this extension, the loss can be further decreased, but "fast" clients do not suffer from large idle periods.
In view of the variable length of update period in the extended protocol, compared to the fixed length of update period of the protocol shown in Figure IA, despite both being controlled by the same basic update period J, for the avoidance of confusion, J will henceforth be referred to as the "update parameter", while the "update period" will refer to the actual length of time between successive updates, which may be J or 2 J in this protocol. The update parameter J can be considered to be a parameter that is used to determine the duration of the update periods.
This extension, which is illustrated in Figure IB, differs from the basic algorithm as follows:
• A packet (client action) A arriving at the server S later than 2 J is discarded and regarded as a loss;
• The server S sends an update U after J if the packets of all participants have arrived earlier than J, or sends an update U after 2 J (like U-i2, U-j2 of Figure IB) if there is at least one client packet (like A-jl in Figure IB) received within the interval [J, 2 J]. Thus the update period is effectively either J or 2 T, depending on whether replies to a gaming update for a particular update period have been received at the server from all the clients to which the gaming update was sent at the J time point.
It is desirable to choose the server update period subject to minimize the probability of the maximal idle time exceeding a certain threshold (which threshold is associated with the "psycho-physically approved quality of the game"). In order to calculate the optimal server update period and the underlying tail distribution, statistical tools from large deviation theory are used.
Furthermore, an adaptive on-line algorithm has been developed for use in an embodiment of the present invention that can adjust the server update period by estimating the corresponding delay probability density functions based on past observations.
In the forthcoming mathematical treatment, the p.d.f. of the measured delay processes is approximated and the tail probability of the maximal idle time is expressed analytically as a function of the server update parameter. The optimal server update parameter can found by performing, for example, a gradient search on this function. Finding the optimal server update parameter in turn means that the optimal server update period is found, since one is related to the other.
In this way, an adaptive sever update algorithm can be developed which helps to optimize the sever update period even in the case of clients with unknown and varying latencies.
A formal model and optimization algorithm will now be described for finding specific T for clients with heterogeneous network environments in the case of the extended protocol described above with reference to Figure IB.
To model the gaming problem the following notations are introduced:
• the server S works in a synchronous fashion and the state-update parameter is denoted by T;
• there is a client population C1, where i = 1, ..., N and each client C1 accesses the server with a random delay denoted by τ,, where i = 1, ..., N', where N' denotes the subset of clients C1 whose delay is smaller than 2T;
• f,(t) denotes the probability density function of random variable X1 (the delay of client C1), whereas F,(t) is the corresponding probability distribution function;
• random variable ξ represents the maximum delay among the clients, i.e. ζ:= max, X1;
• the idle time for client C1 within a server update period is denoted by η,.
In order to develop an analytical model the following assumptions have been made:
• f,(t, with i = 1, ...,7V, are known (later this assumption will be relaxed by devising adaptive schemes based on measurements);
• The client C1 misses an update if the access delay is longer than 2T.
With this assumption the idle time for client C1 is given as:
The objective is to optimize the server update parameter T in order minimize the probability that the maximum idle time is larger then a predefined quantity A, where A relates to the quality of the game. More precisely, gaming optimization amounts to solving the following problem:
Furthermore, the p(η; > A) probability can be expanded as follows (for more details, see the Appendix):
This formula will be denoted in the following description by ψ(τ(k)). It can be seen that this formula, which amounts to an evaluation relating to a predetermined measure of the game quality, does indeed depend on T (and on the distribution functions); which prompts the perception of p(maxη; > A) as a function of T denoted by p(maxη; > A) =
ψ(τ(k)) . In this way, optimizing the update parameter on the server reduces to a search problem tackled by the following recursion:
T(k + 1) = T(k) - Δ sgn( Ψ(T(k)) - Ψ(T(k - I)) ) (5)
It is to be noted that, if the density functions are known, then finding optimal T is an off-line task that can be carried out prior to the game. Thus any search technique drawn from the tools of classical optimization theory can be used. However, in reality the densities/^ for i = 1, ..., TV are not known a priori, which prompts the application of an adaptive technique based on the observed delays during the game session.
As mentioned earlier, one may consider not only the tail probability of the maximal idle time as the quality measure of the game but also the average idle time and the loss rate. These measures can easily be included into the optimization process, e.g. as constraints.
The server update optimization algorithm will now be described.
The computational process of the algorithm is summarized in Figure 2, while a schematic block diagram of a server 100 for carrying out the algorithm is shown in Figure 3. The server 100 comprises a delay measuring portion 110, a p.d.f. updating portion 120, a parameter updating portion 130, an evaluation portion 140, a parameter
storing portion 150, a p.d.f. storing portion 160 and a control portion 170. The various portions 110 to 160 operate under control of the control portion 170.
To evaluate equation (4) in step S3, described below, the evaluation portion 140 requires an estimation of the distributions, which in turn requires measurements of the delays. Therefore, in step Sl, the delay measuring portion 110 measures the delays, and passes this information to the p.d.f. updating portion 120, which in step S2 uses the information to update the distributions, which are stored in the p.d.f. storing portion
160. The updating of the distributions runs simultaneously with the game session. P.d.f. estimation in step S2 can make use of Radial Basis Function (RBF) fitting techniques, for example.
When a new measurement is taken about the delay of client C; in the course of the game, the corresponding density is updated (step S2). Performing recursion in each new measurement, the server update parameter T, which is stored in the parameter storing portion 150, is optimized recursively by plugging the updated p.d.f.s into expression (3) and (4) (step S3); this is performed by the evaluation portion 140 in dependence upon information from the parameter storing portion 150 and the p.d.f. storing portion 160. In this way, the parameter updating portion 130 of the server 100 can optimize the update parameter (step S4) based on the newly obtained delay information in the course of the game.
Recursion (5) is based on a gradient search, which can get stuck in local optima. However, simulations demonstrated that p[maxη; > λ) has only one global minimum
(see the Appendix below). Furthermore, in order to avoid stopping in local minima, recursion (5) can be started from many different initial points.
The simulation results clearly demonstrated that using a predefined or non-adaptive server update period (40ms is currently implemented in most of gaming servers [M. Busse, B. Lamparter, M. Mauve, and W. Effelsberg. Lightweight QoS-Support for Networked Mobile Gaming. In Proc. of the 3rd Workshop on Network and System Support for Games, NETGAMES 2004, Portland, Oregon, USA, pages 85-92, August
2004]) can be far from the optimal update period as an adaptive update period optimization is needed to handle the various latencies being typical in heterogeneous network environment.
Simulations also show that the optimal sever update period can be achieved with a fast convergence speed (see the Appendix below).
Although a formal model and optimization algorithm has been described above for the case of the extended protocol described above with reference to Figure IB, it will be appreciated that the same or a similar approach can be taken with other gaming protocols, for example that described above with reference to Figure IA or other similar types of protocol.
In this respect, an embodiment of the present invention can be considered to be applicable in any situation where there is a base duration for each update period, and an overall duration of each update period is determined to be a multiple of the base duration, typically an integer multiple of the base duration. In the protocol described with reference to Figure IA, the integer multiple is determined in advance to be one. In the protocol described with reference to Figure IB, the duration of an update period is determined in dependence upon whether replies to the gaming update for that update period have been received at the server from all the clients to which the gaming update was sent. More particularly, in the Figure IB protocol, the duration of an update period is determined to be the lowest multiple of the base duration that allows replies to the gaming update for that update period to be received at the server from all the clients, at least up to a predetermined maximum multiple of two in this particular protocol, although the predetermined maximum multiple could be any suitable number.
It should be noted that it is possible to detect that a device is operating according to an embodiment of the present invention by use of a stochastic testing program that generates access delays in a random pre-designed fashion, and by identifying the statistics of the server update strategy.
Appendix
Simulation results
Figures 3 and 4 show the quality measures (loss rate, average idle time and tail probability) as a function of the server update parameter T, in the case of applying the single T protocol (Figure 4) and the extended 2T protocol (Figure 5). In the simulated case, there are three clients with RTT values measured in Internet with lOObyte packets participating in the game.
Detailed description of the model
Performance analysis
Extensive simulations have been carried out to test the performance of the server optimization method. The delay distribution functions were estimated by making more than 60000 measurements. Figure 6 depicts the calculated tail probabilities against the measured ones as a function of the server update parameter T.
The approximation with the union bound is denoted by Modi, whereas the tail calculated by assuming client delay independence is denoted by Mod2. (Union bound is a known method to calculate the distribution of the maximum of the probability variables. Besides applying union bound, there is another method to calculate the p.d.f. of the maximum of probability variables, based on the assumption that the probability variables - here client delays - are independent.) As demonstrated by the Figure 6, the quality measure (tail probability of the maximal delay) has indeed a sharp minimum with respect to the server update parameter T. Furthermore, one can see that even though both Modi and Mod2 upper bound the real tail, the minimum values of the curves more or less coincide which implies that this optimization provides nearly the exact optimum.
As was mentioned before, the server update period can be optimized adaptively. Figure
7 shows the convergence of adaptive server update period optimization running on 500 length ping sequence for three different cases: 3 users with mean delay of 106ms (case 1), 173ms (case 2) and 60ms (case 3). As exhibited by the curves, the server update
period has quite fast convergence speed as the optimal T is reached within approximately 10- 15 sec (100 measurements).
It will be appreciated that operation of one or more of the above-described components can be controlled by a program operating on the device or apparatus. Such an operating program can be stored on a computer-readable medium, or could, for example, be embodied in a signal such as a downloadable data signal provided from an Internet website. The appended claims are to be interpreted as covering an operating program by itself, or as a record on a carrier, or as a signal, or in any other form.
It will also be appreciated by the person of skill in the art that various modifications may be made to the above-described embodiments without departing from the scope of the present invention as defined by the appended claims. In particular, it will be appreciated that, although described in relation to a Universal Mobile Telecommunications System having an IP Multimedia Subsystem, the present invention is also applicable to other types of network.
Claims
1. A method for use in a multiplayer server-based gaming protocol in which each of a plurality of gaming clients is in communication over a network with a gaming server for participating in a common multiplayer network game, the protocol comprising a sequence of update periods in each of at least some of which a gaming update is sent from the server to each of at least some of the clients for updating them on a status of the game, with each client sending a gaming action, if any, to the server in response to receipt of such a gaming update, the gaming action being used at the server to update the status of the game, the network being of a type to produce variations in client-server communication delays, and the method comprising: accessing for each client a function representing a distribution of client-server delays relating to that client, causing a parameter used to determine a duration of the update periods to be updated so as to tend to improve an evaluation relating to a predetermined measure of game quality, the evaluation being dependent upon the functions and the parameter, and causing the functions to be updated based on measurements of client-server delay in the network.
2. A method as claimed in any preceding claim, wherein improving the evaluation comprises minimising or maximising the evaluation, depending on the nature of the predetermined measure.
3. A method as claimed in any preceding claim, wherein improving the evaluation comprises minimising or maximising a likelihood that the predetermined measure of game quality is greater or less than a predetermined threshold, depending on the nature of the predetermined measure.
4. A method as claimed in claim 3, wherein the likelihood is a probability.
5. A method as claimed in any preceding claim, wherein the function comprises a probability density function and/or a probability distribution function.
6. A method as claimed in any preceding claim, wherein the predetermined measure comprises an element relating to an idle time for each of the clients in an update period, where an idle time for a client in an update period relates to the time remaining in that update period after a reply to the gaming update from the client is received at the server.
7. A method as claimed in claim 6, wherein the predetermined measure comprises an element relating to the maximum idle time among the clients in an update period.
8. A method as claimed in claim 7, wherein improving the evaluation comprises minimising a likelihood that the predetermined measure of game quality is greater than a predetermined thresho Id.
9. A method as claimed in claim 8, comprising updating the parameter so as to tend to minimise a probability p[maxη; > A), where η, represents the idle time for client
i of the plurality of clients, and where A represents the predetermined threshold.
10. A method as claimed in claim 9, comprising updating the parameter so as to tend to minimise the expression where T represents the parameter, where
Xi represents the client-server delay for client i, where β(t) represents the probability density function for client i, with Ft(t) representing the corresponding probability distribution function, and where ξ represents the maximum delay among the clients.
11. A method as claimed in any one of claims 6 to 10, wherein the predetermined measure comprises an element relating to the average idle among the clients in an update period.
12. A method as claimed in any preceding claim, wherein a reply to a gaming update received at the server after the end of the update period in which that gaming update was sent is considered as a loss, and wherein the predetermined measure comprises an element relating to the loss among the clients in an update period.
13. A method as claimed in claim 12, wherein the predetermined measure comprises an element relating to the average loss rate among the clients.
14. A method as claimed in any preceding claim, wherein the parameter relates to a base duration for each update period, and an overall duration of each update period is determined to be a multiple of the base duration.
15. A method as claimed in claim 14, wherein the duration of each update period is determined to be an integer multiple of the base duration.
16. A method as claimed in claim 15, wherein the integer multiple is determined in advance to be one.
17. A method as claimed in any one of claims 1 to 15, wherein the duration of an update period is determined in dependence upon whether replies to the gaming update for that update period have been received at the server from all the clients to which the gaming update was sent.
18. A method as claimed in claim 17, when dependent on claim 14, wherein the duration of an update period is determined to be the lowest multiple of the base duration that allows replies to the gaming update for that update period to be received at the server from all the clients, at least up to a predetermined maximum multiple.
19. A method as claimed in claim 18, wherein the predetermined maximum multiple is two.
20. A method as claimed in any preceding claim, wherein updating the parameter is performed as part of a recursive optimisation routine.
21. A method as claimed in claim 20, wherein the recursive optimisation routine is a gradient search routine.
22. A method as claimed in claim 20 or 21, comprising performing the optimisation routine at predetermined intervals.
23. A method as claimed in any preceding claim, wherein at least one function relates to more than one client.
24. A method as claimed in any preceding claim, comprising storing the function.
25. A method as claimed in any preceding claim, comprising updating the parameter.
26. A method as claimed in any preceding claim, comprising updating the functions.
27. A method as claimed in any preceding claim, wherein the function is modelled using radial basis functions, and wherein updating the function is performed as part of a radial basis function fitting technique.
28. A method as claimed in any preceding claim, comprising updating the function at predetermined intervals.
29. A method as claimed in any preceding claim, comprising updating the parameter at predetermined intervals.
30. A method as claimed in any preceding claim, wherein the client-server delay is determined in dependence upon the time period from sending a gaming update to receiving a gaming action in reply.
31. A method as claimed in any preceding claim, wherein the network is of a heterogeneous type.
32. A method as claimed in any preceding claim, wherein the method is performed at the server.
33. Apparatus for use in a multiplayer server-based gaming protocol in which each of a plurality of gaming clients is in communication over a network with a gaming server for participating in a common multiplayer network game, the protocol comprising a sequence of update periods in each of at least some of which a gaming update is sent from the server to each of at least some of the clients for updating them on a status of the game, with each client sending a gaming action, if any, to the server in response to receipt of such a gaming update, the gaming action being used at the server to update the status of the game, the network being of a type to produce variations in client-server communication delays, and the apparatus comprising: means for accessing for each client a function representing a distribution of client-server delays relating to that client, means for causing a parameter used to determine a duration of the update periods to be updated so as to tend to improve an evaluation relating to a predetermined measure of game quality, the evaluation being dependent upon the functions and the parameter, and means for causing the functions to be updated based on measurements of client-server delay in the network.
34. A program for controlling an apparatus to perform a method as claimed in any one of claims 1 to 32.
35. A program which, when loaded into an apparatus, causes the apparatus to become an apparatus as claimed in claim 33.
36. A program as claimed in claim 34 or 35, carried on a carrier medium.
37. A program as claimed in claim 36, wherein the carrier medium is a storage medium.
38. A program as claimed in claim 36, wherein the carrier medium is a transmission medium.
39. An apparatus programmed by a program as claimed in any one of claims 34 to
38.
40. A storage medium containing a program as claimed in any one of claims 34 to
37.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2007/051856 WO2008104221A1 (en) | 2007-02-27 | 2007-02-27 | Method and apparatus for use in multiplayer server-based gaming |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2007/051856 WO2008104221A1 (en) | 2007-02-27 | 2007-02-27 | Method and apparatus for use in multiplayer server-based gaming |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2008104221A1 true WO2008104221A1 (en) | 2008-09-04 |
Family
ID=38657216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2007/051856 WO2008104221A1 (en) | 2007-02-27 | 2007-02-27 | Method and apparatus for use in multiplayer server-based gaming |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2008104221A1 (en) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019195167A3 (en) * | 2018-04-02 | 2019-11-21 | Google Llc | Detecting and compensating for display lag in gaming systems |
US10898812B2 (en) | 2018-04-02 | 2021-01-26 | Google Llc | Methods, devices, and systems for interactive cloud gaming |
CN112511256A (en) * | 2020-11-24 | 2021-03-16 | 高小翎 | Robust synchronization method for dynamic delay optimization in online game |
CN113082723A (en) * | 2021-03-24 | 2021-07-09 | 杭州电魂网络科技股份有限公司 | Game server rolling updating method, device, electronic equipment and medium |
US11110348B2 (en) | 2018-04-10 | 2021-09-07 | Google Llc | Memory management in gaming rendering |
US11140207B2 (en) | 2017-12-21 | 2021-10-05 | Google Llc | Network impairment simulation framework for verification of real time interactive media streaming systems |
US11305186B2 (en) | 2016-05-19 | 2022-04-19 | Google Llc | Methods and systems for facilitating participation in a game session |
US11369873B2 (en) | 2018-03-22 | 2022-06-28 | Google Llc | Methods and systems for rendering and encoding content for online interactive gaming sessions |
WO2022163439A1 (en) * | 2021-01-29 | 2022-08-04 | 国立研究開発法人産業技術総合研究所 | Virtual space sharing system, virtual space sharing method, and virtual space sharing program |
US11662051B2 (en) | 2018-11-16 | 2023-05-30 | Google Llc | Shadow tracking of real-time interactive simulations for complex system analysis |
US11684849B2 (en) | 2017-10-10 | 2023-06-27 | Google Llc | Distributed sample-based game profiling with game metadata and metrics and gaming API platform supporting third-party content |
US11872476B2 (en) | 2018-04-02 | 2024-01-16 | Google Llc | Input device for an electronic system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996025989A2 (en) * | 1995-02-24 | 1996-08-29 | Velocity, Inc. | Method and apparatus for minimizing the impact of network delays |
US5820463A (en) * | 1996-02-06 | 1998-10-13 | Bell Atlantic Network Services, Inc. | Method and apparatus for multi-player gaming over a network |
US20060135258A1 (en) * | 2004-12-17 | 2006-06-22 | Nokia Corporation | System, network entity, client and method for facilitating fairness in a multiplayer game |
WO2007011590A2 (en) * | 2005-07-14 | 2007-01-25 | Gemini Mobile Technology, Inc. | Protocol optimization for wireless networks |
-
2007
- 2007-02-27 WO PCT/EP2007/051856 patent/WO2008104221A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996025989A2 (en) * | 1995-02-24 | 1996-08-29 | Velocity, Inc. | Method and apparatus for minimizing the impact of network delays |
US5820463A (en) * | 1996-02-06 | 1998-10-13 | Bell Atlantic Network Services, Inc. | Method and apparatus for multi-player gaming over a network |
US20060135258A1 (en) * | 2004-12-17 | 2006-06-22 | Nokia Corporation | System, network entity, client and method for facilitating fairness in a multiplayer game |
WO2007011590A2 (en) * | 2005-07-14 | 2007-01-25 | Gemini Mobile Technology, Inc. | Protocol optimization for wireless networks |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11305186B2 (en) | 2016-05-19 | 2022-04-19 | Google Llc | Methods and systems for facilitating participation in a game session |
US11684849B2 (en) | 2017-10-10 | 2023-06-27 | Google Llc | Distributed sample-based game profiling with game metadata and metrics and gaming API platform supporting third-party content |
US11140207B2 (en) | 2017-12-21 | 2021-10-05 | Google Llc | Network impairment simulation framework for verification of real time interactive media streaming systems |
US11369873B2 (en) | 2018-03-22 | 2022-06-28 | Google Llc | Methods and systems for rendering and encoding content for online interactive gaming sessions |
US10898812B2 (en) | 2018-04-02 | 2021-01-26 | Google Llc | Methods, devices, and systems for interactive cloud gaming |
US11872476B2 (en) | 2018-04-02 | 2024-01-16 | Google Llc | Input device for an electronic system |
US11077364B2 (en) | 2018-04-02 | 2021-08-03 | Google Llc | Resolution-based scaling of real-time interactive graphics |
WO2019195167A3 (en) * | 2018-04-02 | 2019-11-21 | Google Llc | Detecting and compensating for display lag in gaming systems |
US11110348B2 (en) | 2018-04-10 | 2021-09-07 | Google Llc | Memory management in gaming rendering |
US11662051B2 (en) | 2018-11-16 | 2023-05-30 | Google Llc | Shadow tracking of real-time interactive simulations for complex system analysis |
CN112511256A (en) * | 2020-11-24 | 2021-03-16 | 高小翎 | Robust synchronization method for dynamic delay optimization in online game |
WO2022163439A1 (en) * | 2021-01-29 | 2022-08-04 | 国立研究開発法人産業技術総合研究所 | Virtual space sharing system, virtual space sharing method, and virtual space sharing program |
CN113082723A (en) * | 2021-03-24 | 2021-07-09 | 杭州电魂网络科技股份有限公司 | Game server rolling updating method, device, electronic equipment and medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2008104221A1 (en) | Method and apparatus for use in multiplayer server-based gaming | |
EP1876758B1 (en) | Method for probing the peer-to-peer quality of service (QOS) | |
US9154396B2 (en) | Passive measurement of available link bandwidth | |
CN108429701B (en) | Network acceleration system | |
US9781474B2 (en) | Content playback information estimation apparatus and method and program | |
de Morais et al. | Application of active queue management for real-time adaptive video streaming | |
JP2006518138A (en) | A method for tracking multicast audience size | |
Kua et al. | Adaptive Chunklets and AQM for higher-performance content streaming | |
US11616730B1 (en) | System and method for adapting transmission rate computation by a content transmitter | |
CN112383791B (en) | Media data processing method and device, electronic equipment and storage medium | |
US20230231810A1 (en) | System and method for adapting transmission rate computation by a content transmitter | |
Saldana et al. | Online FPS games: effect of router buffer and multiplexing techniques on subjective quality estimators | |
Villa et al. | Improving fairness for adaptive http video streaming | |
Abdallah et al. | A cross-layer controller for adaptive video streaming over IEEE 802.11 networks | |
Park et al. | Client-side rate adaptation scheme for HTTP adaptive streaming based on playout buffer model | |
Liu et al. | Probabilistic chunk scheduling approach in parallel multiple-server dash | |
Zhang et al. | An online learning based path selection for multipath real‐time video transmission in overlay network | |
Ben Ameur et al. | Performance evaluation of TcpHas: TCP for HTTP adaptive streaming | |
Kenesi et al. | Optimizing multiplayer gaming protocols for heterogeneous network environment | |
Chung | Modified CUBIC Congestion Avoidance for Multi-side Parallel Downloading over Lossy Networks | |
Hiranandani et al. | User throughput-based quality of experience evaluation for in flight video streaming | |
Shende et al. | Cross-layer Network Bandwidth Estimation for Low-latency Live ABR Streaming | |
Park et al. | Queueing theoretic approach to playout buffer model for HTTP Adaptive Streaming | |
Mone et al. | Testbed based analysis of Linux queue disciplines over Internet traffic mix | |
van der Hooft et al. | Clustering‐based quality selection heuristics for HTTP adaptive streaming over cache networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07712345 Country of ref document: EP Kind code of ref document: A1 |
|
DPE1 | Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101) | ||
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 07712345 Country of ref document: EP Kind code of ref document: A1 |