Deterministic RTS Multiplayer with Replication


I am wondering how to approach an RTS multiplayer game with Unreal Engine. FPS multiplayer games are usually non-deterministic, meaning that clients and server come up with different simulation results, which may then be corrected over time.

Correct me if I’m wrong but what I remember from RTS is that they have a deterministic approach to network synchronization. For example in Starcraft all player inputs are collected and then broadcasted to all players. Players wait for the inputs before they continue the simulation. If one of the players has a bad internet connection, the game would actually run slower because of this (for all players). However, this means that all clients have the exact same game and input state and the simulation will come up with identical results on each client. This is helpful, because pathfinding etc. might derive further and further if the simulation would not be deterministic.

So my questions are:

  1. Is the simluation in Unreal Engine deterministic (leaving replication aside)

  2. If the simulation is deterministic, is it possible with the Unreal Replication System to implement a deterministic RTS multiplayer? Or would I face desynchronization problems sooner or later, the death of any RTS multiplayer session.

If possible, what is a good point to start? Are any helpful documentation or tutorials available on this topic?

Thanks in advance

Any info will be appreciated, thanks :slight_smile: