Network Synchronization

Summary

The purpose of this project is to implement several network synchronization techniques and evaluate their effect in terms of how jerky the simulation looks to the player (smoothness) and how accurately the client’s state matches the server (accuracy).

To accomplish this, I have created a simple, deterministic simulation of a top-down shooter. By recording input for the “game” once, then playing it back using different synchronization techniques, I can collect more directly comparable data. In addition, I have both clients and the server running in one process with a simulated network API connecting them to allow for a 0 ms latency control group. The simulated network also includes the ability to simulate varying levels of latency and packet loss, so I can also test how those affect each technique.

At this point, I am beginning to implement the synchronization techniques themselves.

Technical Details

Programming Languages: C#

Engines and APIs: XNA