Dead Reckoning Irwin Chiu Hau Nicolas Ng Man Sun
Overview Introduction Solution Modelling Progress Conclusion
Introduction Online Multiplayer Games Multiple players/computers connected via the InternetMultiple players/computers connected via the Internet e.g. Quake, Half Lifee.g. Quake, Half Life Characteristics: Players moving around rapidlyPlayers moving around rapidly Powerful computersPowerful computers Limited network capacityLimited network capacity
Introduction Desired features: Minimize network trafficMinimize network traffic Accurately portray other players’ movementAccurately portray other players’ movement Dilemma Without frequent updates the local model does not know the current position of remote players.Without frequent updates the local model does not know the current position of remote players.
Overview Introduction Solution Modelling Progress Conclusion
Solution Dead reckoning Approximate current position based on past observationsApproximate current position based on past observations Ship sailing in the ocean example Use the stars to determine locationUse the stars to determine location What to do when it’s cloudyWhat to do when it’s cloudy
Overview Introduction Solution Modelling Progress Conclusion
Modeling Each player is an atomic DEV Moves at regular intervals independently of other playersMoves at regular intervals independently of other players Receives (external) updates about other players’ position at undetermined times.Receives (external) updates about other players’ position at undetermined times. Each player “holds” a local Dead Reckoning Model (also an atomic DEV) of other players. The network is also an atomic DEV Models latency.Models latency.
Modeling Coupled DEVs [player1] [DRM p1] [network] [player2] [DRM p2] [DRM p1]
Modeling Zero order approximation with updates at regular intervals
Global View time position Modeling Zero order approximation with error threshold error threshold
Modeling First order approximation with error threshold
Overview Introduction Solution Modelling Progress Conclusion
Progress What have we done? Object Sim ADEVSObject Sim ADEVS Dead Reckoning ADEVSDead Reckoning ADEVS Network ADEVSNetwork ADEVS Object SimDRMNetworkDRM Computer 1Computer 2
Object Sim ADEVS Diagonal Movement At time 0 to 2:At time 0 to 2: v_x, v_y = 2 At time 3 to 4:At time 3 to 4: v_x, v_y = 4 At time 5 to 6:At time 5 to 6: v_x, v_y = 6v_x, v_y = 6
Object Sim + DR Diagonal Movement At time 0 to 2:At time 0 to 2: v_x, v_y = 2 At time 3 to 4:At time 3 to 4: v_x, v_y = 4 At time 5 to 6:At time 5 to 6: v_x, v_y = 6v_x, v_y = 6 send
Dead Reckoning ADEVS Input From NetworkFrom Network From high fidelity (or real) modelFrom high fidelity (or real) model Output To Graphics:High Refresh RateTo Graphics:High Refresh Rate To Network:SelectiveTo Network:Selective DR ADEVS IN To Network To Graphics
Network ADEVS Broadcast Delayed Network Network IN Port N Port 1 …
DR System Our current DR System Good results for Graphics view, DR view and Network UpdatesGraphics view, DR view and Network Updates Network Tx DRM OutIN Object Sim Graphics
Plan / Futurework Player 1 Network DRM 1 IN Object Sim DRM 2 Graphics DRM N Graphics … Player 2 Player N
Overview Introduction Solution Modelling Progress Conclusion
Conclusion Dead Reckoning = Approximation Advantages: Reduced network trafficReduced network traffic Fluid animation in between updatesFluid animation in between updates Dead Reckoning is used in almost every distributed environment.
References PythonDEVS Python “Parallel And Distributed Simulation Systems”, R. M. Fujimoto, PhD Georgia Institute of Technology. Chapter 7.5 – Dead Reckoning