Hi Clive! Speaking of latency, I’ve always wondered how things would work on that regard if, for example, a player from Spain and another one from New Zealand (I’ve chosen two countries in the antipodes of each other as the worst-case scenario) encounters each other. As you certainly know, a noticeable “natural” network lag is inevitable between both of them, being both so far away from each other. But SC will be supposed to bring everyone together in a single, coherent universe. So how will the network architecture handle cases like this?
Thx for your reply, and I appreciate your work in one of the most vital parts of the game :slightly_smiling_face:
That’s still an open question and what follows is therefore speculation on my part. We may end up doing things completely differently. But let’s speculate anyway because it’s fun to do…
My guess is we’ll first use server meshing to build regional shards before trying to build a single global instance and address the latency problem. Once server meshing is working well, we have a few options to explore. Obviously traditional network techniques such as lag compensation and client-side prediction will play a role. One of the benefits of using AWS for server hosting is that network communication between servers in different data centres uses Amazon’s CDN backbone, which has roughly 10% lower latencies than the public internet. We can explore having clients always connected to a server in their local region and those servers making the connection to servers in other regions. Since we control the servers we can trust what they tell each other, so hit detection when you shoot at a player in another region could be performed by your local server. This is a “favor the shooter” approach and might result in the classic problem of players feeling like they’ve been shot quite a while after getting behind cover. Another option that may reduce that problem is to use server meshing to put clients on a server that is near their geographic middle. For example, if one player is in Los Angeles and another is in Wilmslow then they may both be connected to a server in New York. Of course we can also investigate combining the above ideas. But first we need to build server meshing before we can try out these ideas.