Network synchronization is the act of making sure that all involved parties have the same knowledge or information about the relevant “game world” or whatever data is to be synchronized. The concept of synchronization is easy to understand, but the techniques to perform it, and especially for real-time applications (since they usually involve user perception), are not.
There are several concepts related to this, including Server-Client and Peer-to-Peer models.
If you don’t know what sockets or TCP/UDP are, you could dive into the following pages before trying to follow the blog:
As for the techniques of synchronization that I try to experiment with throughout this project we’ve got the following:
One thing to note is that when I mention “static” updates, I mean just using the most recent data, without using any specific technique. So far the most tested techniques are the static and Extrapolation updates.