March 2003
- MMORPG/MMOG P2P design Steven J. Owens
- Dinner, Conference and BBQ J C Lawrence
- Dinner, Conference and BBQ J C Lawrence
- Wow, Jessica's working on Ac2? Chris
- Small Worlds, GDC talk Koster, Raph
- Small Worlds, GDC talk Peter Tyson
- Better Game Design through Data Mining, MDC talk David Kennerly
- MUD-Dev conference and dinner report J C Lawrence
- MUD-Dev conference and dinner report J C Lawrence
- MUD-Dev conference and dinner report Smith, David {Lynchburg}
- Fighting Lag Elia Morling
- Fighting Lag Nicolai Hansen
- Fighting Lag Daniel.Harman@barclayscapital.com
- Fighting Lag Ian Macintosh
- Fighting Lag Daniel.Harman@barclayscapital.com
- Fighting Lag Travis Nixon
- Fighting Lag Nicolai Hansen
- Fighting Lag Vladimir Vukicevic
- Fighting Lag Jo Dillon
- Fighting Lag Mike Shaver
- Fighting Lag Bruce Mitchener
- Fighting Lag Brian Hook
- Fighting Lag Paul Schwanz
- Fighting Lag Elia Morling
- Fighting Lag Ian Macintosh
- Fighting Lag ceo
- Fighting Lag arch stanton
- Fighting Lag Tom Hubina
At 01:56 AM 3/12/2003, Elia Morling wrote:
> I'm asking for general input and wise suggestions. There must be
> huge experience in this area. How have others solved this problem?
> Are there any articles or books on the topic?
I think your biggest problem is that you're trying to use a fixed
time step. This definitely won't work.
From what I remember, client/server synchronization can be done
with something like the following:
There is a single global time that all events are relative to. This
time is the server's clock. All of the clients attempt to
synchronize to the master clock. You can look into the NTP protocol
to get some ideas about how to do this kind of synchronization, but
just sending an absolute time value to the client periodically is
probably sufficient.
All events coming from the server are stamped with the time the
event happened. When a client receives the event, it can either
start playing it immediately, or it can extrapolate from the time
the event occurred and draw the result in the "current" location.
For example, someone casts a spell and on the client you get some
nifty particles. It's fine that particles start when the event is
received since it is merely cosmetic. Another example would be
someone firing an arrow. When the "fire arrow" event is received the
client can interpolate the proper arrow position from the time the
arrow was launched and draw it at the correct position for "now".
Other things you can (and should) do is predict where you think
things will be between updates. If you include velocity vectors with
positions you can have the entities continue along those vectors
until a new bit of information is received (most likely with time
limits for disconnects). This will help make things smoother.
To further smooth things out, you can attempt to blend from your
predicted position to the real position.
When a client generates events to be sent to the server you can
either trust the client to use the right time (in which case it
stamps it's event with what it thinks the server time is before it
sends it out) or you can say that the event doesn't happen until it
reaches the server. In most cases, I'd go for the latter approach as
it helps reduce client trust issues (always a dangerous thing).
You could get more info about this stuff on the algorithms list
(check the archives .. there's been a lot of threads over the years
on this and similar topics):
https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list
Tom - Fighting Lag Steven J. Owens
- Fighting Lag Amanda Walker
- A Founding Father Forgotten Scott Miller
- A Founding Father Forgotten Travis Casey
- A Founding Father Forgotten Richard Aihoshi aka Jonric
- A Founding Father Forgotten Travis Casey
- A Founding Father Forgotten Adam Dray
- A Founding Father Forgotten Travis Casey
- A Founding Father Forgotten Adam Dray
- A Founding Father Forgotten Michael Tresca
- A Founding Father Forgotten Caliban Tiresias Darklock
- A Founding Father Forgotten John Robert Arras
- A Founding Father Forgotten Michael Tresca
- A Founding Father Forgotten Matt Mihaly
- A Founding Father Forgotten Michael Chui
- A Founding Father Forgotten Matt Mihaly
- A Founding Father Forgotten Michael Tresca
- A Founding Father Forgotten Sean Kelly
- A Founding Father Forgotten Michael Tresca
- A Founding Father Forgotten Caliban Tiresias Darklock
- A Founding Father Forgotten Michael Tresca
- A Founding Father Forgotten Paul Schwanz
- A Founding Father Forgotten John Robert Arras
- A Founding Father Forgotten Thomas Tomiczek
- A Founding Father Forgotten Paul Schwanz
- A Founding Father Forgotten Ryan Arthur
- A Founding Father Forgotten Threshold RPG
- A Founding Father Forgotten David Kennerly
- A Founding Father Forgotten eck@wizards.com
- A Founding Father Forgotten Ben Hoyt
- A Founding Father Forgotten Paul Schwanz
- A Founding Father Forgotten Bad Mojo
- A Founding Father Forgotten Matt Mihaly
- MDC and talk John Robert Arras
- More on Small Worlds Koster, Raph
- More on Small Worlds Ted L. Chen
- More on Small Worlds Lee Sheldon
- More on Small Worlds Jeff Cole
- More on Small Worlds Boyle, Paul
- More on Small Worlds - Simulation of behviours in populations ceo
- BIZ: MMP subscriber numbers Daniel James
- BIZ: MMP subscriber numbers Diamonds
- BIZ: MMP subscriber numbers Chris Holko
- BIZ: MMP subscriber numbers szii@sziisoft.com
- BIZ: MMP subscriber numbers Rudy Fink
- BIZ: MMP subscriber numbers Threshold RPG
- BIZ: MMP subscriber numbers Damion Schubert
- BIZ: MMP subscriber numbers Chris
- BIZ: MMP subscriber numbers Lee Sheldon
- BIZ: MMP subscriber numbers Baar - Lord of the Seven Suns
- BIZ: MMP subscriber numbers Christopher Allen
- BIZ: MMP subscriber numbers Scott Jennings
- BIZ: MMP subscriber numbers Threshold RPG
- BIZ: MMP subscriber numbers Lee Sheldon
- Massively Multiplayer Game Development (Game Developmen t Series) Daniel.Harman@barclayscapital.com
- Massively Multiplayer Game Development (Game Developmen t Series) Jeremy Noetzelman
- Massively Multiplayer Game Development (Game Develo pment Series) Koster, Raph
- Massively Multiplayer Game Development (Game Development Series) Jessica Mulligan
- Massively Multiplayer Game Development (Game Development Series) Damion Schubert
- Massively Multiplayer Game Development (Game Developmen t Series) Ted Milker
- Winnable MMO apollyon
- Winnable MMO Edward Glowacki
- Winnable MMO Vincent Archer
- Winnable MMO kat-Zygfryd
- Winnable MMO Miroslav Silovic
- Winnable MMO eric
- Winnable MMO John Robert Arras
- Winnable MMO Diamonds
- Winnable MMO Threshold RPG
- Winnable MMO Vincent Archer
- Winnable MMO Diamonds
- Winnable MMO Chris Nielsen
- Winnable MMO Sara Jensen
- Winnable MMO Chris Holko
- Winnable MMO Chris Mancil
- Winnable MMO szii@sziisoft.com
- Winnable MMO Mike Shaver
- Winnable MMO Threshold RPG
- Winnable MMO shren
- Winnable MMO Threshold RPG
- Winnable MMO Matt Mihaly
- Winnable MMO Talies the Wanderer
- Winnable MMO Steven J. Owens
- Winnable MMO John Buehler
- Winnable MMO Larry Dunlap
- Winnable MMO Jonathon Duerig
- Winnable MMO ceo