It’s from an email exchange I had with one of the War3 developers last year where I asked how the system handles Versus and Custom games.
I’m not sure what you mean by linear. An example of how it works is:
Two players queue in Versus. The system scans all the data centers around the world to determine the latencies of each player to each center. (Just to simplify the example, we’ll say there are three data centers.)
Player 1 to data center…
- #1 = 350ms
- #2 = 90ms
- #3 = 120ms
Player 2 to data center…
- #1 = 130ms
- #2 = 145ms
- #3 = 210ms
So, for both players combined, data center…
- #1 = 480ms
- #2 = 235ms
- #3 = 330ms
… so the game would be hosted on a proxy in data center #2 as it has the lowest combined latency even though it’s not necessarily the best option for both players. As you can imagine, there’s much more of a chance for bad latencies the more players there are to add together (2v2, 3v3, 4v4).
On a side note, Custom games are handled differently. The host gets a proxy with the lowest latency. From there, everyone else just joins the host’s proxy regardless of what their individual latencies are. (Which is why there are latency bars next to the games to help people pick the best game to join.)