31. A node knows (m)x(n-1) neighbors
-- m groups, each group with n-1
entries.
31
32. Each node i keeps a table
next(k,d) = address of node j such that
1. i and j share prefix of length k
2. (k+1)-th digit of j is d
3. node j is the “physically closest” match
32
62. Knutsson’s Idea: divide game world into regions
and assign a region coordinator to keep the states
in each region.
mana=9, life=3
mana=5, life=1
:
62
63. When a player needs to read/write the state of an
object, it contacts the coordinator.
player X’s
mana=10
63
64. Hash regions and nodes into the same ID space. The node
whose ID is closest to the ID of a region becomes the
coordinator.
Game Map DHT ID space
64
65. The coordinator is likely to be not from the same
region it is coordinating, reducing the possibility of
cheating.
Game Map DHT ID space
65
66. Once the update message reaches the coordinator,
the coordinator informs all subscribers to the region
through a multicast tree using Scribe.
nodes
interested
in region
edges in
multicast
tree
66
85. Without a trusted central server:
1. how to order events?
2. how to prevent cheat?
3. how to do interest management?
4. who should store the states?
85
86. Many interesting proposals, but no perfect
solution.
1. Increase message overhead
2. Increase latency
3. No conflict resolution
4. Cheating
5. Robustness is hard
86
87. Many tricks we learnt from pure P2P
architecture is useful if we have a
cluster of servers for games
“P2P among servers”
87