Advertisement

Is Dead Reckoning applied in commercial games? If so, what are the variations?

Started by December 20, 2020 02:47 AM
9 comments, last by frob 3 years, 10 months ago

Hi all,

Thanks for reading this post.

I am doing research on Dead Reckoning algorithms. But I find the number of publications to be low. To name a few of state-of-the-art algorithms in the literature: Neuro-Reckoning, Ant-Reckoning, Time Series Dead Reckoning, Path-Assisted Dead Reckoning, etc. Other sources include patents from individuals but lacking experimental results to support their design.

My question is, how do game practitioners use Dead Reckoning in the industry? As best I can search, there are also two talks in GDC Vault related to Dead Reckoning: Replicating Chaos, 8 Frames in 16 ms. They are useful information to give me a glimpse of the practice. But do you have more information, like how do large company use Dead Reckoning? Do they share their design in talks or white papers? Is it an important topic for them?

Appreciative of your efforts ?

@cyfex , is Dead Reckoning specific to networked multiplayer games? Is that why you posted the question in the Networking/Multiplayer forum?

-- Tom Sloper -- sloperama.com

Advertisement

cyfex said:
As best I can search…

This sounds like client-side prediction to me.

🙂🙂🙂🙂🙂<←The tone posse, ready for action.

@Tom Sloper Yes, Dead Reckoning is an algorithm to reduce data transmission within the network. I am new to this forum actually. If it is the wrong place to post, please instruct me the right one … Thank you!

@fleabay Yes, it is. The basic idea of dead reckoning is to replace data transmission with client-side prediction. How much bandwidth you can save depends on how strong your prediction is. Is here the right place to ask this question? I am quite new to this site… Would be so appreciated if someone can direct me the right place to ask questions on this topic…

cyfex said:
Yes, Dead Reckoning is an algorithm to reduce data transmission within the network.

Then you're in the right place. This is the Networking/Multiplayer forum. Good luck!

-- Tom Sloper -- sloperama.com

Advertisement

Dead Reckoning is the simplest way of extrapolating data; it typically means “linear extrapolation based on time.”

If you look for multiplayer game writing about “client extrapolation” and maybe “client interpolation” you will likely have better results – although it's a pretty simple algorithm, so there's not TONS of writing about it.

One piece of code that does client extrapolation is the Entity Position Interpolation Code: https://github.com/jwatte/EPIC

enum Bool { True, False, FileNotFound };

I've had to fix bugs in this in the Second Life viewer. Read my “Merrily we Bump Along” note.

Short version: if you have to hide 50ms of lag, simple linear extrapolation will work. If you have to hide 1 second of lag, anything you try will sometimes suck. Within that range, cleverness can get acceptable results out to a few hundred milliseconds.

You might find this interesting. Watch the whole thing if needed… Should start at 22:21 for netcode.

🙂🙂🙂🙂🙂<←The tone posse, ready for action.

Details depend on the game and implementation.

For games running as a viewer to a shared world, a common approach is to either interpolate or pop into the right place. This is common in Unreal Engine games where mispredicted items will slide into place. When the engine gives a solution for free, it is tempting to use.

For games running more as autonomous worlds with linked events, games can run commands or animations to get back in sync. For several projects I have worked on, the characters were effectively given “move to" commands and would pathfind and reroute if close enough, and pop with an effect into place if too far away.

You should keep an open mind, another solution may be more appropriate for your game's specific needs.

This topic is closed to new replies.

Advertisement