97
Hybrid Architecture for Networked Games 1

Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Hybrid Architecturefor Networked Games

1

Page 2: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

singlecentralized

server

completelydecentralized

2

Page 3: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Mirrored ServersArchitecture

3

Page 4: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Multiple servers, each replicating the complete game states, serve clients from different geographical regions.Each client connects to one server.

4

Page 5: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Servers may be connected with high speed, provisioned networked, reducing synchronization latency among the servers.

5

Page 6: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

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.

6

Page 7: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

P2P-style state synchronization among servers is easier, since 1. servers can be trusted2. clocks can be synchronized3. IP multicast may be used4. higher availability

7

Page 8: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Pros and Cons of Mirrored Servers?

8

Page 9: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Advantage: No more single point of failures -- client can use another replicated servers if their nearest server fails.

9

Page 10: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Advantage: Each server can handle more clients (if networking bandwidth is the bottleneck)

10

Page 11: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Advantage: Lower latency from client to its server

11

Page 12: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Cons: Latency to update other players increases due to one additional forwarding.

12

Page 13: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Cons: Scalability is still limited since every server maintains states of the whole game world (if computation is the bottleneck).

13

Page 14: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Zoned ServersArchitecture

14

Page 15: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Divide the game world into independent regions. One server is in-charged of one region.

15

Page 16: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

A client connects to the server serving its current region, and is handed-off to another server when it moves to another region.

16

Page 17: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Servers seldom communicate with each other.

17

Page 18: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Updates from a client are sent to its server, which then forwards it to all relevant clients in the same region.

18

Page 19: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

19

Page 20: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Pros and Cons of Zoned Servers?

20

Page 21: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Advantage: Each server can handle more clients (if computation is a bottleneck)

21

Page 22: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Cons: Single point of failure for each region.

(But we can have replicated servers for each region)

22

Page 23: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Cons: Severely constraints the design of games.

23

Page 24: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Supporting Seamless Game Worlds

24

Page 25: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Divide the game world into regions. One server is in-charged of one region.

25

Page 26: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Player may move around the world seamlessly

26

Page 27: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

A client may see events and objects from neighboring regions.

27

Page 28: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Events occurring in one region may affectobjects in another region.

28

Page 29: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Advantage: Partitioning is transparent to the players. No artificial constraints in game design.

29

Page 30: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Advantage: We can now resize the regions to load-balance among the servers, improving server utilization.

30

Page 31: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

A client connects to the server serving its current region, and is handed-off to another server when it moves to another region.

31

Page 32: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Server communicates with each other to transfer states, update states etc.

32

Page 33: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Updates from a client are sent to its server, which then forwards it to all relevant clients in the same region or neighboring regions.

33

Page 34: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

or

34

Page 35: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

A client connects to the servers serving its current region and regions it subscribes to. Updates from neighboring server are sent directly.

35

Page 36: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Q: How to partition the game world?

36

Page 37: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Ideally: each server should handle the same

number of players

37

Page 38: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Ideally: minimize communications between servers

38

Page 39: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Idea: divide the game world into small cells and assign group of

cells to servers.

39

Page 40: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

40

Page 41: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

I will simplify the representation to a grid of cells with number indicating the number of players (or loadincurred on server) in this cell.

41

Page 42: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Centralized approach to partitioning

42

Page 43: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Balanced Deployment Algorithm

by Bart De Vleeschauwer et al

43

Page 44: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Idea: sort the cells and assign them one-by-one, highest load first, to the servers to minimize

the maximum server load

44

Page 45: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

Suppose we have only two servers (blue and red).

45

Page 46: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

Blue’s load = 4 Red’s load = 0

46

Page 47: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

Blue’s load = 4 Red’s load = 3

47

Page 48: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

Blue’s load = 4 Red’s load = 6

48

Page 49: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

Blue’s load = 6 Red’s load = 6

49

Page 50: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

Blue’s load = 8 Red’s load = 7

50

Page 51: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

Problem: neighboring cells are not adjacent. There are 8 “borders” in this solution. Communication

overhead is not considered.

51

Page 52: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

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

52

Page 53: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

For simplicity, CPU load = players,

newtork load = borders

53

Page 54: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Clustered Deployment Algorithm

by Bart De Vleeschauwer et al

54

Page 55: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Start with each cell as one cluster

55

Page 56: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Repeatedly merge two adjacent clusters with least overhead until

number of clusters equals to number of servers.

56

Page 57: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

57

Page 58: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

Least cost = 1 + 3 = 4

58

Page 59: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

Least cost = 2 + 3 = 5

59

Page 60: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

Least cost = 1 + 5 = 6

60

Page 61: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

Least cost = 3 + 5 = 8

61

Page 62: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

62

Page 63: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Problem: Just a heuristic -- not optimal (the optimization problem is NP-complete)

63

Page 64: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Problem: Last few steps involve heavily loaded cells and can create uneven deployment.

64

Page 65: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

We can tweak this heuristic in many ways to improve it, but it’s

still a heuristic.

65

Page 66: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Simulated Annealing by Bart De Vleeschauwer et al

66

Page 67: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

A general method for finding good solution in an optimization

problem (meta-heuristic)

67

Page 68: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

At every step, move towards a nearby, better configuration probabilistically (allowing a move towards worse solution, prevent stuck at local minimum)

68

Page 69: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

cost

config

69

Page 70: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Start with a solution from a heuristic.

70

Page 71: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Move to a nearby config:swap cells with an adjacent

server, or move cell from one server to another

71

Page 72: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Is it a better solution?If so, keep it as current solution

with some probability.

72

Page 73: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

3 1 4

011

73

Page 74: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Experimental results show that Simulated Annealing works best

among the methods.

74

Page 75: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Disadvantages of centralized approach

75

Page 76: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Expensive to compute a good solution

76

Page 77: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

How frequent should the world be repartitioned?

77

Page 78: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Localized World Partitioning

78

Page 79: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Idea: Only repartition locally if a server is overloaded. Look for a

lightly loaded server to shed some load to.

79

Page 80: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

overload

safe

light

80

Page 81: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

overload

safe

light

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.

81

Page 82: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

l + o - s < sl < 2s - o

82

Page 83: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Who to shed to?

83

Page 84: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Minimize overhead: try to shed to as few neighboring server as

possible

84

Page 85: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Migrate cells to neighboring servers that are not overloaded

85

Page 86: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

If still not enough, look at the list of lightly loaded servers maintained. Pick the least load and shed to it.

86

Page 87: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Shed remaining load to remote servers

87

Page 88: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

1 1 4

035

0 1 1

Overload = 10, Safe = 7, Light = 4

88

Page 89: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

1 1 4

035

0 1 1

Shed load to neighbor first

89

Page 90: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

1 1 4

035

0 1 1

Shed load to non-neighboring server

90

Page 91: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

1 1 4

035

0 1 1

But this could lead to high communication overhead

91

Page 92: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

2 0 3

1 1 0

031

0 1 1

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.

92

Page 93: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Evaluation

93

Page 94: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

Compare 5 schemes using a simulated games

94

Page 95: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

1. spread - “balanced deployment”2. always shed to lightest server3. static 4. locality with merging5. locality without merging

95

Page 96: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

locality with merge

locality without merge

96

Page 97: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers

You Are Here

• CS4344

• Client/Server Architecture

• Peer-to-Peer Architecture

• Hybrid

• Mirrored servers

• Zoned servers

97