Title: Virtual World Architecture II
1Virtual World Architecture II
2Styles of Networking Architecture
- Peer to Peer Client - Server
client
client
client
client
server
client
client
client
client
client
client
3Broadcast
- Peer to Peer Client - Server
client
client
client
client
server
client
client
client
client
client
client
4Broadcast
- Peer to Peer Client - Server
client
client
client
client
server
client
client
client
client
client
client
5Direct Message
- Peer to Peer Client - Server
client
client
client
client
server
client
client
client
client
client
client
6Direct Message
- Peer to Peer Client - Server
client
client
client
client
server
client
client
client
client
client
client
7Peer to Peer Pros/Cons
- Good when
- 2 x latency btw client and server too high for
interactivity - No one trusted to be central relay
- Bad when
- Server has far more bandwidth than others
- peer-peer links cannot be established everywhere
- one slow peer-peer link slows down progression of
simulation
8Client/Server Pros/Cons
- Good when
- Server faster or better distributed than clients
- Clients behind firewalls
- Insulation
- Bad when
- Many peer to peer messages must be relayed
- Untrusted server
- Round trip time too high for application
9Examples
- Peer to Peer
- Starcraft other RTSs
- Croquet virtual world
- Gnutella
- Client/Server
- Xwing vs Tie fighter
- Doom and Quake
- Unreal Tournament
- Half Life / Garrys Mod
- World of Warcraft MMORPGs
10Another way to slice the cake
- Full Disclosure
- All input events relayed to all clients
- Each client simulates the world using inputs from
all players - Need-to-know
- All input events sent to server
- Server updates each client with only information
relevant to that client
11In practice who uses what
Full Disclosure Need-to-know
Peer to Peer Star Craft, Croquet Gnutella
Client/Server X-wing vs Tie Fighter Doom, Quake, Unreal,Half life, World of Warcraft
12In practice who uses what
Full Disclosure Need-to-know
Peer to Peer Star Craft, Croquet Gnutella
Client/Server X-wing vs Tie Fighter Doom, Quake, Unreal,Half life, World of Warcraft
13Star Craft
14How Star Craft works
- Full Disclosure
- Each clients sends mouse clicks and timestamp to
all other clients - If everyone acknowledges receipt in sufficient
time, action performed - Otherwise game halted until all can perform
action - AI players are deterministic and react to world
state - Peer to Peer (8 players)
- Once Star Craft game started, all clients are
equal - If someone is cheating, they only cheat themselves
15In practice who uses what
Full Disclosure Need-to-know
Peer to Peer Star Craft, Croquet Gnutella
Client/Server X-wing vs Tie Fighter Doom, Quake, Unreal,Half life, World of Warcraft
16Croquet
17How Croquet works
- Full disclosure
- Clients only send input events to each other
- Complex worlds with few actors are simulated in
full by each client - Peer to peer (8-16 peers per room)
- Save round trip time by sending data directly to
each other
18In practice who uses what
Full Disclosure Need-to-know
Peer to Peer Star Craft, Croquet Gnutella
Client/Server X-wing vs Tie Fighter Doom, Quake, Unreal,Half life, World of Warcraft
19X-wing vs Tie Fighter
20How X-wing vs Tie Fighter works
- Full disclosure
- Clients only send input events to each other
- Most (95) of the craft are AI
- simulated on each client
- Client/Server (8 players)
- If one player acts as host
- Can reduce burden of other players
- Slightly increase burden of host
- Broadband server can host 7 modem players
21Full Disclosure Pros/Cons
- Good when
- objects predictable w/ full game state gt
unpredictable objects - No one is trusted with game state
- Total transparency/information awareness
- Bad when
- num unpredictable objects large
- one slow link slows down updates for everyone
- Full world state can lead to cheating
- Star Craft map hack
22In practice who uses what
Full Disclosure Need-to-know
Peer to Peer Star Craft, Croquet Gnutella
Client/Server X-wing vs Tie Fighter Doom, Quake, Unreal,Half life, World of Warcraft
23Gnutella
24How Gnutella Works
- Need To Know
- Only file requests are relayed around
- Full sharing data of network is not available
- Peer to Peer (30,000 peers)
- No central server to demand file list from (like
napster had) - If a host is inaccessible a pull command can be
sent - Malicious (RIAA) hosts can disrupt network
effectiveness by relaying false world state
25In practice who uses what
Full Disclosure Need-to-know
Peer to Peer Star Craft, Croquet Gnutella
Client/Server X-wing vs Tie Fighter Doom, Quake, Unreal,Half life, World of Warcraft
26Doom First Person Shooters
27How First Person Shooters Work
- Need-to-Know
- Portal/Room based maps
- Only people in your or adjacent rooms relevant
- Server only updates relevant clients
- Event timestamps still important
- Keep dead folks from shooting
- Client/Server (32 players)
- Host has high bandwidth, can make relevancy
decisions easier - Central connecting point for late-joiners
28In practice who uses what
Full Disclosure Need-to-know
Peer to Peer Star Craft, Croquet Gnutella
Client/Server X-wing vs Tie Fighter Doom, Quake, Unreal,Half life, World of Warcraft
29World of Warcraft
30How MMORPGs work
- Need-to-know
- Impossible to update everyone about goings on in
a large world - Designers wish to keep some information secret
- Treasure locations
- Monster health
- Locations of players
- Client/Server (300 players)
- Trusted server(s) with high bandwidth
- Everyone connects to a server, some anonymity
provided
31Need-to-know Pros/Cons
- Good when
- unpredictable objects too large for all clients
to keep up with changes - Server faster or better distributed than clients
- clients behind firewalls
- Bad when
- Untrusted server/relay
- Round trip time too high for application
32Analogy to government types
- Full Disclosure Democracy
- Pure democracy -- town hall style
- Everyone talks to everyone else
- Education critical
- Everyone should be informed of all actions
- Otherwise can be duped by clients
- Check balance system possible, but not easy
- Need-To-Know Dictatorship
- ministry of information
- Keeps true world state
- Broadcasts only needed info
- Clients trust the server for world state
33Managing large commercial systems
- Divide servers into shards
client
client
client
client
US West
US East
client
client
client
client
client
client
34Managing large commercial systems
- Divide shards into instances
client
client
US West
client
client
Instance server
client
35Managing large commercial systems
- Many-to-many serverclient relationships
client
client
client
client
server
server
server
client
client
server
server
client
36Massive Virtual WorldsCurrent Efforts
- Shards
- World of Warcraft
- Instances as well
- Everquest
- Unified World
- MUDs
- EVE
- Second life
37Dead Reckoning
Sent
0024
38Where Dead Reckoning fails
Path
Sent
0024
39How to patch dead reckoning
path
Rewind Simulation To 25
Sent
0024
40Conclusion
- Many solution exist to put folks together in a
virtual world - Usually tailored to the specification of the
world - No one size fits all solution
- Networking architectures are only going to get
more complex in the future