US6042477A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method of and system for minimizing the effects of time latency in multiplayer electronic games played on interconnected computers
Assignee: Gula Consulting LLC
•
Filing: 1996-12-12
•
Granted: 2000-03-28
•
Expires: 2016-12-12
Abstract
Abstract A method of minimizing the effects of time latency in multiplayer electronic games played over a network including a plurality of computers. Each computer is associated with a game object and each computer includes an internal clock. Each computer periodically transmits a packet containing a packet time and time dependent attribute information for its associated game object. The receiving computer uses the packet time to render the game object in the game environment based on the time the packet was sent.
Inventors
- 👤 Dale H. Addink
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-04 20:03
CPC Classifications
H; H04; H04L; H04L9/00; H04L9/40; A63F13/12; A; A63; A63F; A63F13/00; A63F13/30; A63F13/33; A63F13/335; A63F13/35; A63F13/358; G; G06; G06F; G06F1/00; G06F1/04; G06F1/14; G06F3/00; G06F3/01; G06F3/03; G06F3/033; G06F3/038; A63F13/50; A63F13/52; A63F13/80; A63F13/803; A63F2300/00; A63F2300/40; A63F2300/407; A63F2300/50; A63F2300/53; A63F2300/534; A63F2300/80; A63F2300/8017; H04L67/00; H04L67/01; H04L67/131
Claims Analysis
Total Claims: 27
Claim 1
Independent Claim
193 words
A method of rendering an object in a multiplayer electronic game virtual space such that time latency effects are reduced, wherein the object is controlled by a first one of a plurality of user computers in communication with each other across a communications network, wherein each user computer executes a game loop that renders objects within the virtual space, and wherein game loop execution on the plurality of user computers is asynchronous, the method comprising the steps of: receiving at a second user computer a data packet from the first user computer via the communications network, wherein the data packet comprises: a packet time that is based on a time when the data packet was transmitted from the first user computer; and information for rendering the object within the virtual space; interrupting asynchronous game loop execution at the second user computer to associate a time relative to an internal clock of the second user computer with the received data packet; and resuming asynchronous game loop execution to render the object on the second user computer in the virtual space with time dependent attributes that correspond to a current time during each game loop.
Claim 2
Independent Claim
193 words
A method of rendering an object in a multiplayer electronic game virtual space such that time latency effects are reduced, wherein the object is controlled by a first one of a plurality of user computers in communication with each other across a communications network, wherein each user computer executes a game loop that renders objects within the virtual space, and wherein game loop execution on the plurality of user computers is asynchronous, the method comprising the steps of: receiving at a second user computer a data packet from the first user computer via the communications network, wherein the data packet comprises: a packet time that is based on a time when the data packet was transmitted from the first user computer; and information for rendering the object within the virtual space; interrupting asynchronous game loop execution at the second user computer to associate a time relative to an internal clock of the second user computer with the received data packet; and resuming asynchronous game loop execution to render the object on the second user computer in the virtual space with time dependent attributes that correspond to a current time during each game loop.
Claim 3
Dependent Claim
49 words
A method according to claim 1 wherein the information for rendering the object within the virtual space comprises at least one of position information for the object within the virtual space at the packet time and motion information for the object within the virtual space at the packet time.
Claim 4
Dependent Claim
61 words
A method according to claim 2 wherein the step of resuming asynchronous game loop execution to render the object comprises rendering the object within the virtual space with at least one of the position information for the object within the virtual space at the packet time and the motion information for the object within the virtual space at the packet time.
Claim 5
Dependent Claim
69 words
A method according to claim 1 further comprising the following steps which precede the step of receiving a data packet from the first user computer: transmitting the data packet from the first user computer to a server computer via the communications network; and transmitting the data packet from the server computer to selected ones of the plurality of user computers identified by the server computer via the communications network.
Claim 6
Independent Claim
223 words
A method of rendering an object in a multiplayer electronic game virtual space such that time latency effects are reduced, wherein the object is controlled by a first one of a plurality of user computers in communication with each other across a communications network, wherein each user computer executes a game loop that renders objects within the virtual space, and wherein game loop execution on the plurality of user computers is asynchronous, the method comprising the steps of: receiving at a second user computer a data packet from the first user computer via the communications network, wherein the data packet comprises: an identifier of the object; a packet time that is based on a time when the data packet was transmitted from the first user computer; and position information for the object within the virtual space at the packet time; interrupting asynchronous game loop execution at the second user computer; adding a base clock offset value to the packet time of the received data packet, wherein the base clock offset value corresponds to differences between the packet time and received time of data packets received previously by the second user computer; and resuming asynchronous game loop execution on the second user computer to render the object in the virtual space at a position that corresponds to a current time during each game loop.
Claim 7
Independent Claim
223 words
A method of rendering an object in a multiplayer electronic game virtual space such that time latency effects are reduced, wherein the object is controlled by a first one of a plurality of user computers in communication with each other across a communications network, wherein each user computer executes a game loop that renders objects within the virtual space, and wherein game loop execution on the plurality of user computers is asynchronous, the method comprising the steps of: receiving at a second user computer a data packet from the first user computer via the communications network, wherein the data packet comprises: an identifier of the object; a packet time that is based on a time when the data packet was transmitted from the first user computer; and position information for the object within the virtual space at the packet time; interrupting asynchronous game loop execution at the second user computer; adding a base clock offset value to the packet time of the received data packet, wherein the base clock offset value corresponds to differences between the packet time and received time of data packets received previously by the second user computer; and resuming asynchronous game loop execution on the second user computer to render the object in the virtual space at a position that corresponds to a current time during each game loop.
Claim 8
Dependent Claim
69 words
A method according to claim 5 further comprising the following steps which precede the step of receiving a data packet from the first user computer: transmitting the data packet from the first user computer to a server computer via the communications network; and transmitting the data packet from the server computer to selected ones of the plurality of user computers identified by the server computer via the communications network.
Claim 9
Dependent Claim
25 words
A method according to claim 5 wherein the data packet also comprises motion information for the object within the virtual space at the packet time.
Claim 10
Dependent Claim
47 words
A method according to claim 7 wherein the step of resuming asynchronous game loop execution to render the object in the virtual space further comprises advancing the object through the virtual space according to the data packet motion information at a current time during each game loop.
Claim 11
Dependent Claim
36 words
A method according to claim 5 wherein an initial value of the base clock offset corresponds to a difference between the packet time and a time the data packet was received by the second user computer.
Claim 12
Dependent Claim
129 words
A method according to claim 5 wherein the base clock offset value is determined by the following steps that are executed by the second computer: determining a new clock offset value, wherein the new clock offset value corresponds to a difference between the packet time and a time the data packet was received by the second user computer; making a predetermined incremental adjustment to the base clock offset value if the new clock offset value does not equal the base clock offset value; and setting the base clock offset value equal to the new clock offset value if a predetermined count is exceeded by a number of consecutive occasions on which the new clock offset value and base clock offset value differ by more than a predetermined threshold amount.
Claim 13
Dependent Claim
73 words
A method according to claim 10 wherein the step of adjusting the base clock offset value by a predetermined amount comprises the steps of: adding a predetermined value to the base clock offset value if the new clock offset value is greater than the base clock offset value; and subtracting a predetermined value from the base clock offset value if the new clock offset value is less than the base clock offset value.
Claim 14
Independent Claim
393 words
A method of rendering an object in a multiplayer electronic game virtual space such that time latency effects are reduced, wherein the object is controlled by a first one of a plurality of user computers in communication with each other across a communications network, wherein each user computer executes a game loop that renders objects within the virtual space, and wherein game loop execution on the plurality of user computers is asynchronous, the method comprising the steps of: transmitting a data packet from the first user computer to a server computer via the communications network, wherein the data packet comprises: an identifier of the object; a packet time that is based on an internal clock value of the first user computer at a time when the data packet was transmitted; and position information for the object within the virtual space at the packet time; transmitting the data packet from the server computer to selected ones of the plurality of user computers identified by the server computer via the communications network; receiving at a second user computer the data packet from the server computer via the communications network; interrupting asynchronous game loop execution at the second user computer; adding a base clock offset value to the packet time of the received data packet, wherein the base clock offset value corresponds to differences between the packet time and received time of data packets received previously by the second user computer, wherein the base clock offset value is determined by the following steps that are executed by the second computer: determining a new clock offset value, wherein the new clock offset value corresponds to a difference between the packet time and a time the data packet was received by the second user computer; making a predetermined incremental adjustment to the base clock offset value if the new clock offset value does not equal the base clock offset value; and setting the base clock offset value equal to the new clock offset value if a predetermined count is exceeded by a number of consecutive occasions on which the new clock offset value and base clock offset value differ by more than a predetermined threshold amount; and resuming asynchronous game loop execution on the second user computer to render the object in the virtual space at a position that corresponds to a current time during each game loop.
Claim 15
Independent Claim
393 words
A method of rendering an object in a multiplayer electronic game virtual space such that time latency effects are reduced, wherein the object is controlled by a first one of a plurality of user computers in communication with each other across a communications network, wherein each user computer executes a game loop that renders objects within the virtual space, and wherein game loop execution on the plurality of user computers is asynchronous, the method comprising the steps of: transmitting a data packet from the first user computer to a server computer via the communications network, wherein the data packet comprises: an identifier of the object; a packet time that is based on an internal clock value of the first user computer at a time when the data packet was transmitted; and position information for the object within the virtual space at the packet time; transmitting the data packet from the server computer to selected ones of the plurality of user computers identified by the server computer via the communications network; receiving at a second user computer the data packet from the server computer via the communications network; interrupting asynchronous game loop execution at the second user computer; adding a base clock offset value to the packet time of the received data packet, wherein the base clock offset value corresponds to differences between the packet time and received time of data packets received previously by the second user computer, wherein the base clock offset value is determined by the following steps that are executed by the second computer: determining a new clock offset value, wherein the new clock offset value corresponds to a difference between the packet time and a time the data packet was received by the second user computer; making a predetermined incremental adjustment to the base clock offset value if the new clock offset value does not equal the base clock offset value; and setting the base clock offset value equal to the new clock offset value if a predetermined count is exceeded by a number of consecutive occasions on which the new clock offset value and base clock offset value differ by more than a predetermined threshold amount; and resuming asynchronous game loop execution on the second user computer to render the object in the virtual space at a position that corresponds to a current time during each game loop.
Claim 16
Dependent Claim
25 words
A method according to claim 12 wherein the data packet also comprises motion information for the object within the virtual space at the packet time.
Claim 17
Dependent Claim
47 words
A method according to claim 13 wherein the step of resuming asynchronous game loop execution to render the object in the virtual space further comprises advancing the object through the virtual space according to the data packet motion information at a current time during each game loop.
Claim 18
Dependent Claim
36 words
A method according to claim 12 wherein an initial value of the base clock offset corresponds to a difference between the packet time and a time the data packet was received by the second user computer.
Claim 19
Dependent Claim
73 words
A method according to claim 12 wherein the step of adjusting the base clock offset value by a predetermined amount comprises the steps of: adding a predetermined value to the base clock offset value if the new clock offset value is greater than the base clock offset value; and subtracting a predetermined value from the base clock offset value if the new clock offset value is less than the base clock offset value.
Claim 20
Dependent Claim
245 words
A multi-player electronic game system, comprising: a plurality of user computers in communication with each other via a communications network, wherein each user computer comprises: means for executing a game loop that renders objects from other user computers within a virtual space, wherein game loop execution on the plurality of user computers is asynchronous; means for controlling a respective game object; means for transmitting a data packet associated with each game object controlled by the user computer to other user computers, wherein each data packet comprises: an identifier of a respective object controlled by the user computer; a packet time that is based on an internal clock value of the user computer transmitting the data packet at a time when the data packet was transmitted; and position information for the respective object within the virtual space at the packet time; means for receiving a data packet from other user computers; means for interrupting asynchronous game loop execution in response to receiving a data packet from another user computer; means for adding a base clock offset value to the packet time of the received data packet, wherein the base clock offset value corresponds to differences between the packet time and received time of data packets received previously by the user computer; and means for resuming asynchronous game loop execution to render an object associated with the received data packet in the virtual space at a position that corresponds to a current time during each game loop.
Claim 21
Dependent Claim
245 words
A multi-player electronic game system, comprising: a plurality of user computers in communication with each other via a communications network, wherein each user computer comprises: means for executing a game loop that renders objects from other user computers within a virtual space, wherein game loop execution on the plurality of user computers is asynchronous; means for controlling a respective game object; means for transmitting a data packet associated with each game object controlled by the user computer to other user computers, wherein each data packet comprises: an identifier of a respective object controlled by the user computer; a packet time that is based on an internal clock value of the user computer transmitting the data packet at a time when the data packet was transmitted; and position information for the respective object within the virtual space at the packet time; means for receiving a data packet from other user computers; means for interrupting asynchronous game loop execution in response to receiving a data packet from another user computer; means for adding a base clock offset value to the packet time of the received data packet, wherein the base clock offset value corresponds to differences between the packet time and received time of data packets received previously by the user computer; and means for resuming asynchronous game loop execution to render an object associated with the received data packet in the virtual space at a position that corresponds to a current time during each game loop.
Claim 22
Dependent Claim
57 words
A system according to claim 17 further comprising: a server computer in communication with each of the user computers via the communications network, wherein the server comprises: means for receiving data packets from each of the user computers; and means for transmitting data packets to selected ones of the plurality of user computers via the communications network.
Claim 23
Dependent Claim
26 words
A system according to claim 17 wherein each data packet also comprises motion information for a respective object within the virtual space at the packet time.
Claim 24
Dependent Claim
49 words
A system according to claim 19 wherein the means for resuming asynchronous game loop execution to render an object in the virtual space further comprises means for advancing the object through the virtual space according to the data packet motion information at a current time during each game loop.
Claim 25
Dependent Claim
35 words
A system according to claim 17 wherein an initial value of the base clock offset corresponds to a difference between the packet time and a time the data packet was received by a user computer.
Claim 26
Dependent Claim
129 words
A system according to claim 17 wherein each user computer comprises means for determining a base clock offset value, comprising: means for determining a new clock offset value, wherein the new clock offset value corresponds to a difference between the packet time and a time the data packet was received by the user computer; means for making a predetermined incremental adjustment to the base clock offset value if the new clock offset value does not equal the base clock offset value; and means for setting the base clock offset value equal to the new clock offset value if a predetermined count is exceeded by a number of consecutive occasions on which the new clock offset value and base clock offset value differ by more than a predetermined threshold amount.
Claim 27
Dependent Claim
74 words
A system according to claim 22 wherein the means for adjusting the base clock offset value by a predetermined amount comprises: means for adding a predetermined value to the base clock offset value if the new clock offset value is greater than the base clock offset value; and means for subtracting a predetermined value from the base clock offset value if the new clock offset value is less than the base clock offset value.
References Cited (Backward Citations)
US5185603A
Cited
US5350176A
Cited
US5685775A
Cited
US5775996A
Cited
US5618045A
Cited
US5751721A
Cited
US5805871A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-03-28 | 2003-09-27 | 2004-03-28 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-03-28 | 2007-09-27 | 2008-03-28 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-03-28 | 2011-09-27 | 2012-03-28 | $7700.00 | Window Closed / Lapsed |