US20060135258A1 - System, network entity, client and method for facilitating fairness in a multiplayer game - Google Patents
System, network entity, client and method for facilitating fairness in a multiplayer game Download PDFInfo
- Publication number
- US20060135258A1 US20060135258A1 US11/015,253 US1525304A US2006135258A1 US 20060135258 A1 US20060135258 A1 US 20060135258A1 US 1525304 A US1525304 A US 1525304A US 2006135258 A1 US2006135258 A1 US 2006135258A1
- Authority
- US
- United States
- Prior art keywords
- clients
- client
- network latency
- game
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
- G07F17/326—Game play aspects of gaming systems
- G07F17/3269—Timing aspects of game play, e.g. blocking/halting the operation of a gaming machine
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
- G07F17/3202—Hardware aspects of a gaming system, e.g. components, construction, architecture thereof
- G07F17/3223—Architectural aspects of a gaming system, e.g. internal configuration, master/slave, wireless communication
Definitions
- the present invention generally relates to systems and methods of operating a multiplayer game and, more particularly, relates to systems and methods of facilitating fairness in a game operated by a plurality of clients experiencing differing network latencies.
- Multiplayer gaming poses an interesting application for wireless networks.
- the so-called “first-person shooter” games are some of the most challenging interactive games to implement in a wireless network.
- These kinds of games which generally involve one or more players taking some form of action against other players in the game, are not usually turn-based.
- game play is affected by latencies in the network in that players with low latency can actually have an advantage over players exhibiting high latency in the network.
- the likelihood of large discrepancies between gamers compounds the issue of different players experiencing different levels of network latencies.
- This discrepancy results from the fact that gamers, particularly in cellular networks, can exhibit a wide variance of latencies that depends on a number of different parameters including, for example, wireless channel conditions, mobile class and system load. For instance, a gamer located near the center of a network cell may experience much higher throughput, and thus lower latency, than a user at the edge of a cell.
- a number of different gaming architectures have been developed with varying degrees of network latency of the gamers operating such architectures.
- three exemplary gaming architectures with varying measures to ensure fairness are described in Martin Mauve et al., A Generic Proxy System for Networked Computer Games, T HE F IRST W ORKSHOP ON N ETWORK AND S YSTEM S UPPORT FOR G AMES 25-28 (2002).
- the centralized client-server architecture all of the gamers communicate with a centralized game server that operates a game and maintains the game state.
- gamers operate game clients on computers that communicate with the game server.
- the computers receive information regarding the game state from the centralized server, and may attempt to effectuate a change of the game state by communicating local actions to the centralized server.
- data packets sent from the gamers' computers to the centralized server may be time stamped to determine an ordering of actions by the respective gamers. Such time-stamping of the data packets, however, often occurs on the server-side of the architecture, and as such, unwittingly serves to facilitate the advantage provided to those gamers with lower network latency in data packets reaching the centralized server.
- a decentralized architecture In another conventional architecture, referred to as a decentralized architecture, the computers of the clients communicate with one another to maintain the game state without a centralized server. Although fairness is easier to achieve in the decentralized architecture, management of the game environment becomes very difficult (maybe even impossible for functions such as authentication and billing). Moreover, bottlenecks often occur for gamers who do not have sufficient resources to handle the processing otherwise executed by a centralized server in the centralized client-server architecture.
- the proxy architecture is similar to the centralized client-server architecture in that a central architecture maintains game state. Unlike the centralized client-server architecture, however, proxy servers may be coupled between the centralized server and one or more computers of the gamers, the proxy servers typically being located close to clusters of remote gamers. The proxy servers, then, can communicate with one another and the central server to provide at least a portion of the functionality of the centralized server.
- the proxy architecture has the advantage of decentralizing game play to ensure fairness, but centralizing necessary functions for game play such as authentication.
- the proxies provide time-stamping functionality to prevent cheating. And while this may ensure fairness between gamers of different proxies, it does not necessarily account for fairness of gamers communicating with the same proxy for the same reason explained above with respect to the centralized client-server architecture.
- embodiments of the present invention provide an improved system, network entity, client and method for facilitating fairness in a multiplayer game.
- data packets to and/or from a game server during play of a multiplayer game may be artificially delayed such that the clients playing the game communicate with the game server, and thus play the game, with the same perceived network latency. More particularly, data packets received from clients across one or more networks may be artificially delayed before being passed to the game server for processing. Additionally or alternatively, data packets received from the game server may be artificially delayed before being passed to respective clients across one or more networks, the data packets being passed to the clients for processing by the clients.
- the data packets may be delayed such that all of the clients playing the game experience substantially the same effective network latency.
- the effective network latency may, for example, substantially equal the highest network latency of the clients.
- the system of embodiments of the present invention may be configured such that only those clients with a network latency below a latency threshold are permitted to play the multiplayer game.
- the game application operated by the game server may also provide multiple occurrences of the game. In such instances, clients with similar network latencies may be matched with one another in each of the occurrences of the multiplayer game.
- a system for facilitating fairness in a multiplayer game.
- the system includes a gaming architecture having a least one network entity, such as a game server, routing server and/or client.
- the network entit(ies) are capable of operating a game application, which is capable of operating a multiplayer game.
- the system also includes a plurality of clients capable of communicating with the gaming architecture across at least one network to play the multiplayer game.
- the clients, including a particular client, are each associated with network latency.
- the system further includes a time-delay module disposed across the networks from the clients and between the clients and the game application, such as in a position integral with, or proximate to, the network entity.
- the time-delay module is capable of receiving a data packet associated with the particular client during play of the multiplayer game, and delaying the data packet for at least a portion of a delay time associated with the particular client. After delaying the data packet, then, the time-delay module is capable of passing the delayed data packet to the game application or to the particular client for processing.
- the delay time is based upon the network latency of the particular client and an effective network latency set based upon the network latencies of the plurality of clients.
- the time-delay module may be capable of receiving a data packet, delaying the data packet and passing the delayed data packet for the plurality of clients such that the plurality of clients play the multiplayer game with a network latency substantially equal to the effective network latency.
- the time-delay module can be further capable of determining the delay time associated with the particular client, where the delay time is determined to substantially equal the difference between the effective network latency and the network latency of the particular client.
- the time-delay module can be further capable of determining the network latency associated with each of the plurality of clients. Then, for example, the time-delay module can set the effective network latency based upon the highest network latency of the plurality of clients. Also, if so desired, the time-delay module can be capable of periodically determining the network latency and setting the effective network latency.
- the system can further include at least one routing server for routing data packets between a game server network entity and the plurality of clients.
- the game server or routing server(s) may be capable of comparing the latencies of the clients against a threshold latency. Then, the game server or routing server(s) may prevent those clients having a network latency above the threshold latency from playing the multiplayer game.
- the game application may be capable of providing a plurality of occurrences of the multiplayer game, each occurrence being capable of being played by a plurality of clients. Thus, each occurrence is associated with the effective network latency of the clients playing the occurrence.
- the game application may be further capable of receiving an additional client into an occurrence of the multiplayer game based upon the effective network latency associated with the occurrence and the network latency of the additional client. Even within each occurrence, however, the time-delay module may be capable of receiving a data packet, delaying the data packet and passing the delayed data packet.
- a network entity, client, method for facilitating fairness in a multiplayer game.
- Embodiments of the present invention therefore provide an improved system, network entity, client and method for facilitating fairness in a multiplayer game.
- game traffic such that the clients playing a game send/receive data packets with substantially the same effective latency
- embodiments of the present invention therefore provide a framework for overcoming the drawback of network latency in communications between clients and game servers in playing a game.
- a threshold latency can be imposed on the clients playing the game, and/or clients can play different occurrences of the game with other clients having similar network latencies.
- the system, network entity, client and method of embodiments of the present invention solve the problems identified by prior techniques and provide additional advantages.
- FIG. 1 is a block diagram of one type of terminal and system that would benefit from embodiments of the present invention
- FIG. 2 is a schematic block diagram of an entity capable of operating as a mobile station, game server, proxy server, personal computer (PC) system and/or game console, in accordance with embodiments of the present invention
- FIG. 3 is a schematic block diagram more particularly illustrating a mobile station in accordance with one embodiment of the present invention.
- FIG. 4 is a schematic block diagram of an exemplar configuration of various network entities of the system of FIG. 1 , in accordance with one embodiment of the present invention
- FIG. 5 is a functional block diagram of a plurality of clients sending data packets to, and receiving data packets from, a game server to play a multiplayer game, in accordance with one embodiment of the present invention.
- FIG. 6 is a flowchart including various steps in a method of facilitating fairness in a multiplayer game, in accordance with one embodiment of the present invention.
- FIG. 1 an illustration of one type of system that would benefit from the present invention is provided.
- the system, method and computer program product of embodiments of the present invention will be primarily described in conjunction with mobile communications applications. It should be understood, however, that the system, method and computer program product of embodiments of the present invention can be utilized in conjunction with a variety of other applications, both in the mobile communications industries and outside of the mobile communications industries. For example, the system, method and computer program product of embodiments of the present invention can be utilized in conjunction with wireline and/or wireless network (e.g., Internet) applications.
- wireline and/or wireless network e.g., Internet
- the system can include one or more mobile stations 10 , each having an antenna 12 for transmitting signals to and for receiving signals from one or more base stations (BS's) 14 , one of each being shown in FIG. 1 .
- the base station is a part of one or more cellular or mobile networks that each includes elements required to operate the network, such as one or more mobile switching centers (MSC) 16 .
- MSC mobile switching centers
- the mobile network may also be referred to as a Base Station/MSC/Interworking function (BMI).
- BMI Base Station/MSC/Interworking function
- the MSC is capable of routing calls, data or the like to and from mobile stations when those mobile stations are making and receiving calls, data or the like.
- the MSC can also provide a connection to landline trunks when mobile stations are involved in a call.
- the MSC 16 can be coupled to a data network, such as a local area network (LAN), a metropolitan area network (MAN), and/or a wide area network (WAN).
- the MSC can be directly coupled to the data network.
- the MSC is coupled to a Gateway (GTW) 18
- GTW is coupled to a WAN, such as the Internet 20 .
- devices such as processing elements (e.g., personal computers, server computers or the like) can be coupled to the mobile station 10 via the Internet.
- the processing elements can include one or more processing elements associated with one or more game servers 22 , routing servers 24 , personal computer (PC) systems 26 , game consoles 28 , or the like, one of each being illustrated in FIG. 1 and described below.
- the processing elements can comprise any of a number of processing devices, systems or the like capable of operating in accordance with embodiments of the present invention.
- the BS 14 can also be coupled to a Serving GPRS (General Packet Radio Service) Support Node (SGSN) 30 .
- SGSN General Packet Radio Service
- the SGSN is typically capable of performing functions similar to the MSC 16 for packet switched services.
- the SGSN like the MSC, can be coupled to a data network, such as the Internet 20 .
- the SGSN can be directly coupled to the data network.
- the SGSN is coupled to a packet-switched core network, such as a GPRS core network 32 .
- the packet-switched core network is then coupled to another GTW, such as a GTW GPRS support node (GGSN) 34 , and the GGSN is coupled to the Internet.
- GTW GTW GPRS support node
- mobile station 10 may be coupled to one or more of any of a number of different networks.
- mobile network(s) can be capable of supporting communication in accordance with any one or more of a number of first-generation (1G), second-generation (2G), 2.5G and/or third-generation (3G) mobile communication protocols or the like.
- one or more mobile stations may be coupled to one or more networks capable of supporting communication in accordance with 2G wireless communication protocols IS-136 (TDMA), GSM, and IS-95 (CDMA).
- one or more of the network(s) can be capable of supporting communication in accordance with 2.5G wireless communication protocols GPRS, Enhanced Data GSM Environment (EDGE), or the like.
- one or more of the network(s) can be capable of supporting communication in accordance with 3 G wireless communication protocols such as Universal Mobile Telephone System (UMTS) network employing Wideband Code Division Multiple Access (WCDMA) radio access technology.
- UMTS Universal Mobile Telephone System
- WCDMA Wideband Code Division Multiple Access
- Some narrow-band AMPS (NAMPS), as well as TACS, network(s) may also benefit from embodiments of the present invention, as should dual or higher mode mobile stations (e.g., digital/analog or TDMA/CDMA/analog phones).
- One or more mobile stations 10 can further be coupled to one or more wireless access points (APs) 36 .
- the AP's can be configured to communicate with the mobile station in accordance with techniques such as, for example, radio frequency (RF), Bluetooth (BT), infrared (IrDA) or any of a number of different wireless networking techniques, including WLAN techniques.
- the APs may be coupled to the Internet 20 .
- the AP's can be directly coupled to the Internet. In one embodiment, however, the APs are indirectly coupled to the Internet via a GTW 18 .
- the mobile stations and the user processors can communicate with one another to thereby carry out various functions of the respective entities, such as to transmit and/or receive data, content or the like.
- the terms “data,” “content,” “information,” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of the present invention.
- one or more such entities may be directly coupled to one another.
- one or more network entities may communicate with one another in accordance with, for example, RF, BT, IrDA or any of a number of different wireline or wireless communication techniques, including LAN and/or WLAN techniques.
- FIG. 2 a block diagram of an entity capable of operating as a mobile station 10 , game server 22 , routing server 24 , personal computer (PC) system 26 and/or game console 28 , is shown in accordance with one embodiment of the present invention.
- one or more entities may support one or more of a mobile station, game server, routing server, personal computer (PC) system and/or game console, logically separated but co-located within the entit(ies).
- a single entity may support a logically separate, but co-located, game server and routing server.
- a single entity may support a logically separate, but co-located personal computer and game console.
- the entity capable of operating as a mobile station 10 , game server 22 , routing server 24 , personal computer (PC) system 26 and/or game console 28 generally includes a processor 38 connected to a memory 40 .
- the memory can comprise volatile and/or non-volatile memory, and typically stores content, data or the like.
- the memory typically stores content transmitted from, and/or received by, the entity.
- the memory typically stores client applications, instructions or the like for the processor to perform steps associated with operation of the entity in accordance with embodiments of the present invention.
- the memory can store client application(s) including a configuration utility, content manager and/or display manager.
- the configuration utility may function to configure a source of content to receive or otherwise provide content.
- the content manager when executed, may function to manage the receipt of content from the source, and/or the use of content received from the source. And the display manager may function to manage presentation of content received from the source.
- the client application(s) each comprise software operated by the respective entities. It should be understood, however, that any one or more of the client applications described herein can alternatively comprise firmware or hardware, without departing from the spirit and scope of the present invention.
- the processor 38 can also be connected to at least one interface or other means for displaying, transmitting and/or receiving data, content or the like.
- the interface(s) can include at least one communication interface 42 or other means for transmitting and/or receiving data, content or the like, as well as at least one user interface that can include a display 44 and/or a user input interface 46 .
- the user input interface can comprise any of a number of devices allowing the entity to receive data from a user, such as a keypad, a touch display, a joystick or other input device.
- FIG. 3 illustrate one type of mobile station 10 , a mobile telephone, which would benefit from embodiments of the present invention.
- the mobile station illustrated and hereinafter described is merely illustrative of one type of mobile station that would benefit from the present invention and, therefore, should not be taken to limit the scope of the present invention. While several embodiments of the mobile station are illustrated and will be hereinafter described for purposes of example, other types of mobile stations, such as portable digital assistants (PDAs), pagers, laptop computers, mobile gaming devices and other types of electronic systems, can readily employ the present invention.
- PDAs portable digital assistants
- the mobile station 10 can include a transmitter 48 , receiver 50 , and controller 52 or other processor that provides signals to and receives signals from the transmitter and receiver, respectively. These signals include signaling information in accordance with the air interface standard of the applicable cellular system, and also user speech and/or user generated data.
- the mobile station can be capable of operating with one or more air interface standards, communication protocols, modulation types, and access types. More particularly, the mobile station can be capable of operating in accordance with any of a number of first generation (1G), second generation (2G), 2.5G and/or third-generation (3G) communication protocols or the like.
- the mobile station may be capable of operating in accordance with 2G wireless communication protocols IS-136 (TDMA), GSM, and IS-95 (CDMA). Also, for example, the mobile station may be capable of operating in accordance with 2.5G wireless communication protocols GPRS, EDGE, or the like. Further, for example, the mobile station may be capable of operating in accordance with 3G wireless communication protocols such as UMTS network employing WCDMA radio access technology.
- TDMA 2G wireless communication protocols
- GSM Global System for Mobile communications
- CDMA Code Division Multiple Access
- 3G wireless communication protocols such as UMTS network employing WCDMA radio access technology.
- Some NAMPS, as well as TACS, mobile stations may also benefit from the teaching of this invention, as should dual or higher mode phones (e.g., digital/analog or TDMA/CDMA/analog phones).
- the controller 52 includes the circuitry required for implementing the audio and logic functions of the mobile station 10 .
- the controller may be comprised of a digital signal processor device, a microprocessor device, and various analog-to-digital converters, digital-to-analog converters, and other support circuits. The control and signal processing functions of the mobile station are allocated between these devices according to their respective capabilities.
- the controller can additionally include an internal voice coder (VC) 52 a , and may include an internal data modem (DM) 52 b . Further, the controller may include the functionally to operate one or more client software programs such as those indicated above, which may be stored in memory (described below).
- the mobile station 10 also comprises a user interface including a conventional earphone or speaker 54 , a ringer 56 , a microphone 58 , a display 60 , and a user input interface, all of which are coupled to the controller 52 .
- the mobile station can include a battery for powering the various circuits that are required to operate the mobile station, as well as optionally providing mechanical vibration as a detectable output.
- the user input interface which allows the mobile station to receive data, can comprise any of a number of devices allowing the mobile station to receive data, such as a keypad 52 , a touch display (not shown), a joystick (not shown) or other input device.
- the keypad includes the conventional numeric (0-9) and related keys (#, *), and other keys used for operating the mobile station.
- the mobile station 10 can also include one or more means for sharing and/or obtaining data.
- the mobile station can include a short-range radio frequency (RF) transceiver or interrogator 64 so that data can be shared with and/or obtained from electronic devices in accordance with RF techniques.
- the mobile station can additionally, or alternatively, include other short-range transceivers, such as, for example an infrared (IR) transceiver 66 , and/or a Bluetooth (BT) transceiver 68 operating using Bluetooth brand wireless technology developed by the Bluetooth Special Interest Group.
- IR infrared
- BT Bluetooth
- the mobile station can therefore additionally or alternatively be capable of transmitting data to and/or receiving data from electronic devices in accordance with such techniques.
- the mobile station can additionally or alternatively be capable of transmitting and/or receiving data from electronic devices according to a number of different wireless networking techniques, including WLAN techniques such as IEEE 802.11 techniques or the like.
- the mobile station 10 can further include memory, such as a subscriber identity module (SIM) 70 , a removable user identity module (R-UIM) or the like, which typically stores information elements related to a mobile subscriber.
- SIM subscriber identity module
- R-UIM removable user identity module
- the mobile station can include other removable and/or fixed memory.
- volatile memory 72 such as volatile Random Access Memory (RAM) including a cache area for the temporary storage of data.
- RAM volatile Random Access Memory
- the mobile station can also include other non-volatile memory 74 , which can be embedded and/or may be removable.
- the non-volatile memory can additionally or alternatively comprise an EEPROM, flash memory or the like.
- the memories can store any of a number of software applications, instructions, pieces of information, and data, used by the mobile station to implement the functions of the mobile station.
- a number of the entities of the system of FIG. 1 can be configured in any of a number of different architectures to perform any of a number of functions, such as to manage a multiplayer game.
- the entities of the system of FIG. 1 can be configured to manage a multiplayer game in a centralized client-server architecture, decentralized architecture and/or proxy architecture, each of which are explained above in the background section.
- the entities of the system of FIG. 1 can be configured in an architecture given in the Scalable Network Application Package (SNAP) (formerly Sega Network Application Package) provided by Nokia Corporation for applications such as in the context of multiplayer gaming.
- SNAP Scalable Network Application Package
- one or more mobile stations 10 , PC systems 26 and/or game consoles 28 may operate as clients 76 in a gaming architecture that also includes one or more game servers 22 and/or routing servers 24 .
- the game servers operate games and maintain the state of those games.
- the routing servers and/or one or more of the clients themselves may alternatively operate portions, or all, of the games and maintain the state of those games.
- games can be operated by one or more network entities, including game servers, routing servers and/or client(s), the following description may refer to a game server as operating the games for purposes of illustration.
- the clients operate game applications that communicate with those network entit(ies) to continuously change the game state of the games operated and maintained by the network entit(ies) to thereby play those games.
- the clients 76 are operatively coupled to routing servers 24 which, in turn, are coupled to the game servers 22 .
- the routing servers route data packets between one or more clients 76 and the game servers 22 , and/or other clients, to facilitate the operation of each entity in the architecture.
- the routing servers can be coupled between groups of clients and one or more game servers, directly or indirectly via one or more other routing servers.
- one or more routing servers can also be coupled to other routing servers such that the routing servers can also be coupled between one or more clients and one or more groups of other clients, such as groups of clients coupled to other routing servers.
- the entities (i.e., clients 76 , game servers 22 and routing servers 24 ) of the illustrated architecture can communicate in any of a number of different manners.
- the entities communicate in accordance with the UDP (Universal Datagram Protocol) transport protocol, or in accordance with rUDP (reliable UDP), a proprietary protocol that operates above UDP.
- UDP Universal Datagram Protocol
- rUDP reliable UDP
- a feature in such architectures that most directly impacts fairness is the transport protocol (e.g., rUDP/UDP) by which the entities of the architecture communicate with one another.
- rUDP provides for a means of guaranteed delivery of packets.
- rUDP allows for in-sequence delivery of packets generated from a client or game server.
- transport protocols such as rUDP do not provide a means of ordering packets as delivered from different clients. That is, transport protocols utilized by entities of architectures such as that illustrated in FIG. 4 generally do not include in-built mechanisms to ensure fairness.
- the bandwidth management mechanism of such architectures allows for throttling the throughput generated by a client or game server based upon a fixed parameter. Effective latency of network communications between entities of these architectures, however, is not only variable from client to client but also variable over time for any individual client.
- Embodiments of the present invention therefore provide a framework for overcoming the drawback of network latency in communications to and/or from clients 76 to one or more game servers 22 such that the client(s) 76 are capable of playing a game with the same perceived network latency, that being based upon the greatest network latency experienced by the client(s).
- FIGS. 5 and 6 illustrate functional block diagram and method, respectively, facilitating fairness in a game.
- a plurality of clients (three being shown as clients 76 a , 76 b and 76 c ) send data packets to, and receive data packets from, a game server to play a multiplayer game.
- the game server is capable of operating a game application 78 for operating the game and maintaining the state of that game based at least in part on data packets received from the clients.
- the game server 22 is capable of operating a time-delay module 80 , such as a time-delay application programming interface (API), for delaying data packets to the game server from one or more of the clients, and/or from the game server to one or more of the clients. More particularly, the time-delay module is capable of delaying data packets to the game server from one or more of the clients 76 , and/or delaying data packets to one or more of the clients from the game server. The time-delay module is capable of delaying the data packets based upon network latency experienced by the respective clients 76 and an effective network latency, which is set based upon the network latencies experienced by the plurality of the clients playing the game.
- a time-delay module 80 such as a time-delay application programming interface (API)
- API application programming interface
- the time-delay module is capable of delaying data packets to the game server from one or more of the clients 76 , and/or delaying data packets to one or more of the clients from
- the game server 22 operates the time-delay module 80 .
- one or more routing servers 24 and/or other network entities can additionally or alternatively operate time-delay modules without departing from the spirit and scope of the present invention.
- data packets to and/or from the game server may be delayed from any of a number of different network entities between the clients and the game application operated by the game server.
- the time-delay module may comprise software operated by a network entity, the time-delay module may alternatively comprise firmware or hardware, without departing from the spirit and scope of the present invention.
- a method of facilitating fairness in a multiplayer game includes determining, at the time-delay module 80 , a network latency associated with each of a plurality of clients 76 playing a game.
- the network latency of a client can be determined or otherwise represented in any of a number of different manners including, for example, as a round trip time (RTT).
- RTT round trip time
- the RTT of a client is typically a measure of the time required for a data packet to travel from the client to the time-delay module, and back again to the respective client.
- determining a network latency associated with each of the clients may more particularly comprise determining a RTT associated with each of the clients.
- the RTT's can be determined in any of a number of different manners.
- the RTT associated with each client may be determined in a number of different manners
- the RTT can be determined by sending a data packet (e.g., game traffic packet, control packet, etc.) to the client, and determining the amount of time required to receive an acknowledgement (ACK) packet back from the client.
- a data packet e.g., game traffic packet, control packet, etc.
- ACK acknowledgement
- the time-delay module 80 can thereafter set an effective RTT based upon the RTT's of the clients, as shown in block 86 .
- the time-delay module 80 receives data packets from one or more of the clients 76 , the data packets being intended for the game server 24 , or more particularly the game application 78 operated by the game server, as shown in block 88 .
- the time-delay module may receive data packets from the game application, where the data packets are intended for one or more of the clients.
- the time-delay module can delay the data packet for a delay time (i.e., delay n) associated with the data packet, or more particularly associated with the client sending the data packet, as shown in block 90 .
- the time-delay module can delay data packets to and/or from a client for a delay time such that the respective client experiences a RTT substantially equal to the effective RTT (i.e., RTT n ⁇ effective RTT).
- the delay time for a data packet can be determined to substantially equal the difference of the effective RTT and the RTT of the client sending the data packet.
- various quantitative measures may be described as being equal or substantially equal. It should be understood that in instances where values are described as being equal, such values may be substantially equal. Thus, in actual implementation, various values may differ somewhat (e.g., 1.0-5.0%) depending on a number of different parameters, such as variances in network latencies over time, measurements of the network latencies, and the like.
- the effective RTT is identified as highest RTT
- the client e.g., client 2 76 b
- the client having the lowest RTT will have the highest delay.
- the time-delay module 80 can be configured apply the delay time to data packets on the uplink (i.e., from the client 76 to the game application 78 ) and/or on the downlink (i.e., from the game application to the client) in any of a number of different manners to effectuate a RTT at the client substantially equal to the effective RTT.
- the time-delay module can delay data packets from the client to the game application for the entire delay time associated with the respective client.
- the time-delay module when the time-delay module is configured to apply the delay time to data packets on the uplink and the downlink, the time-delay module can delay data packets from the client (i.e., client n) to the game application by a first time delay portion (e.g., 1 ⁇ 2 delay n), and delay data packets from the game application to the client by a second delay portion (e.g., 1 ⁇ 2 delay n). In such instances, the first and second delay portions sum to substantially the delay time (i.e., delay n) associated with the respective client.
- the time-delay module when the time-delay module is configured to apply the delay time to data packets on the downlink, the time-delay module can delay data packets from the game application to the client for the entire delay time associated with the respective client.
- the time-delay module 80 can pass the data packets to the game server 22 , or more particularly the game application 78 operated by the game server, or to the respective client 76 , for processing, as shown in block 92 . More particularly, for example, after delaying data packets received from a client for the game application (if configured to at least partially delay packets on the uplink), the time-delay module can pass the data packets to the game application for processing. Similarly, for example, after delaying data packets received from the game application for a client (if configured to at least partially delay packets on the downlink), the time-delay module can pass the data packets to the client for processing.
- a data packet from a client can comprise a request to change the state of the game.
- the game application can receive the data packet from the time-delay module 80 , and process the request to effectuate a change in the state of the game operated and maintained by the game application.
- the game application can return to the requesting client and/or other clients, a return data packet notifying the client(s) of the change in the state of the game, the return data packet being sent to the client(s) via the time-delay module.
- the time required for the client to send the request a change of the state of the game, and receive the return data packet substantially equals the RTT of the client.
- the time required for the client to send the request and receive the acknowledgement substantially equals the effective RTT, irrespective of the particular client.
- the time-delay module 80 can receive a number of different data packets from a number of different clients 76 playing the game operated and maintained by the game application 78 .
- the time-delay module can delay the data packet for at least a portion of the delay time associated with the client sending or receiving the data packet (see block 90 ).
- the time-delay module passes the delayed data packet to the receiving entity (i.e., game server 22 or client) for processing by the respective entity (see block 92 ).
- the effective RTT can be periodically set or otherwise updated by the time-delay module 80 .
- the time-delay module can determine or otherwise update the RTT's of one or more of the clients (see block 84 ).
- the time-delay module can be configured to determine the RTT's of a client upon each instance of the client and the game application 78 operated by the game server 22 exchanging reliable transport packets, such as to transfer game states, variables, chat messages or the like during game play.
- the time-delay module can then reset or otherwise update the effective RTT based upon the newly determined RTT's of the clients. Further, as shown in FIG. 5 , the effective RTT can be periodically sent to the game application. The game application, if so configured, can then modify play of the game based upon the effective RTT and/or notification indicating that all of the clients are communicating with the game server with approximately the same effective RTT.
- the time-delay module 78 effectively slows down game traffic to that of the slowest client.
- the RTT's of the clients may be compared against a threshold RTT. Those clients having an RTT above the threshold may then be prohibited from participating or otherwise playing in the game, such as by the game server 22 or the routing server 24 .
- the effective RTT can thereafter be set at or below the threshold, thereby facilitating faster game play among the clients permitted to play the game.
- the game server 22 may be configured to provide multiple concurrently operating occurrences of the game, each being capable of being played by a plurality of clients.
- the occurrences of the game can then be organized based upon the network latencies of the plurality of clients. More particularly, each occurrence of the game may be played by clients having similar RTT's such that none of the clients playing a particular instance of the game experience a significant decrease in speed of game activity by the delay of data packets to/from the game application.
- the game server or routing server 24 may be configured to provide a virtual lobby listing the occurrences of the game, the listing also indicating the relative speed of the clients playing the respective occurrences, such as by indicating effective RTT's of the clients playing each instance.
- An additional client desiring to play the game may enter the virtual lobby and select an occurrence of the game to play based upon the relative speed of the clients playing the occurrence of the game.
- the client desiring to play the game may receive, such as from the entity providing the virtual lobby, an indication of the RTT of the client such that the client can compare its RTT with the effective RTT's of the various occurrences to find an occurrence with an effective RTT more closely matching that of the client. The client may then select an occurrence to thereafter be received into the occurrence of the game.
- all or a portion of the system of the present invention such all or portions of the game server 22 , routing server 24 and/or client 76 (e.g., mobile station 10 , PC system 26 , game console 28 , etc.), generally operate under control of a computer program product (e.g., game application 78 , time-delay module 80 , etc.).
- the computer program product for performing the methods of embodiments of the present invention includes a computer-readable storage medium, such as the non-volatile storage medium, and computer-readable program code portions, such as a series of computer instructions, embodied in the computer-readable storage medium.
- FIG. 6 is a flowchart of methods, systems and program products according to the invention. It will be understood that each block or step of the flowchart, and combinations of blocks in the flowchart, can be implemented by computer program instructions. These computer program instructions may be loaded onto a computer or other programmable apparatus to produce a machine, such that the instructions which execute on the computer or other programmable apparatus create means for implementing the functions specified in the flowchart block(s) or step(s). These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart block(s) or step(s).
- the computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block(s) or step(s).
- blocks or steps of the flowchart support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block or step of the flowchart, and combinations of blocks or steps in the flowchart, can be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
A system for facilitating fairness in a multiplayer game includes a network entity (e.g., game server) capable of operating a game application that can operate a multiplayer game. A plurality of clients is associated with a network latency, and can communicate with the network entity across at least one network. The system further includes a time-delay module disposed between the clients and the game application. The time-delay module can receive a data packet associated with a particular client during play of the multiplayer game, and delaying the data packet for at least a portion of delay time associated with the particular client before passing the delayed packet to the game application or the particular client for processing. In this regard, the delay time is based upon the network latency of the first client and an effective network latency set based upon the network latencies of the plurality of clients.
Description
- The present invention generally relates to systems and methods of operating a multiplayer game and, more particularly, relates to systems and methods of facilitating fairness in a game operated by a plurality of clients experiencing differing network latencies.
- Multiplayer gaming poses an interesting application for wireless networks. Particularly, the so-called “first-person shooter” games are some of the most challenging interactive games to implement in a wireless network. These kinds of games, which generally involve one or more players taking some form of action against other players in the game, are not usually turn-based. As a result, game play is affected by latencies in the network in that players with low latency can actually have an advantage over players exhibiting high latency in the network.
- In wireless networks, the likelihood of large discrepancies between gamers compounds the issue of different players experiencing different levels of network latencies. This discrepancy results from the fact that gamers, particularly in cellular networks, can exhibit a wide variance of latencies that depends on a number of different parameters including, for example, wireless channel conditions, mobile class and system load. For instance, a gamer located near the center of a network cell may experience much higher throughput, and thus lower latency, than a user at the edge of a cell.
- Thus, the concept of “fairness” enters into the picture in multiplayer games. Intuitively, one can arrive at some simple examples to illustrate the problem that occurs with two gamers exhibiting dramatically different latencies. Assume a first gamer and a second gamer are playing a shootout game, where the second gamer is experiencing far less network latencies than the first gamer. During the course of play, consider that the first gamer fires a shot at the second gamer at time t1, and the second gamer fires a shot at the first gamer at time t2(t2>t1). But because the second gamer is experiencing far less latency than the first gamer, the shot fired by the second gamer could be processed before the shot fired by the first gamer, although the shot from the second gamer shot actually occurred after the shot from the first gamer.
- A number of different gaming architectures have been developed with varying degrees of network latency of the gamers operating such architectures. In this regard, three exemplary gaming architectures with varying measures to ensure fairness are described in Martin Mauve et al., A Generic Proxy System for Networked Computer Games, T
HE FIRST WORKSHOP ON NETWORK AND SYSTEM SUPPORT FOR GAMES 25-28 (2002). In the first architecture, referred to as the centralized client-server architecture, all of the gamers communicate with a centralized game server that operates a game and maintains the game state. In this architecture, gamers operate game clients on computers that communicate with the game server. The computers, and thus the game clients and gamers, receive information regarding the game state from the centralized server, and may attempt to effectuate a change of the game state by communicating local actions to the centralized server. To prevent cheating in the centralized client-server architecture, data packets sent from the gamers' computers to the centralized server may be time stamped to determine an ordering of actions by the respective gamers. Such time-stamping of the data packets, however, often occurs on the server-side of the architecture, and as such, unwittingly serves to facilitate the advantage provided to those gamers with lower network latency in data packets reaching the centralized server. - In another conventional architecture, referred to as a decentralized architecture, the computers of the clients communicate with one another to maintain the game state without a centralized server. Although fairness is easier to achieve in the decentralized architecture, management of the game environment becomes very difficult (maybe even impossible for functions such as authentication and billing). Moreover, bottlenecks often occur for gamers who do not have sufficient resources to handle the processing otherwise executed by a centralized server in the centralized client-server architecture.
- The third conventional architecture described in the Mauve paper is referred to as the proxy architecture. The proxy architecture is similar to the centralized client-server architecture in that a central architecture maintains game state. Unlike the centralized client-server architecture, however, proxy servers may be coupled between the centralized server and one or more computers of the gamers, the proxy servers typically being located close to clusters of remote gamers. The proxy servers, then, can communicate with one another and the central server to provide at least a portion of the functionality of the centralized server. The proxy architecture has the advantage of decentralizing game play to ensure fairness, but centralizing necessary functions for game play such as authentication. In the proxy architecture, the proxies provide time-stamping functionality to prevent cheating. And while this may ensure fairness between gamers of different proxies, it does not necessarily account for fairness of gamers communicating with the same proxy for the same reason explained above with respect to the centralized client-server architecture.
- In light of the foregoing background, embodiments of the present invention provide an improved system, network entity, client and method for facilitating fairness in a multiplayer game. In accordance with embodiments of the present invention, data packets to and/or from a game server during play of a multiplayer game may be artificially delayed such that the clients playing the game communicate with the game server, and thus play the game, with the same perceived network latency. More particularly, data packets received from clients across one or more networks may be artificially delayed before being passed to the game server for processing. Additionally or alternatively, data packets received from the game server may be artificially delayed before being passed to respective clients across one or more networks, the data packets being passed to the clients for processing by the clients. The data packets may be delayed such that all of the clients playing the game experience substantially the same effective network latency. Further, the effective network latency may, for example, substantially equal the highest network latency of the clients. To avoid a prohibitively undesirable slowdown in game play that may be experienced due to prohibitively long network latencies associated with a few clients, the system of embodiments of the present invention may be configured such that only those clients with a network latency below a latency threshold are permitted to play the multiplayer game. However, to permit slower clients to play the game, the game application operated by the game server may also provide multiple occurrences of the game. In such instances, clients with similar network latencies may be matched with one another in each of the occurrences of the multiplayer game.
- According to one aspect of the present invention, a system is provided for facilitating fairness in a multiplayer game. The system includes a gaming architecture having a least one network entity, such as a game server, routing server and/or client. The network entit(ies) are capable of operating a game application, which is capable of operating a multiplayer game. The system also includes a plurality of clients capable of communicating with the gaming architecture across at least one network to play the multiplayer game. The clients, including a particular client, are each associated with network latency. Thus, the system further includes a time-delay module disposed across the networks from the clients and between the clients and the game application, such as in a position integral with, or proximate to, the network entity. The time-delay module is capable of receiving a data packet associated with the particular client during play of the multiplayer game, and delaying the data packet for at least a portion of a delay time associated with the particular client. After delaying the data packet, then, the time-delay module is capable of passing the delayed data packet to the game application or to the particular client for processing. In this regard, the delay time is based upon the network latency of the particular client and an effective network latency set based upon the network latencies of the plurality of clients. During play of the game, then, the time-delay module may be capable of receiving a data packet, delaying the data packet and passing the delayed data packet for the plurality of clients such that the plurality of clients play the multiplayer game with a network latency substantially equal to the effective network latency.
- More particularly, for example, the time-delay module can be further capable of determining the delay time associated with the particular client, where the delay time is determined to substantially equal the difference between the effective network latency and the network latency of the particular client. In this regard, the time-delay module can be further capable of determining the network latency associated with each of the plurality of clients. Then, for example, the time-delay module can set the effective network latency based upon the highest network latency of the plurality of clients. Also, if so desired, the time-delay module can be capable of periodically determining the network latency and setting the effective network latency.
- The system can further include at least one routing server for routing data packets between a game server network entity and the plurality of clients. In such instances, the game server or routing server(s) may be capable of comparing the latencies of the clients against a threshold latency. Then, the game server or routing server(s) may prevent those clients having a network latency above the threshold latency from playing the multiplayer game. To also allow clients with higher network latencies to play the game, the game application may be capable of providing a plurality of occurrences of the multiplayer game, each occurrence being capable of being played by a plurality of clients. Thus, each occurrence is associated with the effective network latency of the clients playing the occurrence. The game application, then, may be further capable of receiving an additional client into an occurrence of the multiplayer game based upon the effective network latency associated with the occurrence and the network latency of the additional client. Even within each occurrence, however, the time-delay module may be capable of receiving a data packet, delaying the data packet and passing the delayed data packet.
- According to other aspects of the present invention, a network entity, client, method are provided for facilitating fairness in a multiplayer game. Embodiments of the present invention therefore provide an improved system, network entity, client and method for facilitating fairness in a multiplayer game. By configuring game traffic such that the clients playing a game send/receive data packets with substantially the same effective latency, embodiments of the present invention therefore provide a framework for overcoming the drawback of network latency in communications between clients and game servers in playing a game. And to avoid decreasing the speed of game traffic to a prohibitively undesirable level, a threshold latency can be imposed on the clients playing the game, and/or clients can play different occurrences of the game with other clients having similar network latencies. As such, the system, network entity, client and method of embodiments of the present invention solve the problems identified by prior techniques and provide additional advantages.
- Having thus described the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
-
FIG. 1 is a block diagram of one type of terminal and system that would benefit from embodiments of the present invention; -
FIG. 2 is a schematic block diagram of an entity capable of operating as a mobile station, game server, proxy server, personal computer (PC) system and/or game console, in accordance with embodiments of the present invention; -
FIG. 3 is a schematic block diagram more particularly illustrating a mobile station in accordance with one embodiment of the present invention; -
FIG. 4 is a schematic block diagram of an exemplar configuration of various network entities of the system ofFIG. 1 , in accordance with one embodiment of the present invention; -
FIG. 5 is a functional block diagram of a plurality of clients sending data packets to, and receiving data packets from, a game server to play a multiplayer game, in accordance with one embodiment of the present invention; and -
FIG. 6 is a flowchart including various steps in a method of facilitating fairness in a multiplayer game, in accordance with one embodiment of the present invention. - The present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout.
- Referring to
FIG. 1 , an illustration of one type of system that would benefit from the present invention is provided. The system, method and computer program product of embodiments of the present invention will be primarily described in conjunction with mobile communications applications. It should be understood, however, that the system, method and computer program product of embodiments of the present invention can be utilized in conjunction with a variety of other applications, both in the mobile communications industries and outside of the mobile communications industries. For example, the system, method and computer program product of embodiments of the present invention can be utilized in conjunction with wireline and/or wireless network (e.g., Internet) applications. - The system can include one or more
mobile stations 10, each having anantenna 12 for transmitting signals to and for receiving signals from one or more base stations (BS's) 14, one of each being shown inFIG. 1 . The base station is a part of one or more cellular or mobile networks that each includes elements required to operate the network, such as one or more mobile switching centers (MSC) 16. As well known to those skilled in the art, the mobile network may also be referred to as a Base Station/MSC/Interworking function (BMI). In operation, the MSC is capable of routing calls, data or the like to and from mobile stations when those mobile stations are making and receiving calls, data or the like. The MSC can also provide a connection to landline trunks when mobile stations are involved in a call. - The
MSC 16 can be coupled to a data network, such as a local area network (LAN), a metropolitan area network (MAN), and/or a wide area network (WAN). The MSC can be directly coupled to the data network. In one typical embodiment, however, the MSC is coupled to a Gateway (GTW) 18, and the GTW is coupled to a WAN, such as theInternet 20. In turn, devices such as processing elements (e.g., personal computers, server computers or the like) can be coupled to themobile station 10 via the Internet. For example, as explained below, the processing elements can include one or more processing elements associated with one ormore game servers 22,routing servers 24, personal computer (PC)systems 26, game consoles 28, or the like, one of each being illustrated inFIG. 1 and described below. As will be appreciated, the processing elements can comprise any of a number of processing devices, systems or the like capable of operating in accordance with embodiments of the present invention. - The
BS 14 can also be coupled to a Serving GPRS (General Packet Radio Service) Support Node (SGSN) 30. As known to those skilled in the art, the SGSN is typically capable of performing functions similar to theMSC 16 for packet switched services. The SGSN, like the MSC, can be coupled to a data network, such as theInternet 20. The SGSN can be directly coupled to the data network. In a more typical embodiment, however, the SGSN is coupled to a packet-switched core network, such as aGPRS core network 32. The packet-switched core network is then coupled to another GTW, such as a GTW GPRS support node (GGSN) 34, and the GGSN is coupled to the Internet. - Although not every element of every possible network is shown and described herein, it should be appreciated that the
mobile station 10 may be coupled to one or more of any of a number of different networks. In this regard, mobile network(s) can be capable of supporting communication in accordance with any one or more of a number of first-generation (1G), second-generation (2G), 2.5G and/or third-generation (3G) mobile communication protocols or the like. More particularly, one or more mobile stations may be coupled to one or more networks capable of supporting communication in accordance with 2G wireless communication protocols IS-136 (TDMA), GSM, and IS-95 (CDMA). Also, for example, one or more of the network(s) can be capable of supporting communication in accordance with 2.5G wireless communication protocols GPRS, Enhanced Data GSM Environment (EDGE), or the like. In addition, for example, one or more of the network(s) can be capable of supporting communication in accordance with 3G wireless communication protocols such as Universal Mobile Telephone System (UMTS) network employing Wideband Code Division Multiple Access (WCDMA) radio access technology. Some narrow-band AMPS (NAMPS), as well as TACS, network(s) may also benefit from embodiments of the present invention, as should dual or higher mode mobile stations (e.g., digital/analog or TDMA/CDMA/analog phones). - One or more mobile stations 10 (as well as one or more processing elements, although not shown as such in
FIG. 1 ) can further be coupled to one or more wireless access points (APs) 36. The AP's can be configured to communicate with the mobile station in accordance with techniques such as, for example, radio frequency (RF), Bluetooth (BT), infrared (IrDA) or any of a number of different wireless networking techniques, including WLAN techniques. The APs may be coupled to theInternet 20. Like with theMSC 14, the AP's can be directly coupled to the Internet. In one embodiment, however, the APs are indirectly coupled to the Internet via aGTW 18. As will be appreciated, by directly or indirectly connecting the mobile stations and the user processors (e.g.,game servers 22,routing servers 24, personal computer (PC)systems 26, game consoles 28) and/or any of a number of other devices to the Internet, whether via the AP's or the mobile network(s), the mobile stations and user processors can communicate with one another to thereby carry out various functions of the respective entities, such as to transmit and/or receive data, content or the like. As used herein, the terms “data,” “content,” “information,” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of the present invention. - Although not shown in
FIG. 1 , in addition to or in lieu of coupling themobile stations 10 togame servers 22,routing servers 24, personal computer (PC)systems 26 and/orgame consoles 28 across theInternet 20, one or more such entities may be directly coupled to one another. As such, one or more network entities may communicate with one another in accordance with, for example, RF, BT, IrDA or any of a number of different wireline or wireless communication techniques, including LAN and/or WLAN techniques. - Referring now to
FIG. 2 , a block diagram of an entity capable of operating as amobile station 10,game server 22, routingserver 24, personal computer (PC)system 26 and/orgame console 28, is shown in accordance with one embodiment of the present invention. Although shown as separate entities, in some embodiments, one or more entities may support one or more of a mobile station, game server, routing server, personal computer (PC) system and/or game console, logically separated but co-located within the entit(ies). For example, a single entity may support a logically separate, but co-located, game server and routing server. Also, for example, a single entity may support a logically separate, but co-located personal computer and game console. - As shown, the entity capable of operating as a
mobile station 10,game server 22, routingserver 24, personal computer (PC)system 26 and/orgame console 28 generally includes aprocessor 38 connected to amemory 40. The memory can comprise volatile and/or non-volatile memory, and typically stores content, data or the like. For example, the memory typically stores content transmitted from, and/or received by, the entity. Also for example, the memory typically stores client applications, instructions or the like for the processor to perform steps associated with operation of the entity in accordance with embodiments of the present invention. As explained below, for example, the memory can store client application(s) including a configuration utility, content manager and/or display manager. In this regard, when executed, the configuration utility may function to configure a source of content to receive or otherwise provide content. The content manager, when executed, may function to manage the receipt of content from the source, and/or the use of content received from the source. And the display manager may function to manage presentation of content received from the source. As described herein, the client application(s) each comprise software operated by the respective entities. It should be understood, however, that any one or more of the client applications described herein can alternatively comprise firmware or hardware, without departing from the spirit and scope of the present invention. - In addition to the
memory 40, theprocessor 38 can also be connected to at least one interface or other means for displaying, transmitting and/or receiving data, content or the like. In this regard, the interface(s) can include at least onecommunication interface 42 or other means for transmitting and/or receiving data, content or the like, as well as at least one user interface that can include adisplay 44 and/or auser input interface 46. The user input interface, in turn, can comprise any of a number of devices allowing the entity to receive data from a user, such as a keypad, a touch display, a joystick or other input device. - Reference is now made to
FIG. 3 , which illustrate one type ofmobile station 10, a mobile telephone, which would benefit from embodiments of the present invention. It should be understood, however, that the mobile station illustrated and hereinafter described is merely illustrative of one type of mobile station that would benefit from the present invention and, therefore, should not be taken to limit the scope of the present invention. While several embodiments of the mobile station are illustrated and will be hereinafter described for purposes of example, other types of mobile stations, such as portable digital assistants (PDAs), pagers, laptop computers, mobile gaming devices and other types of electronic systems, can readily employ the present invention. - As shown, in addition to an
antenna 14, themobile station 10 can include atransmitter 48,receiver 50, andcontroller 52 or other processor that provides signals to and receives signals from the transmitter and receiver, respectively. These signals include signaling information in accordance with the air interface standard of the applicable cellular system, and also user speech and/or user generated data. In this regard, the mobile station can be capable of operating with one or more air interface standards, communication protocols, modulation types, and access types. More particularly, the mobile station can be capable of operating in accordance with any of a number of first generation (1G), second generation (2G), 2.5G and/or third-generation (3G) communication protocols or the like. For example, the mobile station may be capable of operating in accordance with 2G wireless communication protocols IS-136 (TDMA), GSM, and IS-95 (CDMA). Also, for example, the mobile station may be capable of operating in accordance with 2.5G wireless communication protocols GPRS, EDGE, or the like. Further, for example, the mobile station may be capable of operating in accordance with 3G wireless communication protocols such as UMTS network employing WCDMA radio access technology. Some NAMPS, as well as TACS, mobile stations may also benefit from the teaching of this invention, as should dual or higher mode phones (e.g., digital/analog or TDMA/CDMA/analog phones). - It is understood that the
controller 52 includes the circuitry required for implementing the audio and logic functions of themobile station 10. For example, the controller may be comprised of a digital signal processor device, a microprocessor device, and various analog-to-digital converters, digital-to-analog converters, and other support circuits. The control and signal processing functions of the mobile station are allocated between these devices according to their respective capabilities. The controller can additionally include an internal voice coder (VC) 52 a, and may include an internal data modem (DM) 52 b. Further, the controller may include the functionally to operate one or more client software programs such as those indicated above, which may be stored in memory (described below). - The
mobile station 10 also comprises a user interface including a conventional earphone orspeaker 54, aringer 56, amicrophone 58, adisplay 60, and a user input interface, all of which are coupled to thecontroller 52. Although not shown, the mobile station can include a battery for powering the various circuits that are required to operate the mobile station, as well as optionally providing mechanical vibration as a detectable output. The user input interface, which allows the mobile station to receive data, can comprise any of a number of devices allowing the mobile station to receive data, such as akeypad 52, a touch display (not shown), a joystick (not shown) or other input device. In embodiments including a keypad, the keypad includes the conventional numeric (0-9) and related keys (#, *), and other keys used for operating the mobile station. - The
mobile station 10 can also include one or more means for sharing and/or obtaining data. For example, the mobile station can include a short-range radio frequency (RF) transceiver orinterrogator 64 so that data can be shared with and/or obtained from electronic devices in accordance with RF techniques. The mobile station can additionally, or alternatively, include other short-range transceivers, such as, for example an infrared (IR)transceiver 66, and/or a Bluetooth (BT)transceiver 68 operating using Bluetooth brand wireless technology developed by the Bluetooth Special Interest Group. The mobile station can therefore additionally or alternatively be capable of transmitting data to and/or receiving data from electronic devices in accordance with such techniques. Although not shown, the mobile station can additionally or alternatively be capable of transmitting and/or receiving data from electronic devices according to a number of different wireless networking techniques, including WLAN techniques such as IEEE 802.11 techniques or the like. - The
mobile station 10 can further include memory, such as a subscriber identity module (SIM) 70, a removable user identity module (R-UIM) or the like, which typically stores information elements related to a mobile subscriber. In addition to the SIM, the mobile station can include other removable and/or fixed memory. In this regard, the mobile station can includevolatile memory 72, such as volatile Random Access Memory (RAM) including a cache area for the temporary storage of data. The mobile station can also include othernon-volatile memory 74, which can be embedded and/or may be removable. The non-volatile memory can additionally or alternatively comprise an EEPROM, flash memory or the like. The memories can store any of a number of software applications, instructions, pieces of information, and data, used by the mobile station to implement the functions of the mobile station. - As will be appreciated, a number of the entities of the system of
FIG. 1 can be configured in any of a number of different architectures to perform any of a number of functions, such as to manage a multiplayer game. For example, the entities of the system ofFIG. 1 can be configured to manage a multiplayer game in a centralized client-server architecture, decentralized architecture and/or proxy architecture, each of which are explained above in the background section. Additionally or alternatively, for example, the entities of the system ofFIG. 1 can be configured in an architecture given in the Scalable Network Application Package (SNAP) (formerly Sega Network Application Package) provided by Nokia Corporation for applications such as in the context of multiplayer gaming. - More particularly, as shown in
FIG. 4 , for example, one or moremobile stations 10,PC systems 26 and/orgame consoles 28 may operate asclients 76 in a gaming architecture that also includes one ormore game servers 22 and/orrouting servers 24. In the illustrated architecture, similar to a conventional client-server architecture (see background section above), the game servers operate games and maintain the state of those games. As will be appreciated, however, the routing servers and/or one or more of the clients themselves may alternatively operate portions, or all, of the games and maintain the state of those games. As used herein, then, although games can be operated by one or more network entities, including game servers, routing servers and/or client(s), the following description may refer to a game server as operating the games for purposes of illustration. Irrespective of the network entit(ies) that operate the games, however, the clients operate game applications that communicate with those network entit(ies) to continuously change the game state of the games operated and maintained by the network entit(ies) to thereby play those games. - Also in the illustrated architecture, the
clients 76 are operatively coupled to routingservers 24 which, in turn, are coupled to thegame servers 22. Thus, the routing servers route data packets between one ormore clients 76 and thegame servers 22, and/or other clients, to facilitate the operation of each entity in the architecture. As shown, the routing servers can be coupled between groups of clients and one or more game servers, directly or indirectly via one or more other routing servers. In this regard, one or more routing servers can also be coupled to other routing servers such that the routing servers can also be coupled between one or more clients and one or more groups of other clients, such as groups of clients coupled to other routing servers. - The entities (i.e.,
clients 76,game servers 22 and routing servers 24) of the illustrated architecture can communicate in any of a number of different manners. In one embodiment, for example, the entities communicate in accordance with the UDP (Universal Datagram Protocol) transport protocol, or in accordance with rUDP (reliable UDP), a proprietary protocol that operates above UDP. And although architectures such as that illustrated may provide an environment for ease in authentication, chat applications, and the setting up of game rooms and lobbies, a feature in such architectures that most directly impacts fairness is the transport protocol (e.g., rUDP/UDP) by which the entities of the architecture communicate with one another. Specifically, for example, rUDP provides for a means of guaranteed delivery of packets. In addition, rUDP allows for in-sequence delivery of packets generated from a client or game server. However, transport protocols such as rUDP do not provide a means of ordering packets as delivered from different clients. That is, transport protocols utilized by entities of architectures such as that illustrated inFIG. 4 generally do not include in-built mechanisms to ensure fairness. Moreover, the bandwidth management mechanism of such architectures allows for throttling the throughput generated by a client or game server based upon a fixed parameter. Effective latency of network communications between entities of these architectures, however, is not only variable from client to client but also variable over time for any individual client. - Embodiments of the present invention therefore provide a framework for overcoming the drawback of network latency in communications to and/or from
clients 76 to one ormore game servers 22 such that the client(s) 76 are capable of playing a game with the same perceived network latency, that being based upon the greatest network latency experienced by the client(s). Reference is now drawn toFIGS. 5 and 6 , which illustrate functional block diagram and method, respectively, facilitating fairness in a game. As shown inFIG. 5 , then, a plurality of clients (three being shown asclients game application 78 for operating the game and maintaining the state of that game based at least in part on data packets received from the clients. - In addition, in accordance with embodiments of the present invention, the
game server 22 is capable of operating a time-delay module 80, such as a time-delay application programming interface (API), for delaying data packets to the game server from one or more of the clients, and/or from the game server to one or more of the clients. More particularly, the time-delay module is capable of delaying data packets to the game server from one or more of theclients 76, and/or delaying data packets to one or more of the clients from the game server. The time-delay module is capable of delaying the data packets based upon network latency experienced by therespective clients 76 and an effective network latency, which is set based upon the network latencies experienced by the plurality of the clients playing the game. - As shown and described below, the
game server 22 operates the time-delay module 80. It should be understood, however, that one ormore routing servers 24 and/or other network entities can additionally or alternatively operate time-delay modules without departing from the spirit and scope of the present invention. Generally, then, data packets to and/or from the game server may be delayed from any of a number of different network entities between the clients and the game application operated by the game server. Further, although the time-delay module may comprise software operated by a network entity, the time-delay module may alternatively comprise firmware or hardware, without departing from the spirit and scope of the present invention. - A method of facilitating fairness in a multiplayer game includes determining, at the time-
delay module 80, a network latency associated with each of a plurality ofclients 76 playing a game. As will be appreciated, the network latency of a client can be determined or otherwise represented in any of a number of different manners including, for example, as a round trip time (RTT). In this regard, the RTT of a client is typically a measure of the time required for a data packet to travel from the client to the time-delay module, and back again to the respective client. Thus, as shown inFIG. 5 and block 84 ofFIG. 6 , determining a network latency associated with each of the clients may more particularly comprise determining a RTT associated with each of the clients. The RTT's can be determined in any of a number of different manners. In this regard, although the RTT associated with each client may be determined in a number of different manners, the RTT can be determined by sending a data packet (e.g., game traffic packet, control packet, etc.) to the client, and determining the amount of time required to receive an acknowledgement (ACK) packet back from the client. For purposes of example, presume that client 176 a has an RTT1=926.47 ms,client 2 76 b has an RTT2=1304.87 ms, andclient 3 76 c has anRTT 3=1103.56 ms. - Irrespective of exactly how the RTT's of the
clients 76 are determined, the time-delay module 80 can thereafter set an effective RTT based upon the RTT's of the clients, as shown inblock 86. Although the effective RTT can be identified in a number of different manners, to facilitate fairness among the clients, particularly those with the highest RTT, the effective RTT may be identified as the highest RTT experienced by any of the clients. Delivery of data packets to and/or from one or more of clients can then be delayed based upon the effective RTT such that all of the clients experience the same effective RTT without requiring any of the clients to decrease their RTT, such as by altering the network channels over which the clients with the highest RTT send/receive data packets. Continuing the above example, then, the effective RTT may be set toRTT 2 ofclient 2 76 b, i.e., effective RTT=1304.87 ms. - Thus, at one or more instances after setting the effective RTT, the time-
delay module 80 receives data packets from one or more of theclients 76, the data packets being intended for thegame server 24, or more particularly thegame application 78 operated by the game server, as shown inblock 88. Similarly, the time-delay module may receive data packets from the game application, where the data packets are intended for one or more of the clients. For data packets received by the time-delay module from a client intended for the game application, and/or for data packets received by the time-delay module from the game application intended for a client, the time-delay module can delay the data packet for a delay time (i.e., delay n) associated with the data packet, or more particularly associated with the client sending the data packet, as shown inblock 90. In this regard, the time-delay module can delay data packets to and/or from a client for a delay time such that the respective client experiences a RTT substantially equal to the effective RTT (i.e., RTT n≈effective RTT). Thus, in accordance with one embodiment, the delay time for a data packet can be determined to substantially equal the difference of the effective RTT and the RTT of the client sending the data packet. As used throughout, various quantitative measures may be described as being equal or substantially equal. It should be understood that in instances where values are described as being equal, such values may be substantially equal. Thus, in actual implementation, various values may differ somewhat (e.g., 1.0-5.0%) depending on a number of different parameters, such as variances in network latencies over time, measurements of the network latencies, and the like. - For example, presume the time-delay module receives a data packet from
client 1 76 a, which has an associatedRTT 1=926.47 ms. In such an instance, the time-delay module can determine adelay 1 that substantially equals the difference of the effective RTT=1304.87 ms andRTT 1, namely 378.4 ms (e.g.,delay 1=1304.87 ms-926.47 ms). As will be appreciated, when the effective RTT is identified as highest RTT, the client (e.g.,client 2 76 b) having the highest RTT will also have an associated delay of zero (e.g., effective RTT=RTT 2=1304.87 ms). The client having the lowest RTT, on the other hand, will have the highest delay. - The time-
delay module 80 can be configured apply the delay time to data packets on the uplink (i.e., from theclient 76 to the game application 78) and/or on the downlink (i.e., from the game application to the client) in any of a number of different manners to effectuate a RTT at the client substantially equal to the effective RTT. For example, when the time-delay module is configured to apply the delay time to data packets on the uplink, the time-delay module can delay data packets from the client to the game application for the entire delay time associated with the respective client. Alternatively, for example, when the time-delay module is configured to apply the delay time to data packets on the uplink and the downlink, the time-delay module can delay data packets from the client (i.e., client n) to the game application by a first time delay portion (e.g., ½ delay n), and delay data packets from the game application to the client by a second delay portion (e.g., ½ delay n). In such instances, the first and second delay portions sum to substantially the delay time (i.e., delay n) associated with the respective client. In yet another alternative example, when the time-delay module is configured to apply the delay time to data packets on the downlink, the time-delay module can delay data packets from the game application to the client for the entire delay time associated with the respective client. - After delaying data packets, the time-
delay module 80 can pass the data packets to thegame server 22, or more particularly thegame application 78 operated by the game server, or to therespective client 76, for processing, as shown inblock 92. More particularly, for example, after delaying data packets received from a client for the game application (if configured to at least partially delay packets on the uplink), the time-delay module can pass the data packets to the game application for processing. Similarly, for example, after delaying data packets received from the game application for a client (if configured to at least partially delay packets on the downlink), the time-delay module can pass the data packets to the client for processing. - During game play, for example, a data packet from a client can comprise a request to change the state of the game. In such an instance, the game application can receive the data packet from the time-
delay module 80, and process the request to effectuate a change in the state of the game operated and maintained by the game application. In addition, the game application can return to the requesting client and/or other clients, a return data packet notifying the client(s) of the change in the state of the game, the return data packet being sent to the client(s) via the time-delay module. Conventionally, the time required for the client to send the request a change of the state of the game, and receive the return data packet, substantially equals the RTT of the client. In accordance with embodiments of the present invention, however, the time required for the client to send the request and receive the acknowledgement substantially equals the effective RTT, irrespective of the particular client. - As shown in
block 94 and again inblock 88, the time-delay module 80 can receive a number of different data packets from a number ofdifferent clients 76 playing the game operated and maintained by thegame application 78. For data packets received from a client and/or the game application, then, the time-delay module can delay the data packet for at least a portion of the delay time associated with the client sending or receiving the data packet (see block 90). After the delay time, the time-delay module passes the delayed data packet to the receiving entity (i.e.,game server 22 or client) for processing by the respective entity (see block 92). - As will be appreciated, the effective RTT can be periodically set or otherwise updated by the time-
delay module 80. In this regard, at regular or irregular periodic intervals the time-delay module can determine or otherwise update the RTT's of one or more of the clients (see block 84). For example, when the network entities communicate in accordance with a protocol such as rUDP, the time-delay module can be configured to determine the RTT's of a client upon each instance of the client and thegame application 78 operated by thegame server 22 exchanging reliable transport packets, such as to transfer game states, variables, chat messages or the like during game play. Irrespective of exactly when the time-delay module determines or otherwise updated the RTT's of one or more of the clients, the time-delay module can then reset or otherwise update the effective RTT based upon the newly determined RTT's of the clients. Further, as shown inFIG. 5 , the effective RTT can be periodically sent to the game application. The game application, if so configured, can then modify play of the game based upon the effective RTT and/or notification indicating that all of the clients are communicating with the game server with approximately the same effective RTT. - Additionally, by setting effective RTT equal to that of the
slowest client 76 playing the game (i.e., client with the highest RTT), the time-delay module 78 effectively slows down game traffic to that of the slowest client. In various instances, such as when a large disparity exists between the slowest client and the other clients playing the game, however, it may be prohibitively undesirable to slow down game traffic to that of the slowest client. Thus, in various instances, the RTT's of the clients may be compared against a threshold RTT. Those clients having an RTT above the threshold may then be prohibited from participating or otherwise playing in the game, such as by thegame server 22 or therouting server 24. By restricting game play to only those clients having a RTT below the threshold, the effective RTT can thereafter be set at or below the threshold, thereby facilitating faster game play among the clients permitted to play the game. - So as to not completely restrict from playing the game those
clients 76 that otherwise have differing RTT's, such as those above the threshold RTT, thegame server 22, or more particularly thegame application 78 operated by the game server, may be configured to provide multiple concurrently operating occurrences of the game, each being capable of being played by a plurality of clients. The occurrences of the game can then be organized based upon the network latencies of the plurality of clients. More particularly, each occurrence of the game may be played by clients having similar RTT's such that none of the clients playing a particular instance of the game experience a significant decrease in speed of game activity by the delay of data packets to/from the game application. More particularly, for example, the game server or routingserver 24 may be configured to provide a virtual lobby listing the occurrences of the game, the listing also indicating the relative speed of the clients playing the respective occurrences, such as by indicating effective RTT's of the clients playing each instance. An additional client desiring to play the game, then, may enter the virtual lobby and select an occurrence of the game to play based upon the relative speed of the clients playing the occurrence of the game. In this regard, the client desiring to play the game may receive, such as from the entity providing the virtual lobby, an indication of the RTT of the client such that the client can compare its RTT with the effective RTT's of the various occurrences to find an occurrence with an effective RTT more closely matching that of the client. The client may then select an occurrence to thereafter be received into the occurrence of the game. - According to one aspect of the present invention, all or a portion of the system of the present invention, such all or portions of the
game server 22, routingserver 24 and/or client 76 (e.g.,mobile station 10,PC system 26,game console 28, etc.), generally operate under control of a computer program product (e.g.,game application 78, time-delay module 80, etc.). The computer program product for performing the methods of embodiments of the present invention includes a computer-readable storage medium, such as the non-volatile storage medium, and computer-readable program code portions, such as a series of computer instructions, embodied in the computer-readable storage medium. - In this regard,
FIG. 6 is a flowchart of methods, systems and program products according to the invention. It will be understood that each block or step of the flowchart, and combinations of blocks in the flowchart, can be implemented by computer program instructions. These computer program instructions may be loaded onto a computer or other programmable apparatus to produce a machine, such that the instructions which execute on the computer or other programmable apparatus create means for implementing the functions specified in the flowchart block(s) or step(s). These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart block(s) or step(s). The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block(s) or step(s). - Accordingly, blocks or steps of the flowchart support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block or step of the flowchart, and combinations of blocks or steps in the flowchart, can be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
- Many modifications and other embodiments of the invention will come to mind to one skilled in the art to which this invention pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Claims (26)
1. A system for facilitating fairness in a multiplayer game, the system comprising:
a gaming architecture comprising at least one network entity capable of operating a game application, the game application being capable of operating a multiplayer game;
a plurality of clients capable of communicating with the gaming architecture across at least one network to play the multiplayer game, wherein the plurality of clients are each associated with a network latency, and wherein the plurality of clients include a given client; and
a time-delay module disposed across at least one network from the plurality of clients, and between the plurality of clients and the game application,
wherein the time-delay module is capable of receiving a data packet associated with the particular client during play of the multiplayer game, wherein the time-delay module is capable of delaying the data packet for at least a portion of a delay time associated with the particular client, the delay time being based upon the network latency of the particular client and an effective network latency set based upon the network latencies of the plurality of clients, and
wherein the time-delay module is capable of passing the delayed data packet to one of the game application and the particular client.
2. A system according to claim 1 , wherein the time-delay module is capable of receiving data packets, delaying the data packets and passing the delayed data packets at least one of to and from the plurality of clients such that the plurality of clients play the multiplayer game with a network latency substantially equal to the effective network latency.
3. A system according to claim 1 , wherein the game application is capable of providing a plurality of occurrences of the multiplayer game, wherein each occurrence is capable of being played by a plurality of clients, and
wherein the time-delay module is capable of receiving a data packet, delaying the data packet and passing the delayed data packet for each occurrence of the multiplayer game.
4. A network entity for facilitating fairness in a multiplayer game, the game server comprising:
a processor capable of at least partially operating a game application, the game application being capable of operating a multiplayer game played by a plurality of clients across at least one network, wherein the plurality of clients include a particular client and are each associated with a network latency, wherein the processor is also capable of operating a time-delay module,
wherein the time-delay module is capable of receiving a data packet associated with the particular client during play of the multiplayer game, wherein the time-delay module is capable of delaying the data packet for at least a portion of a delay time associated with the particular client, the delay time being based upon the network latency of the particular client and an effective network latency set based upon the network latencies of the plurality of clients, and
wherein the time-delay module is capable of passing the delayed data packet to one of the game application and the particular client.
5. A network entity according to claim 4 , wherein the time-delay module is further capable of determining the network latency associated with each of the plurality of clients, and setting the effective network latency based upon the highest network latency of the plurality of clients.
6. A network entity according to claim 5 , wherein the time-delay module is capable of periodically determining the network latency and setting the effective network latency.
7. A network entity according to claim 4 , wherein the time-delay module is further capable of determining the delay time associated with the particular client, the delay time determined to substantially equal the difference between the effective network latency and the network latency of the particular client.
8. A network entity according to claim 4 , wherein the time-delay module is capable of receiving a data packet, delaying the data packet and passing the delayed data packet for the plurality of clients such that the plurality of clients play the multiplayer game with a network latency substantially equal to the effective network latency.
9. A network entity according to claim 4 , wherein the processor is further capable of comparing the latencies of the plurality of clients against a threshold latency, and prohibiting clients having a network latency above the threshold latency from playing the multiplayer game.
10. A network entity according to claim 4 , wherein the game application is capable of providing a plurality of occurrences of the multiplayer game, wherein each occurrence is capable of being played by a plurality of clients, and
wherein the time-delay module is capable of receiving a data packet, delaying the data packet and passing the delayed data packet for each occurrence of the multiplayer game.
11. A network entity according to claim 10 , wherein each occurrence is associated with the effective network latency of the clients playing the occurrence, and wherein the game application is further capable of receiving an additional client into an occurrence of the multiplayer game based upon the effective network latency associated with the occurrence and the network latency of the additional client.
12. A client for playing a multiplayer game, the client comprising:
a processor capable of communicating with a game application during play of a multiplayer game played by at least one other client, each of the clients being associated with a network latency,
wherein the processor is capable of communicating with the game application such that a time-delay module, disposed across the at least one network from the client, is capable of receiving a data packet associated with the client during play of the multiplayer game, such that the time-delay module is capable of delaying the data packet for at least a portion of a delay time associated with the client, the delay time being based upon the network latency of the client and an effective network latency set based upon the network latencies of the plurality of clients, and such that the time-delay module is capable of passing the delayed data packet to one of the game application and the client.
13. A client according to claim 12 , wherein the processor is capable of communicating with the game application such that a time-delay module is further capable of determining the network latency associated with each of the plurality of clients, and setting the effective network latency based upon the highest network latency of the plurality of clients.
14. A client according to claim 13 , wherein the processor is capable of communicating with the game application such that the time-delay module is capable of periodically determining the network latency associated with each of the plurality of clients, and setting the effective network latency.
15. A client according to claim 12 , wherein the processor is capable of communicating with the game application such that a time-delay module is further capable of determining the delay time associated with the client, the delay time determined to substantially equal the difference between the effective network latency and the network latency of the client.
16. A client according to claim 12 , wherein the network latency of the client is capable of being compared against a threshold latency such that the processor is prohibited from communicating with the game application if the network latency of the client is above the threshold latency.
17. A client according to claim 12 , wherein the game application is capable of providing a plurality of occurrences of the multiplayer game, wherein each occurrence is capable of being played by a plurality of clients, and wherein the processor is capable of communicating with the game application during play of an occurrence of the multiplayer game.
18. A client according to claim 17 , wherein each occurrence is associated with the effective network latency of the clients playing the occurrence, and wherein the processor is capable of being received into an occurrence of the multiplayer game based upon the effective network latency associated with the occurrence and the network latency of the client.
19. A method of facilitating fairness in a multiplayer game, the method comprising:
receiving a data packet during play of a multiplayer game, wherein receiving a data packet comprises at least one of receiving a data packet from a particular client across at least one network, and receiving a data packet intended for the particular client, and wherein the particular client is one of a plurality of clients that are each associated with a network latency;
delaying the data packet for at least a portion of a delay time associated with the particular client, the delay time being based upon the network latency of the particular client and an effective network latency set based upon the network latencies of the plurality of clients; and
passing the delayed data packet, wherein passing the delayed data packet comprises at least one of passing the delayed data packet to a game application when the received data packet is from the particular client, and passing the delayed data packet across at least one network to the particular client when the received data packet is intended for the particular client.
20. A method according to claim 19 further comprising:
determining the network latency associated with each of the plurality of clients; and
setting the effective network latency based upon the highest network latency of the plurality of clients.
21. A method according to claim 20 , wherein determining the network latency and setting the effective network latency comprise periodically determining the network latency and setting the effective network latency.
22. A method according to claim 19 further comprising:
determining the delay time associated with the particular client, the delay time determined to substantially equal the difference between the effective network latency and the network latency of the particular client.
23. A method according to claim 19 , wherein receiving a data packet, delaying the data packet and passing the delayed data packet occur for the plurality of clients such that the plurality of clients play the multiplayer game with a network latency substantially equal to the effective network latency.
24. A method according to claim 19 further comprising:
comparing the latencies of the plurality of clients against a threshold latency; and
prohibiting clients having a network latency above the threshold latency from playing the multiplayer game.
25. A method according to claim 19 further comprising:
providing a plurality of occurrences of the multiplayer game, wherein each occurrence is capable of being played by a plurality of clients, and
wherein receiving a data packet, delaying the data packet and passing the delayed data packet occur for each occurrence of the multiplayer game.
26. A method according to claim 25 , wherein each occurrence is associated with the effective network latency of the clients playing the occurrence, and wherein the method further comprises:
receiving an additional client into an occurrence of the multiplayer game based upon the effective network latency associated with the occurrence and the network latency of the additional client.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/015,253 US20060135258A1 (en) | 2004-12-17 | 2004-12-17 | System, network entity, client and method for facilitating fairness in a multiplayer game |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/015,253 US20060135258A1 (en) | 2004-12-17 | 2004-12-17 | System, network entity, client and method for facilitating fairness in a multiplayer game |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060135258A1 true US20060135258A1 (en) | 2006-06-22 |
Family
ID=36596715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/015,253 Abandoned US20060135258A1 (en) | 2004-12-17 | 2004-12-17 | System, network entity, client and method for facilitating fairness in a multiplayer game |
Country Status (1)
Country | Link |
---|---|
US (1) | US20060135258A1 (en) |
Cited By (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060046852A1 (en) * | 2004-08-26 | 2006-03-02 | Rowe Richard E | Wide area gaming system |
US20060280182A1 (en) * | 2005-04-22 | 2006-12-14 | National Ict Australia Limited | Method for transporting digital media |
US20080101253A1 (en) * | 2006-10-31 | 2008-05-01 | Freescale Semiconductor, Inc. | Methods and apparatus for round trip time measurements |
WO2008104221A1 (en) * | 2007-02-27 | 2008-09-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for use in multiplayer server-based gaming |
US20080243994A1 (en) * | 2007-03-30 | 2008-10-02 | Alexander Kropivny | Method, Apparatus, System, and Medium for Supporting Multiple-Party Communications |
US20080280676A1 (en) * | 2007-05-07 | 2008-11-13 | Samsung Electronics Co. Ltd. | Wireless gaming method and wireless gaming-enabled mobile terminal |
WO2008138047A1 (en) * | 2007-05-11 | 2008-11-20 | Audinate Pty Limited | Systems, methods and computer-readable media for configuring receiver latency |
FR2926153A1 (en) * | 2008-01-04 | 2009-07-10 | Sokoz | METHODS AND DEVICES FOR SYNCHRONIZATION IN A COMMUNICATION NETWORK FOR REAL-TIME AUCTION-TYPE SALES APPLICATIONS |
US20090274149A1 (en) * | 2006-05-17 | 2009-11-05 | Audinate Pty Limited | Redundant Media Packet Streams |
US7627632B2 (en) | 2006-11-13 | 2009-12-01 | Microsoft Corporation | Reducing bandwidth requirements for peer-to-peer gaming based on importance of remote objects to a local player |
US7765261B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium and signals for supporting a multiple-party communication on a plurality of computer servers |
US7765266B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium, and signals for publishing content created during a communication |
US7803054B1 (en) | 2004-03-31 | 2010-09-28 | Microsoft Corporation | Multi-vehicle cross-network coordination |
US20100292006A1 (en) * | 2009-05-12 | 2010-11-18 | Scott Michael Terrell | System and method for a local gamer network |
US7895311B1 (en) * | 2006-11-17 | 2011-02-22 | Arthur W. Juenger | Content distribution systems |
US7950046B2 (en) | 2007-03-30 | 2011-05-24 | Uranus International Limited | Method, apparatus, system, medium, and signals for intercepting a multiple-party communication |
US20120143992A1 (en) * | 2010-12-01 | 2012-06-07 | Microsoft Corporation | Throttling Usage of Resources |
US20130060960A1 (en) * | 2011-09-01 | 2013-03-07 | International Business Machines Corporation | Optimizing software applications in a network |
US20130196773A1 (en) * | 2012-01-27 | 2013-08-01 | Camron Lockeby | Location Services Game Engine |
US8627211B2 (en) | 2007-03-30 | 2014-01-07 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting pointer display in a multiple-party communication |
US20140071978A1 (en) * | 2012-09-10 | 2014-03-13 | Paul V. Hubner | Voice energy collison back-off |
US8678929B1 (en) * | 2008-08-01 | 2014-03-25 | Electronics Arts Inc. | Client-side prediction of a local game object to reduce apparent network lag of multiplayer simulations |
US20140089384A1 (en) * | 2012-09-27 | 2014-03-27 | International Business Machines Corporation | Server resource selection on a network for a mobile client |
US8702505B2 (en) | 2007-03-30 | 2014-04-22 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting game piece movement in a multiple-party communication |
US8852000B1 (en) * | 2012-06-05 | 2014-10-07 | Kabam, Inc. | Using crowd-sourcing to verify the accuracy of results of client-side determinations |
US20140365412A1 (en) * | 2012-02-01 | 2014-12-11 | Yosef Mizrachi | Method and system for improving prediction in online gaming |
US20150209670A1 (en) * | 2014-01-30 | 2015-07-30 | Gree, Inc. | Game management method, game management system, and game management program |
US9122524B2 (en) | 2013-01-08 | 2015-09-01 | Microsoft Technology Licensing, Llc | Identifying and throttling tasks based on task interactivity |
US9305274B2 (en) | 2012-01-16 | 2016-04-05 | Microsoft Technology Licensing, Llc | Traffic shaping based on request resource usage |
US9329901B2 (en) | 2011-12-09 | 2016-05-03 | Microsoft Technology Licensing, Llc | Resource health based scheduling of workload tasks |
US9381432B2 (en) | 2012-08-24 | 2016-07-05 | Microsoft Technology Licensing, Llc | Game migration |
US20160301731A1 (en) * | 2013-12-01 | 2016-10-13 | Interdigital Patent Holdings, Inc. | Systems and methods for conducting reverse auctions to improve qoe of networked applications |
US9497103B2 (en) | 2008-02-29 | 2016-11-15 | Audinate Pty Limited | Isochronous local media network for performing discovery |
US9526980B2 (en) | 2012-12-21 | 2016-12-27 | Microsoft Technology Licensing, Llc | Client side processing of game controller input |
US9545574B2 (en) | 2012-07-20 | 2017-01-17 | Microsoft Technology Licensing, Llc | Game browsing |
US9564102B2 (en) | 2013-03-14 | 2017-02-07 | Microsoft Technology Licensing, Llc | Client side processing of player movement in a remote gaming environment |
US9694277B2 (en) | 2013-03-14 | 2017-07-04 | Microsoft Technology Licensing, Llc | Client side processing of character interactions in a remote gaming environment |
RU2625074C2 (en) * | 2013-01-29 | 2017-07-17 | Сони Компьютер Энтертейнмент Эмерике Ллк | Methods and hardware designed to conceal delay in multiplayer online games |
US9717982B2 (en) | 2012-12-21 | 2017-08-01 | Microsoft Technology Licensing, Llc | Client rendering of latency sensitive game features |
US20190118084A1 (en) * | 2017-10-25 | 2019-04-25 | Allied Esports International, Inc. | Systems and Methods for Managing Latency in Networked Competitive Multiplayer Gaming |
GB2580595A (en) * | 2019-01-14 | 2020-07-29 | Fraenkel Wright Ltd | Network management |
US11019361B2 (en) | 2018-08-13 | 2021-05-25 | At&T Intellectual Property I, L.P. | Methods, systems and devices for adjusting panoramic view of a camera for capturing video content |
US11190820B2 (en) * | 2018-06-01 | 2021-11-30 | At&T Intellectual Property I, L.P. | Field of view prediction in live panoramic video streaming |
WO2022036184A1 (en) * | 2020-08-14 | 2022-02-17 | Qualcomm Incorporated | Network latency fairness in multi-user gaming platforms |
US12113670B2 (en) | 2019-02-22 | 2024-10-08 | British Telecommunications Public Limited Company | Network management |
US12132631B2 (en) | 2022-09-20 | 2024-10-29 | T-Mobile Usa, Inc. | On-device latency detection |
Citations (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5695400A (en) * | 1996-01-30 | 1997-12-09 | Boxer Jam Productions | Method of managing multi-player game playing over a network |
US5775996A (en) * | 1994-11-14 | 1998-07-07 | Mpath Interactive, Inc. | Method and apparatus for synchronizing the execution of multiple video game systems in a networked environment |
US5820463A (en) * | 1996-02-06 | 1998-10-13 | Bell Atlantic Network Services, Inc. | Method and apparatus for multi-player gaming over a network |
US5838909A (en) * | 1996-05-23 | 1998-11-17 | Sandcastle, Inc. | Reducing latency when synchronizing access to a multi-user database over a network |
US5899810A (en) * | 1997-01-24 | 1999-05-04 | Kaon Interactive Corporation | Distributed game architecture to overcome system latency |
US5974442A (en) * | 1996-12-31 | 1999-10-26 | Intel Corporation | Communication technique for interactive applications over a network with delays |
US6006254A (en) * | 1997-08-29 | 1999-12-21 | Mitsubishi Electric Information Technology Center America, Inc. | System for the reliable, fast, low-latency communication of object state updates over a computer network by combining lossy and lossless communications |
US6009458A (en) * | 1996-05-09 | 1999-12-28 | 3Do Company | Networked computer game system with persistent playing objects |
US6012096A (en) * | 1998-04-23 | 2000-01-04 | Microsoft Corporation | Method and system for peer-to-peer network latency measurement |
US6025801A (en) * | 1996-10-01 | 2000-02-15 | Philips Electronics North America Corporation | Video game with local updates mitigates latency effects in wide area network |
US6042477A (en) * | 1996-12-12 | 2000-03-28 | Addink; Dale H. | Method of and system for minimizing the effects of time latency in multiplayer electronic games played on interconnected computers |
US6304902B1 (en) * | 1997-04-23 | 2001-10-16 | Hearme | Latency server and matchmaker |
US6345297B1 (en) * | 1996-03-21 | 2002-02-05 | Hearme | Network match maker |
US20020049087A1 (en) * | 2000-09-07 | 2002-04-25 | Teruyuki Ushiro | Information processing apparatus, information processing method, and recording medium |
US6415317B1 (en) * | 1999-10-01 | 2002-07-02 | Joshua Michael Yelon | Software system for reducing the appearance of latency in a multi-user environment |
US6475090B2 (en) * | 2001-03-29 | 2002-11-05 | Koninklijke Philips Electronics N.V. | Compensating for network latency in a multi-player game |
US6524189B1 (en) * | 1999-07-09 | 2003-02-25 | Nokia Corporation | Multi-player game system using mobile telephone and game unit |
US6527641B1 (en) * | 1999-09-24 | 2003-03-04 | Nokia Corporation | System for profiling mobile station activity in a predictive command wireless game system |
US20030060285A1 (en) * | 2001-08-30 | 2003-03-27 | Eisaburo Itakura | Network game system, network game server, and network game terminal |
US6554707B1 (en) * | 1999-09-24 | 2003-04-29 | Nokia Corporation | Interactive voice, wireless game system using predictive command input |
US6579184B1 (en) * | 1999-12-10 | 2003-06-17 | Nokia Corporation | Multi-player game system |
US6595853B1 (en) * | 1999-09-24 | 2003-07-22 | Aruze Corporation | Game machine for playing a self-contained game in a first mode or, in a second mode participating as a terminal, in a game conducted by a remote game machine |
US6674995B1 (en) * | 1999-12-22 | 2004-01-06 | Nokia Corporation | Electronically augmented multiplayer sporting game with virtual ball passed by infrared apparatus |
US20040014527A1 (en) * | 2002-07-19 | 2004-01-22 | Orr Scott Stewart | System and method to integrate digital characters across multiple interactive games |
US6769989B2 (en) * | 1998-09-08 | 2004-08-03 | Nintendo Of America Inc. | Home video game system with hard disk drive and internet access capability |
US20040152519A1 (en) * | 2000-11-14 | 2004-08-05 | Andy Wang | Multi-player game employing dynamic re-sequencing |
US20040162803A1 (en) * | 2003-02-15 | 2004-08-19 | Rhoads Jeffrey S. | Method and system to enable a single sports software application's use across multiple sports |
-
2004
- 2004-12-17 US US11/015,253 patent/US20060135258A1/en not_active Abandoned
Patent Citations (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5775996A (en) * | 1994-11-14 | 1998-07-07 | Mpath Interactive, Inc. | Method and apparatus for synchronizing the execution of multiple video game systems in a networked environment |
US5695400A (en) * | 1996-01-30 | 1997-12-09 | Boxer Jam Productions | Method of managing multi-player game playing over a network |
US5820463A (en) * | 1996-02-06 | 1998-10-13 | Bell Atlantic Network Services, Inc. | Method and apparatus for multi-player gaming over a network |
US6345297B1 (en) * | 1996-03-21 | 2002-02-05 | Hearme | Network match maker |
US6009458A (en) * | 1996-05-09 | 1999-12-28 | 3Do Company | Networked computer game system with persistent playing objects |
US5838909A (en) * | 1996-05-23 | 1998-11-17 | Sandcastle, Inc. | Reducing latency when synchronizing access to a multi-user database over a network |
US6025801A (en) * | 1996-10-01 | 2000-02-15 | Philips Electronics North America Corporation | Video game with local updates mitigates latency effects in wide area network |
US6042477A (en) * | 1996-12-12 | 2000-03-28 | Addink; Dale H. | Method of and system for minimizing the effects of time latency in multiplayer electronic games played on interconnected computers |
US5974442A (en) * | 1996-12-31 | 1999-10-26 | Intel Corporation | Communication technique for interactive applications over a network with delays |
US5899810A (en) * | 1997-01-24 | 1999-05-04 | Kaon Interactive Corporation | Distributed game architecture to overcome system latency |
US6304902B1 (en) * | 1997-04-23 | 2001-10-16 | Hearme | Latency server and matchmaker |
US6006254A (en) * | 1997-08-29 | 1999-12-21 | Mitsubishi Electric Information Technology Center America, Inc. | System for the reliable, fast, low-latency communication of object state updates over a computer network by combining lossy and lossless communications |
US6012096A (en) * | 1998-04-23 | 2000-01-04 | Microsoft Corporation | Method and system for peer-to-peer network latency measurement |
US6769989B2 (en) * | 1998-09-08 | 2004-08-03 | Nintendo Of America Inc. | Home video game system with hard disk drive and internet access capability |
US6524189B1 (en) * | 1999-07-09 | 2003-02-25 | Nokia Corporation | Multi-player game system using mobile telephone and game unit |
US6595853B1 (en) * | 1999-09-24 | 2003-07-22 | Aruze Corporation | Game machine for playing a self-contained game in a first mode or, in a second mode participating as a terminal, in a game conducted by a remote game machine |
US6793580B2 (en) * | 1999-09-24 | 2004-09-21 | Nokia Corporation | Applying a user profile in a virtual space |
US6527641B1 (en) * | 1999-09-24 | 2003-03-04 | Nokia Corporation | System for profiling mobile station activity in a predictive command wireless game system |
US6554707B1 (en) * | 1999-09-24 | 2003-04-29 | Nokia Corporation | Interactive voice, wireless game system using predictive command input |
US6415317B1 (en) * | 1999-10-01 | 2002-07-02 | Joshua Michael Yelon | Software system for reducing the appearance of latency in a multi-user environment |
US6817947B2 (en) * | 1999-12-10 | 2004-11-16 | Nokia Corporation | Multi-player game system |
US6579184B1 (en) * | 1999-12-10 | 2003-06-17 | Nokia Corporation | Multi-player game system |
US6674995B1 (en) * | 1999-12-22 | 2004-01-06 | Nokia Corporation | Electronically augmented multiplayer sporting game with virtual ball passed by infrared apparatus |
US20020049087A1 (en) * | 2000-09-07 | 2002-04-25 | Teruyuki Ushiro | Information processing apparatus, information processing method, and recording medium |
US20040152519A1 (en) * | 2000-11-14 | 2004-08-05 | Andy Wang | Multi-player game employing dynamic re-sequencing |
US20070270225A1 (en) * | 2000-11-14 | 2007-11-22 | Netamin Communication Corp. | Multi-player game employing dynamic re-sequencing |
US6475090B2 (en) * | 2001-03-29 | 2002-11-05 | Koninklijke Philips Electronics N.V. | Compensating for network latency in a multi-player game |
US20030060285A1 (en) * | 2001-08-30 | 2003-03-27 | Eisaburo Itakura | Network game system, network game server, and network game terminal |
US20040014527A1 (en) * | 2002-07-19 | 2004-01-22 | Orr Scott Stewart | System and method to integrate digital characters across multiple interactive games |
US20040162803A1 (en) * | 2003-02-15 | 2004-08-19 | Rhoads Jeffrey S. | Method and system to enable a single sports software application's use across multiple sports |
Cited By (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7803054B1 (en) | 2004-03-31 | 2010-09-28 | Microsoft Corporation | Multi-vehicle cross-network coordination |
US20060046852A1 (en) * | 2004-08-26 | 2006-03-02 | Rowe Richard E | Wide area gaming system |
US8478856B2 (en) | 2005-04-22 | 2013-07-02 | Audinate Pty Limited | Method for transporting digital media |
US8005939B2 (en) | 2005-04-22 | 2011-08-23 | Audinate Pty Limited | Method for transporting digital media |
US20100228881A1 (en) * | 2005-04-22 | 2010-09-09 | Audinate Pty Limited | Method for transporting digital media |
US11764890B2 (en) | 2005-04-22 | 2023-09-19 | Audinate Holdings Pty Limited | Methods for transporting digital media |
US11271666B2 (en) | 2005-04-22 | 2022-03-08 | Audinate Holdings Pty Limited | Methods for transporting digital media |
US9398091B2 (en) | 2005-04-22 | 2016-07-19 | Audinate Pty Limited | Methods for transporting digital media |
US10461872B2 (en) | 2005-04-22 | 2019-10-29 | Audinate Pty Limited | Methods for transporting digital media |
US9003009B2 (en) | 2005-04-22 | 2015-04-07 | Audinate Pty Limited | Methods for transporting digital media |
US10097296B2 (en) | 2005-04-22 | 2018-10-09 | Audinate Pty Limited | Methods for transporting digital media |
US7747725B2 (en) | 2005-04-22 | 2010-06-29 | Audinate Pty. Limited | Method for transporting digital media |
US20060280182A1 (en) * | 2005-04-22 | 2006-12-14 | National Ict Australia Limited | Method for transporting digital media |
US8966109B2 (en) | 2006-04-21 | 2015-02-24 | Audinate Pty Limited | Systems, methods and computer-readable media for configuring receiver latency |
US10291944B2 (en) | 2006-04-21 | 2019-05-14 | Audinate Pty Limited | Systems, methods and computer-readable media for configuring receiver latency |
US9479573B2 (en) | 2006-04-21 | 2016-10-25 | Audinate Pty Limited | Systems, methods and computer-readable media for configuring receiver latency |
US10805371B2 (en) | 2006-05-17 | 2020-10-13 | Audinate Pty Ltd. | Transmitting and receiving media packet streams |
US11252212B2 (en) | 2006-05-17 | 2022-02-15 | Audinate Holdings Pty Limited | Redundant media packet streams |
US20100046383A1 (en) * | 2006-05-17 | 2010-02-25 | Audinate Pty Limited | Transmitting and Receiving Media Packet Streams |
US11811837B2 (en) | 2006-05-17 | 2023-11-07 | Audinate Holdings Pty Limited | Redundant media packet streams |
US8411679B2 (en) | 2006-05-17 | 2013-04-02 | Audinate Pty Limited | Redundant media packet streams |
US9178927B2 (en) | 2006-05-17 | 2015-11-03 | Audinate Pty Limited | Transmitting and receiving media packet streams |
US10536499B2 (en) | 2006-05-17 | 2020-01-14 | Audinate Pty Limited | Redundant media packet streams |
US8913612B2 (en) | 2006-05-17 | 2014-12-16 | Audinate Pty Limited | Redundant media packet streams |
US7978696B2 (en) | 2006-05-17 | 2011-07-12 | Audinate Pty Limited | Redundant media packet streams |
US20090274149A1 (en) * | 2006-05-17 | 2009-11-05 | Audinate Pty Limited | Redundant Media Packet Streams |
US9979767B2 (en) | 2006-05-17 | 2018-05-22 | Audinate Pty Limited | Transmitting and receiving media packet streams |
US9860291B2 (en) | 2006-05-17 | 2018-01-02 | Audinate Pty Limited | Redundant media packet streams |
US7843848B2 (en) * | 2006-10-31 | 2010-11-30 | Freescale Semiconductor, Inc. | Methods and apparatus for round trip time measurements |
US20080101253A1 (en) * | 2006-10-31 | 2008-05-01 | Freescale Semiconductor, Inc. | Methods and apparatus for round trip time measurements |
US7627632B2 (en) | 2006-11-13 | 2009-12-01 | Microsoft Corporation | Reducing bandwidth requirements for peer-to-peer gaming based on importance of remote objects to a local player |
US7925601B2 (en) | 2006-11-13 | 2011-04-12 | Microsoft Corporation | Reducing bandwidth requirements for peer-to-peer gaming based on error difference between actual game object state and simulated game object state being below an error threshold |
US20100035695A1 (en) * | 2006-11-13 | 2010-02-11 | Microsoft Corporation | Reducing bandwidth requirements for peer-to-peer gaming based on importance of remote objects to a local player |
US7895311B1 (en) * | 2006-11-17 | 2011-02-22 | Arthur W. Juenger | Content distribution systems |
WO2008104221A1 (en) * | 2007-02-27 | 2008-09-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for use in multiplayer server-based gaming |
US10180765B2 (en) | 2007-03-30 | 2019-01-15 | Uranus International Limited | Multi-party collaboration over a computer network |
US7765261B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium and signals for supporting a multiple-party communication on a plurality of computer servers |
US10963124B2 (en) | 2007-03-30 | 2021-03-30 | Alexander Kropivny | Sharing content produced by a plurality of client computers in communication with a server |
US8060887B2 (en) | 2007-03-30 | 2011-11-15 | Uranus International Limited | Method, apparatus, system, and medium for supporting multiple-party communications |
US8702505B2 (en) | 2007-03-30 | 2014-04-22 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting game piece movement in a multiple-party communication |
US20080243994A1 (en) * | 2007-03-30 | 2008-10-02 | Alexander Kropivny | Method, Apparatus, System, and Medium for Supporting Multiple-Party Communications |
US7950046B2 (en) | 2007-03-30 | 2011-05-24 | Uranus International Limited | Method, apparatus, system, medium, and signals for intercepting a multiple-party communication |
US8627211B2 (en) | 2007-03-30 | 2014-01-07 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting pointer display in a multiple-party communication |
US7765266B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium, and signals for publishing content created during a communication |
US9579572B2 (en) | 2007-03-30 | 2017-02-28 | Uranus International Limited | Method, apparatus, and system for supporting multi-party collaboration between a plurality of client computers in communication with a server |
US20080280676A1 (en) * | 2007-05-07 | 2008-11-13 | Samsung Electronics Co. Ltd. | Wireless gaming method and wireless gaming-enabled mobile terminal |
US8506404B2 (en) * | 2007-05-07 | 2013-08-13 | Samsung Electronics Co., Ltd. | Wireless gaming method and wireless gaming-enabled mobile terminal |
US20100235486A1 (en) * | 2007-05-11 | 2010-09-16 | Andrew White | Systems, methods and computer-readable media for configuring receiver latency |
US11831935B2 (en) | 2007-05-11 | 2023-11-28 | Audinate Holdings Pty Limited | Systems, methods and computer-readable media for configuring receiver latency |
US8171152B2 (en) | 2007-05-11 | 2012-05-01 | Audinate Pty Limited | Systems, methods and computer-readable media for configuring receiver latency |
US11019381B2 (en) | 2007-05-11 | 2021-05-25 | Audinate Pty Limited | Systems, methods and computer-readable media for configuring receiver latency |
WO2008138047A1 (en) * | 2007-05-11 | 2008-11-20 | Audinate Pty Limited | Systems, methods and computer-readable media for configuring receiver latency |
FR2926153A1 (en) * | 2008-01-04 | 2009-07-10 | Sokoz | METHODS AND DEVICES FOR SYNCHRONIZATION IN A COMMUNICATION NETWORK FOR REAL-TIME AUCTION-TYPE SALES APPLICATIONS |
WO2009115653A1 (en) * | 2008-01-04 | 2009-09-24 | Sokoz | Synchronisation methods and devices in a communication network for real-time auction sale applications |
US9497103B2 (en) | 2008-02-29 | 2016-11-15 | Audinate Pty Limited | Isochronous local media network for performing discovery |
US11677485B2 (en) | 2008-02-29 | 2023-06-13 | Audinate Holdings Pty Limited | Network devices, methods and/or systems for use in a media network |
US8678929B1 (en) * | 2008-08-01 | 2014-03-25 | Electronics Arts Inc. | Client-side prediction of a local game object to reduce apparent network lag of multiplayer simulations |
US20100292006A1 (en) * | 2009-05-12 | 2010-11-18 | Scott Michael Terrell | System and method for a local gamer network |
US8222037B2 (en) * | 2009-05-12 | 2012-07-17 | Performance Designed Products Llc | System and method for a local gamer network |
US20120143992A1 (en) * | 2010-12-01 | 2012-06-07 | Microsoft Corporation | Throttling Usage of Resources |
US9647957B2 (en) | 2010-12-01 | 2017-05-09 | Microsoft Technology Licensing, Llc | Throttling usage of resources |
US8977677B2 (en) * | 2010-12-01 | 2015-03-10 | Microsoft Technology Licensing, Llc | Throttling usage of resources |
US20130060960A1 (en) * | 2011-09-01 | 2013-03-07 | International Business Machines Corporation | Optimizing software applications in a network |
US9645856B2 (en) | 2011-12-09 | 2017-05-09 | Microsoft Technology Licensing, Llc | Resource health based scheduling of workload tasks |
US9329901B2 (en) | 2011-12-09 | 2016-05-03 | Microsoft Technology Licensing, Llc | Resource health based scheduling of workload tasks |
US9305274B2 (en) | 2012-01-16 | 2016-04-05 | Microsoft Technology Licensing, Llc | Traffic shaping based on request resource usage |
US9825869B2 (en) | 2012-01-16 | 2017-11-21 | Microsoft Technology Licensing, Llc | Traffic shaping based on request resource usage |
US20130196773A1 (en) * | 2012-01-27 | 2013-08-01 | Camron Lockeby | Location Services Game Engine |
US20140365412A1 (en) * | 2012-02-01 | 2014-12-11 | Yosef Mizrachi | Method and system for improving prediction in online gaming |
US9364761B1 (en) | 2012-06-05 | 2016-06-14 | Kabam, Inc. | Using crowd-sourcing to verify the accuracy of results of client-side determinations |
US8852000B1 (en) * | 2012-06-05 | 2014-10-07 | Kabam, Inc. | Using crowd-sourcing to verify the accuracy of results of client-side determinations |
US10029181B2 (en) | 2012-07-20 | 2018-07-24 | Microsoft Technology Licensing, Llc | Game browsing |
US9545574B2 (en) | 2012-07-20 | 2017-01-17 | Microsoft Technology Licensing, Llc | Game browsing |
US9381432B2 (en) | 2012-08-24 | 2016-07-05 | Microsoft Technology Licensing, Llc | Game migration |
US9432219B2 (en) * | 2012-09-10 | 2016-08-30 | Verizon Patent And Licensing Inc. | Voice energy collision back-off |
US20140071978A1 (en) * | 2012-09-10 | 2014-03-13 | Paul V. Hubner | Voice energy collison back-off |
US20140089384A1 (en) * | 2012-09-27 | 2014-03-27 | International Business Machines Corporation | Server resource selection on a network for a mobile client |
US9717982B2 (en) | 2012-12-21 | 2017-08-01 | Microsoft Technology Licensing, Llc | Client rendering of latency sensitive game features |
US9526980B2 (en) | 2012-12-21 | 2016-12-27 | Microsoft Technology Licensing, Llc | Client side processing of game controller input |
US10369462B2 (en) | 2012-12-21 | 2019-08-06 | Microsoft Technology Licensing, Llc | Client side processing of game controller input |
US9122524B2 (en) | 2013-01-08 | 2015-09-01 | Microsoft Technology Licensing, Llc | Identifying and throttling tasks based on task interactivity |
RU2625074C2 (en) * | 2013-01-29 | 2017-07-17 | Сони Компьютер Энтертейнмент Эмерике Ллк | Methods and hardware designed to conceal delay in multiplayer online games |
US9694277B2 (en) | 2013-03-14 | 2017-07-04 | Microsoft Technology Licensing, Llc | Client side processing of character interactions in a remote gaming environment |
US9564102B2 (en) | 2013-03-14 | 2017-02-07 | Microsoft Technology Licensing, Llc | Client side processing of player movement in a remote gaming environment |
US10159901B2 (en) | 2013-03-14 | 2018-12-25 | Microsoft Technology Licensing, Llc | Client side processing of character interactions in a remote gaming environment |
US20160301731A1 (en) * | 2013-12-01 | 2016-10-13 | Interdigital Patent Holdings, Inc. | Systems and methods for conducting reverse auctions to improve qoe of networked applications |
US20150209670A1 (en) * | 2014-01-30 | 2015-07-30 | Gree, Inc. | Game management method, game management system, and game management program |
US10549192B2 (en) | 2014-01-30 | 2020-02-04 | Gree, Inc. | Game management method, game management system, and game management program for synchronizing game progress at a plurality of devices in different communication states |
US11628359B2 (en) * | 2014-01-30 | 2023-04-18 | Gree, Inc. | Game management method, game management system, and game management program for synchronizing game progress at a plurality of devices in different communication states |
US10105598B2 (en) * | 2014-01-30 | 2018-10-23 | Gree, Inc. | Game management method, game management system, and game management program for synchronizing game progress at a plurality of devices in different communication states |
US20210086074A1 (en) * | 2014-01-30 | 2021-03-25 | Gree, Inc. | Game management method, game management system, and game management program for synchronizing game progress at a plurality of devices in different communication states |
US10322341B2 (en) * | 2014-01-30 | 2019-06-18 | Gree, Inc. | Game management method, game management system, and game management program for synchronizing game progress at a plurality of devices in different communication states |
US20190118084A1 (en) * | 2017-10-25 | 2019-04-25 | Allied Esports International, Inc. | Systems and Methods for Managing Latency in Networked Competitive Multiplayer Gaming |
US10722788B2 (en) * | 2017-10-25 | 2020-07-28 | Allied Esports International, Inc. | Systems and methods for managing latency in networked competitive multiplayer gaming |
US11641499B2 (en) | 2018-06-01 | 2023-05-02 | At&T Intellectual Property I, L.P. | Field of view prediction in live panoramic video streaming |
US11190820B2 (en) * | 2018-06-01 | 2021-11-30 | At&T Intellectual Property I, L.P. | Field of view prediction in live panoramic video streaming |
US11671623B2 (en) | 2018-08-13 | 2023-06-06 | At&T Intellectual Property I, L.P. | Methods, systems and devices for adjusting panoramic view of a camera for capturing video content |
US11019361B2 (en) | 2018-08-13 | 2021-05-25 | At&T Intellectual Property I, L.P. | Methods, systems and devices for adjusting panoramic view of a camera for capturing video content |
GB2580595A (en) * | 2019-01-14 | 2020-07-29 | Fraenkel Wright Ltd | Network management |
US12113670B2 (en) | 2019-02-22 | 2024-10-08 | British Telecommunications Public Limited Company | Network management |
US11611510B2 (en) | 2020-08-14 | 2023-03-21 | Qualcomm Incorporated | Network latency fairness in multi-user gaming platforms |
WO2022036184A1 (en) * | 2020-08-14 | 2022-02-17 | Qualcomm Incorporated | Network latency fairness in multi-user gaming platforms |
US12132631B2 (en) | 2022-09-20 | 2024-10-29 | T-Mobile Usa, Inc. | On-device latency detection |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060135258A1 (en) | System, network entity, client and method for facilitating fairness in a multiplayer game | |
Avner et al. | Concurrent bandits and cognitive radio networks | |
US20060135259A1 (en) | System, game server, terminal, and method for game event notification in a multiplayer game | |
US20060136584A1 (en) | System, network entity, client, method and computer program product for managing a contact list | |
US20070060373A1 (en) | Data communication system and methods | |
US20060247053A1 (en) | System, game server, terminal, and computer program product for link point scaling in a multiplayer location-aware game | |
US11433301B2 (en) | Latency management in an event driven gaming network | |
Amiri et al. | An SDN controller for delay and jitter reduction in cloud gaming | |
US12113670B2 (en) | Network management | |
Majumder et al. | Mobile data offloading based on minority game theoretic framework | |
GB2580595A (en) | Network management | |
CN113728602B (en) | Competitor selection | |
Häsel | Rich Internet Architectures for Browser-Based Multiplayer Real-Time Games–Design and Implementation Issues of virtual-kicker. com | |
US20230246908A1 (en) | Information processing apparatus, information processing method, program, and information processing system | |
CN113475043B (en) | Network management | |
Palazzi | Interactive mobile gaming over heterogeneous networks | |
Palazzi | Fast and fair event delivery in large scale online games over heterogeneous networks. | |
Palazzi | Fast online gaming over wireless networks | |
WO2013188900A1 (en) | Validation of virtual entities of a multi-user application | |
GautheierDickey et al. | Low-Latency and Cheat-proof Event Ordering for Distributed Games | |
Palazzi | Fast and Fair Event Delivery in Large Scale Online Games over Heterogeneous Networks (Ph. D. thesis) | |
Maillé et al. | User strategy learning when pricing a RED buffer | |
GauthierDickey et al. | Neo: A low-latency and cheat-proof event ordering protocol for peer-to-peer games | |
Wellnitz | Interactive Latency-Sensitive Applications in Mobile Ad-hoc Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NOKIA CORPORATION, FINLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MAHESHWARI, SHASHIKANT;MANDYAM, GIRIDHAR;REEL/FRAME:015961/0872;SIGNING DATES FROM 20050307 TO 20050323 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |