11. Multiple servers, each replicating the complete game
states, serve clients from different geographical
regions. Each client connects to one server.
11
12. Servers may be connected with high speed,
provisioned networked, reducing synchronization
latency among the servers.
12
13. Updates from a client are sent to its server, which then
forwards it to other servers. The servers then forward
the updates to all relevant clients.
13
14. P2P-style state synchronization
among servers is easier, since
1. servers can be trusted
2. clocks can be synchronized
3. IP multicast may be used
4. higher availability
5. shorter delay
14
27. let
AOI(p) be the set of players relevant to p
S(p) be the server of player p
d(i,j) be the delay between i and j
P(s) be the set of players assigned to server s
27
28. let
L(p) be the average latency experience by p,
considering only relevant players
28
29. want to find S() such that
maximum L(p) is minimized over all p
subjected to
maximum P(s) is constrained for all s
29
59. I will simplify the representation to a grid of cells with
number indicating the number of players (or load
incurred on server) in this cell.
2 0 3
3 1 4
1 1 0
59
69. Problem: neighboring cells are not adjacent. There
are 8 “borders” in this solution. Communication
overhead is not considered.
2 0 3
3 1 4
1 1 0
69
70. Let’s define a cost function for
assigning a cell c to a server S:
cost(c,S) =
computation load increase in S +
communication load increase in S
70
71. For simplicity,
CPU load = players,
newtork load = borders
71
85. A general method for finding
good solution in an optimization
problem (meta-heuristic)
85
86. At every step, move towards a nearby,
better configuration probabilistically
(allowing a move towards worse
solution, prevent stuck at local
minimum)
86
99. Overloaded server sheds load until it’s load is below a
safe level. The new load of a previously lightly loaded
should remain below safe level.
overload
safe
light
99
105. Green server is overloaded.
Shed some load to neighbors.
0 1 1
2 0 3
1 1 4
5 3 0
105
106. If still not enough, look at the list of
lightly loaded servers maintained.
Pick the least load and shed to it.
106
107. Green server is still overloaded.
Neighbor (purple) server has hit the safe threshold.
0 1 1
2 0 3
1 1 4
5 3 0
107
108. Shed load to remote server.
But this could lead to high communication cost.
0 1 1
2 0 3
1 1 4
5 3 0
108
109. When communication overhead is too high,
isolated cells can be migrated to a nearby
server, “merging” with neighboring regions to
form contiguous regions, as long as the load
remains below the safe threshold.
0 1 1
2 0 3
1 1 0
1 3 0
109