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 PDF

Info

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
Application number
US11/015,253
Inventor
Shashikant Maheshwari
Giridhar Mandyam
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Oyj
Original Assignee
Nokia Oyj
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Priority to US11/015,253 priority Critical patent/US20060135258A1/en
Assigned to NOKIA CORPORATION reassignment NOKIA CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MANDYAM, GIRIDHAR, MAHESHWARI, SHASHIKANT
Publication of US20060135258A1 publication Critical patent/US20060135258A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/326Game play aspects of gaming systems
    • G07F17/3269Timing aspects of game play, e.g. blocking/halting the operation of a gaming machine
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3202Hardware aspects of a gaming system, e.g. components, construction, architecture thereof
    • G07F17/3223Architectural 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.

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

    FIELD OF THE INVENTION
  • 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.
  • BACKGROUND OF THE INVENTION
  • 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.
  • SUMMARY OF THE INVENTION
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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 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; 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.
  • DETAILED DESCRIPTION OF THE 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 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. 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 the Internet 20. In turn, 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. For example, as explained below, 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. 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 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. In a more typical embodiment, however, 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.
  • 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 the Internet 20. Like with the MSC 14, 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. 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 the mobile stations 10 to game servers 22, routing servers 24, personal computer (PC) systems 26 and/or game consoles 28 across the Internet 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 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. 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, 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. 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, 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. In this regard, 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, 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 of mobile 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, 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. 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 the mobile 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 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. 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 a keypad 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 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. 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 include volatile 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 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.
  • 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 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. Additionally or alternatively, for example, 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.
  • More particularly, as shown in FIG. 4, for example, 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. 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 routing servers 24 which, in turn, are coupled to the game servers 22. Thus, 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. 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 in FIG. 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 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). Reference is now drawn to FIGS. 5 and 6, which illustrate functional block diagram and method, respectively, facilitating fairness in a game. As shown in FIG. 5, then, 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. In this regard, 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.
  • 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 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.
  • As shown and described below, the game server 22 operates the time-delay module 80. It should be understood, however, that 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. 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 of clients 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 in FIG. 5 and block 84 of FIG. 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, and client 3 76 c has an RTT 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 in block 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 to RTT 2 of client 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 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. 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 in block 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 associated RTT 1=926.47 ms. In such an instance, the time-delay module can determine a delay 1 that substantially equals the difference of the effective RTT=1304.87 ms and RTT 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 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. 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 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.
  • 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 in block 88, 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. 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 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. 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 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.
  • 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 the game server 22 or the routing 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, the game server 22, or more particularly the game 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 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, 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, 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.
  • 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.
US11/015,253 2004-12-17 2004-12-17 System, network entity, client and method for facilitating fairness in a multiplayer game Abandoned US20060135258A1 (en)

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 (44)

* Cited by examiner, † Cited by third party
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
US7765266B2 (en) 2007-03-30 2010-07-27 Uranus International Limited Method, apparatus, system, medium, and signals for publishing content created during a communication
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
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

Citations (27)

* Cited by examiner, † Cited by third party
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

Patent Citations (30)

* Cited by examiner, † Cited by third party
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 (101)

* Cited by examiner, † Cited by third party
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
US7765266B2 (en) 2007-03-30 2010-07-27 Uranus International Limited Method, apparatus, system, medium, and signals for publishing content created during a communication
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
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
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
US10369462B2 (en) 2012-12-21 2019-08-06 Microsoft Technology Licensing, Llc Client side processing of game controller input
US9526980B2 (en) 2012-12-21 2016-12-27 Microsoft Technology Licensing, Llc Client side processing of game controller input
US9717982B2 (en) 2012-12-21 2017-08-01 Microsoft Technology Licensing, Llc Client rendering of latency sensitive game features
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
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
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
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
US20150209670A1 (en) * 2014-01-30 2015-07-30 Gree, Inc. Game management method, game management system, and game management program
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
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
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
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
US10722788B2 (en) * 2017-10-25 2020-07-28 Allied Esports International, Inc. Systems and methods for managing latency in networked competitive multiplayer gaming
US20190118084A1 (en) * 2017-10-25 2019-04-25 Allied Esports International, Inc. Systems and Methods for Managing Latency in Networked Competitive Multiplayer Gaming
US11190820B2 (en) * 2018-06-01 2021-11-30 At&T Intellectual Property I, L.P. Field of view prediction in live panoramic video streaming
US11641499B2 (en) 2018-06-01 2023-05-02 At&T Intellectual Property I, L.P. Field of view prediction in live panoramic video streaming
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
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
GB2580595A (en) * 2019-01-14 2020-07-29 Fraenkel Wright Ltd 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

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
US20060247053A1 (en) System, game server, terminal, and computer program product for link point scaling in a multiplayer location-aware game
US20060136584A1 (en) System, network entity, client, method and computer program product for managing a contact list
US20070060373A1 (en) Data communication system and methods
JP2008543474A (en) System and method for providing interoperability of independently operable electronic games
US11951391B2 (en) Latency management in an event driven gaming network
Amiri et al. An SDN controller for delay and jitter reduction in cloud gaming
Saldana et al. QoE and latency issues in networked games
US20220150118A1 (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.
WO2013188900A1 (en) Validation of virtual entities of a multi-user application
Palazzi Fast online gaming over wireless networks
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

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