330 likes | 482 Views
LSVE: Tips and Tricks. Manuel Oliveira Computer Science Department University College London. Contents. Issues of Scale Area Of Interest Management (AOIM) Packet Manipulation Level Of Detail Temporal Distortion Interaction Techniques Hacks: Time Bucket Processing Discussion.
E N D
LSVE: Tips and Tricks Manuel Oliveira Computer Science Department University College London
Contents • Issues of Scale • Area Of Interest Management (AOIM) • Packet Manipulation • Level Of Detail • Temporal Distortion • Interaction Techniques • Hacks: Time Bucket Processing • Discussion
AOIM: Overview Entity 1 Flow 1 Group 1 Host 1 Entity 2 Flow 2 Entity 3 Flow n Group n Host n Entity n Application Network Naming Mapping Forwarding
Just give each client enough to fool the user • Interest: visibility, awareness, functional, … • Network and computational constraints AOIM: Goals • A user is NOT an omniscient being • A user is NOT interested in every event • A client is NOT able to process everything
AOIM: Types • Static Grid • Hierarchical Grid • Locales • Aura • Region • Filtering • Nearest Neighbours
AOIM: Static Grid • 1 Cell = 1 Group • Hexagon regular shape • Tied into the grid – static • Send current cell • Receive neighbours • Any architecture (distributed) • NPSNET (DIS)
AOIM: Hierarchal Grid • 1 Cell = 1 Group • Square cells • Send current cell • Receive current cell • Any architecture (distributed) • Exceeds threshold, expand Threshold = 5
AOIM: Locales • 1 locale = 1 group • Locale is arbitrary shape • Locale placement is static • Associated transform matrix • Any architecture (distributed) • MERL
AOIM: Locales • 1 locale = 1 group • Locale is arbitrary shape • Locale placement is static • Associated transform matrix • Any architecture (distributed) • MERL
AOIM: Locales • 1 locale = 1 group • Locale is arbitrary shape • Locale placement is static • Associated transform matrix • Any architecture (distributed) • MERL
AOIM: Aura Aura • Nimbus, Aura, Focus • Auras intersect = group • Focus, Nimbus = awareness • Aura Manager • Client/Server • MASSIVE Focus Nimbus
A - Update CreateUpdateRegion AOIM: Region (High Level Architecture) Federate A Routing Space
B - Update Federate B CreateObject AOIM: Region (High Level Architecture) Federate A Routing Space A - Update
C - Subscribe Federate C SubscribeRegion AOIM: Region (High Level Architecture) Federate A Federate B Routing Space A - Update B - Update
B A C AOIM: Filtering • Line of sight • Entity visible = group • Client/Server • RING
AOIM: Nearest Neighbours • 1 group = quorum • Computational/Network constraints • Client/Server • Community Place
AOIM: Nearest Neighbours • 1 group = quorum • Computational/Network constraints • Client/Server • Community Place
Packet Manipulation: Compression • Bandwidth requirements is determined by amount of data sent/received per second • Approaches to reduce data: • Compress the data payload of each packet – RLE • Compress the data flow – MPEG style • Compression gateways between bandwidth bottlenecks
Packet Manipulation: Aggregation • Approaches: • Wait for n packets before sending a single packet with them • Use a timer, when expires send packets available • Hybrid • Models: • Host based • Server based: Aggregation done on broader scale = faster
Packet Manipulation: Aggregation • Problems: • Increased latency • Retransmission becomes a problem • Outdated information • Inefficient
Distance function Layered nimbus Level Of Detail • Integrate distance • 1 group = 1 send rate • Layered multicast
Interaction Techniques: Ghosts Host A Host B Request Lock Wait Lock Lock Resolved
Temporal Distortion: Ping Pong Render Ball at remote time (delay) Render Ball at current time
Hacks: Time Bucket Processing Client B Client A
Hacks: Time Bucket Processing Client B Client A
Hacks: Time Bucket Processing Client B Client A There is X ms discrepancy between clients Impossible to eliminate latency
Artificial Latency Current Bucket Hacks: Time Bucket Processing Local Player Time Bucket Time Period Bucket Processing <= Bucket Time Period Introduce Artificial Latency (AL): 4 time periods
Event T0 AL Hacks: Time Bucket Processing Local Player Time Remote Player
Transmission Delay Synchronization Delay Hacks: Time Bucket Processing Local Player Time Event T0 Remote Player