Network Architecture Best Practice

Godot Version

4.2

Question

Hey community,

A quick question about networking architecture in top-down action games (Battlerite, League of Legends, etc).

I’m new to gamedev but from what I gathered physics is not deterministic in general, so I have to synchronize all positions of all physics-affected nodes from the server periodically.

My question is, are there more optimized strategies to sync clients? For bullets it’s probably unavoidable. What about navigation agents? Navigation is kinda deterministic, but they could be bump into each other, which would be handled by physics, right? The game could have hundreds of characters at once. There has to be a more scalable way, I guess.

Thank you!

Central authority, independent physics. Host is sending position rotation linear/angular velocity at a fixed rate. Clients get synced but also run there physics. If an object deviates to far from reality you snap it back to lastest authority state. Clients also only send input date but can move local character for lag compensation. (Client side predictions)

Four-five articles that are easy to digest, that explains the evolution of networked games.

2 Likes

Got it, thank you!

Great articles. Now I understand much better. I guess the exact solution will depend very much on the game specifics and constraints.

I think I should start simple and see where the state starts to diverge on clients before just syncing everything.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.