Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS20060135258 A1
Publication typeApplication
Application numberUS 11/015,253
Publication dateJun 22, 2006
Filing dateDec 17, 2004
Priority dateDec 17, 2004
Publication number015253, 11015253, US 2006/0135258 A1, US 2006/135258 A1, US 20060135258 A1, US 20060135258A1, US 2006135258 A1, US 2006135258A1, US-A1-20060135258, US-A1-2006135258, US2006/0135258A1, US2006/135258A1, US20060135258 A1, US20060135258A1, US2006135258 A1, US2006135258A1
InventorsShashikant Maheshwari, Giridhar Mandyam
Original AssigneeNokia Corporation
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
System, network entity, client and method for facilitating fairness in a multiplayer game
US 20060135258 A1
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.
Images(5)
Previous page
Next page
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.
Description
    FIELD OF THE INVENTION
  • [0001]
    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
  • [0002]
    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.
  • [0003]
    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.
  • [0004]
    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.
  • [0005]
    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.
  • [0006]
    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.
  • [0007]
    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
  • [0008]
    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.
  • [0009]
    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.
  • [0010]
    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.
  • [0011]
    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.
  • [0012]
    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
  • [0013]
    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:
  • [0014]
    FIG. 1 is a block diagram of one type of terminal and system that would benefit from embodiments of the present invention;
  • [0015]
    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;
  • [0016]
    FIG. 3 is a schematic block diagram more particularly illustrating a mobile station in accordance with one embodiment of the present invention;
  • [0017]
    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;
  • [0018]
    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
  • [0019]
    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
  • [0020]
    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.
  • [0021]
    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.
  • [0022]
    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.
  • [0023]
    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.
  • [0024]
    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.
  • [0025]
    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).
  • [0026]
    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.
  • [0027]
    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.
  • [0028]
    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.
  • [0029]
    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.
  • [0030]
    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.
  • [0031]
    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.
  • [0032]
    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).
  • [0033]
    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).
  • [0034]
    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.
  • [0035]
    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.
  • [0036]
    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.
  • [0037]
    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.
  • [0038]
    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.
  • [0039]
    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.
  • [0040]
    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.
  • [0041]
    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.
  • [0042]
    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.
  • [0043]
    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.
  • [0044]
    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.
  • [0045]
    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.
  • [0046]
    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.
  • [0047]
    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.
  • [0048]
    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.
  • [0049]
    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.
  • [0050]
    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.
  • [0051]
    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).
  • [0052]
    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.
  • [0053]
    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.
  • [0054]
    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.
  • [0055]
    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.
  • [0056]
    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).
  • [0057]
    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.
  • [0058]
    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.
Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US5695400 *Jan 30, 1996Dec 9, 1997Boxer Jam ProductionsMethod of managing multi-player game playing over a network
US5775996 *Aug 28, 1996Jul 7, 1998Mpath Interactive, Inc.Method and apparatus for synchronizing the execution of multiple video game systems in a networked environment
US5820463 *Feb 6, 1996Oct 13, 1998Bell Atlantic Network Services, Inc.Method and apparatus for multi-player gaming over a network
US5838909 *May 23, 1996Nov 17, 1998Sandcastle, Inc.Reducing latency when synchronizing access to a multi-user database over a network
US5899810 *Jan 24, 1997May 4, 1999Kaon Interactive CorporationDistributed game architecture to overcome system latency
US5974442 *Dec 31, 1996Oct 26, 1999Intel CorporationCommunication technique for interactive applications over a network with delays
US6006254 *Aug 29, 1997Dec 21, 1999Mitsubishi 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
US6009458 *May 9, 1996Dec 28, 19993Do CompanyNetworked computer game system with persistent playing objects
US6012096 *Apr 23, 1998Jan 4, 2000Microsoft CorporationMethod and system for peer-to-peer network latency measurement
US6025801 *Oct 1, 1996Feb 15, 2000Philips Electronics North America CorporationVideo game with local updates mitigates latency effects in wide area network
US6042477 *Dec 12, 1996Mar 28, 2000Addink; Dale H.Method of and system for minimizing the effects of time latency in multiplayer electronic games played on interconnected computers
US6304902 *Mar 13, 2000Oct 16, 2001HearmeLatency server and matchmaker
US6345297 *May 26, 2000Feb 5, 2002HearmeNetwork match maker
US6415317 *Oct 1, 1999Jul 2, 2002Joshua Michael YelonSoftware system for reducing the appearance of latency in a multi-user environment
US6475090 *Mar 29, 2001Nov 5, 2002Koninklijke Philips Electronics N.V.Compensating for network latency in a multi-player game
US6524189 *Jul 9, 1999Feb 25, 2003Nokia CorporationMulti-player game system using mobile telephone and game unit
US6527641 *Sep 24, 1999Mar 4, 2003Nokia CorporationSystem for profiling mobile station activity in a predictive command wireless game system
US6554707 *Sep 24, 1999Apr 29, 2003Nokia CorporationInteractive voice, wireless game system using predictive command input
US6579184 *Dec 10, 1999Jun 17, 2003Nokia CorporationMulti-player game system
US6595853 *Sep 8, 2000Jul 22, 2003Aruze CorporationGame 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
US6674995 *Dec 22, 1999Jan 6, 2004Nokia CorporationElectronically augmented multiplayer sporting game with virtual ball passed by infrared apparatus
US6769989 *Apr 4, 2003Aug 3, 2004Nintendo Of America Inc.Home video game system with hard disk drive and internet access capability
US6793580 *Mar 13, 2003Sep 21, 2004Nokia CorporationApplying a user profile in a virtual space
US6817947 *Mar 28, 2003Nov 16, 2004Nokia CorporationMulti-player game system
US20020049087 *Sep 7, 2001Apr 25, 2002Teruyuki UshiroInformation processing apparatus, information processing method, and recording medium
US20030060285 *Aug 27, 2002Mar 27, 2003Eisaburo ItakuraNetwork game system, network game server, and network game terminal
US20040014527 *Jul 19, 2002Jan 22, 2004Orr Scott StewartSystem and method to integrate digital characters across multiple interactive games
US20040152519 *Jan 22, 2004Aug 5, 2004Andy WangMulti-player game employing dynamic re-sequencing
US20040162803 *Feb 15, 2003Aug 19, 2004Rhoads Jeffrey S.Method and system to enable a single sports software application's use across multiple sports
US20070270225 *May 29, 2007Nov 22, 2007Netamin Communication Corp.Multi-player game employing dynamic re-sequencing
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US7627632Nov 13, 2006Dec 1, 2009Microsoft CorporationReducing bandwidth requirements for peer-to-peer gaming based on importance of remote objects to a local player
US7747725Jun 29, 2010Audinate Pty. LimitedMethod for transporting digital media
US7765261Mar 30, 2007Jul 27, 2010Uranus International LimitedMethod, apparatus, system, medium and signals for supporting a multiple-party communication on a plurality of computer servers
US7765266Mar 30, 2007Jul 27, 2010Uranus International LimitedMethod, apparatus, system, medium, and signals for publishing content created during a communication
US7803054Mar 31, 2004Sep 28, 2010Microsoft CorporationMulti-vehicle cross-network coordination
US7843848 *Oct 31, 2006Nov 30, 2010Freescale Semiconductor, Inc.Methods and apparatus for round trip time measurements
US7895311 *Nov 17, 2006Feb 22, 2011Arthur W. JuengerContent distribution systems
US7925601Oct 19, 2009Apr 12, 2011Microsoft CorporationReducing 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
US7950046Mar 30, 2007May 24, 2011Uranus International LimitedMethod, apparatus, system, medium, and signals for intercepting a multiple-party communication
US7978696May 17, 2007Jul 12, 2011Audinate Pty LimitedRedundant media packet streams
US8005939Aug 23, 2011Audinate Pty LimitedMethod for transporting digital media
US8060887Mar 30, 2007Nov 15, 2011Uranus International LimitedMethod, apparatus, system, and medium for supporting multiple-party communications
US8171152May 12, 2008May 1, 2012Audinate Pty LimitedSystems, methods and computer-readable media for configuring receiver latency
US8222037 *May 12, 2009Jul 17, 2012Performance Designed Products LlcSystem and method for a local gamer network
US8411679Apr 2, 2013Audinate Pty LimitedRedundant media packet streams
US8478856Jul 28, 2011Jul 2, 2013Audinate Pty LimitedMethod for transporting digital media
US8506404 *May 7, 2007Aug 13, 2013Samsung Electronics Co., Ltd.Wireless gaming method and wireless gaming-enabled mobile terminal
US8627211Mar 30, 2007Jan 7, 2014Uranus International LimitedMethod, apparatus, system, medium, and signals for supporting pointer display in a multiple-party communication
US8678929 *Aug 1, 2008Mar 25, 2014Electronics Arts Inc.Client-side prediction of a local game object to reduce apparent network lag of multiplayer simulations
US8702505Mar 30, 2007Apr 22, 2014Uranus International LimitedMethod, apparatus, system, medium, and signals for supporting game piece movement in a multiple-party communication
US8852000 *Jul 11, 2012Oct 7, 2014Kabam, Inc.Using crowd-sourcing to verify the accuracy of results of client-side determinations
US8913612Mar 4, 2013Dec 16, 2014Audinate Pty LimitedRedundant media packet streams
US8966109Mar 21, 2012Feb 24, 2015Audinate Pty LimitedSystems, methods and computer-readable media for configuring receiver latency
US8977677 *Dec 1, 2010Mar 10, 2015Microsoft Technology Licensing, LlcThrottling usage of resources
US9003009May 31, 2013Apr 7, 2015Audinate Pty LimitedMethods for transporting digital media
US9122524Jan 8, 2013Sep 1, 2015Microsoft Technology Licensing, LlcIdentifying and throttling tasks based on task interactivity
US9178927May 17, 2007Nov 3, 2015Audinate Pty LimitedTransmitting and receiving media packet streams
US20060046852 *Aug 26, 2004Mar 2, 2006Rowe Richard EWide area gaming system
US20060280182 *Apr 21, 2006Dec 14, 2006National Ict Australia LimitedMethod for transporting digital media
US20080101253 *Oct 31, 2006May 1, 2008Freescale Semiconductor, Inc.Methods and apparatus for round trip time measurements
US20080243994 *Mar 30, 2007Oct 2, 2008Alexander KropivnyMethod, Apparatus, System, and Medium for Supporting Multiple-Party Communications
US20080280676 *May 7, 2007Nov 13, 2008Samsung Electronics Co. Ltd.Wireless gaming method and wireless gaming-enabled mobile terminal
US20090274149 *May 17, 2007Nov 5, 2009Audinate Pty LimitedRedundant Media Packet Streams
US20100035695 *Feb 11, 2010Microsoft CorporationReducing bandwidth requirements for peer-to-peer gaming based on importance of remote objects to a local player
US20100046383 *May 17, 2007Feb 25, 2010Audinate Pty LimitedTransmitting and Receiving Media Packet Streams
US20100228881 *May 14, 2010Sep 9, 2010Audinate Pty LimitedMethod for transporting digital media
US20100235486 *May 12, 2008Sep 16, 2010Andrew WhiteSystems, methods and computer-readable media for configuring receiver latency
US20100292006 *Nov 18, 2010Scott Michael TerrellSystem and method for a local gamer network
US20120143992 *Dec 1, 2010Jun 7, 2012Microsoft CorporationThrottling Usage of Resources
US20130060960 *Mar 7, 2013International Business Machines CorporationOptimizing software applications in a network
US20130196773 *Apr 27, 2012Aug 1, 2013Camron LockebyLocation Services Game Engine
US20140071978 *Sep 10, 2012Mar 13, 2014Paul V. HubnerVoice energy collison back-off
US20140089384 *Sep 27, 2012Mar 27, 2014International Business Machines CorporationServer resource selection on a network for a mobile client
WO2008104221A1 *Feb 27, 2007Sep 4, 2008Ericsson Telefon Ab L MMethod and apparatus for use in multiplayer server-based gaming
WO2008138047A1 *May 12, 2008Nov 20, 2008Audinate Pty LtdSystems, methods and computer-readable media for configuring receiver latency
WO2009115653A1 *Dec 31, 2008Sep 24, 2009SokozSynchronisation methods and devices in a communication network for real-time auction sale applications
Classifications
U.S. Classification463/42
International ClassificationA63F9/24
Cooperative ClassificationG07F17/3269, G07F17/32, G07F17/3223
European ClassificationG07F17/32, G07F17/32M6, G07F17/32C6
Legal Events
DateCodeEventDescription
Mar 25, 2005ASAssignment
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