Difference between revisions of "Dev:Network Games Related Work"
Line 49: | Line 49: | ||
= TECHNIQUES = | = TECHNIQUES = | ||
==Consistency Management Techniques== | ==Consistency Management Techniques== | ||
+ | * Lockstep Synchronization | ||
+ | * Imposed Global Consistency | ||
+ | * Delayed Global Consistency | ||
+ | * Time Warp | ||
+ | * Predictive Time Management | ||
+ | * Concurrency | ||
+ | |||
==Information Management Techniques== | ==Information Management Techniques== | ||
+ | * Dead Reckoning | ||
+ | * Relevance Filtering | ||
+ | * Data Compressino | ||
+ | * Packet Bundling/Aggregation | ||
Revision as of 00:18, 13 February 2009
Contents
Terminology
- DIA = Distributed Interactive Applications
- used by among others Delaney - Presence 2007
- Includes any of the following:
- DIS = Distributed Interactive Simulations
- Used by the military
- NVE = Networked Virtual Environment
- Singhal & Zyda 99 <insert reference>
- DIM = Distributed Interactive Media
- Mauve01 <insert reference>
- NIE = Networked Interactive Environment
- Capps, McDowell, Zyda 01 <insert reference>
- DVE = Distributed Virtual Environment
- Stytz96 <insert reference>
- CVE = Collaborative Virtual Environment
- DSE = Distributed Synthetic Environment
- SVE = Shared Virtual Environment
- CSCW = Computer Supported Cooperative Work
Consistency is the degree to which users share the same view of the application state. It includes Delaney - Presence 2007
- Synchronization: Time of events relative to other events are the same across the DIA
- Causality: cause/effect ordering is maintained
- Concurrency: Simultaneous execution of events by different users on same entity
Responsiveness is the time taken for the system to register and respond to a user event. Delaney - Presence 2007
Fidelity is the degree to which the virtual representations are similar to their real-world representations. Delaney - Presence 2007 & IEEE95
ISSUES IN SUPPORTING DIAs
Consistency vs Performance
With infinite bandwidth and 0 network latency, a DIA could remain completely consistent and yet be extremely responsive (i.e. change state rapidly). In the presence of network latency, however, the system will require time to reach a new consistent state when a change in state is required. When a state change is requested, the system can either delay its response to reach a consistent state or process the change without guaranteeing complete consistency.
Fidelity is sacrificed either way since fidelity represents how closely the simulation matches its real-world representation. Inconsistencies mean the simulation does not accurately match it's real-world representation. Decreased responsiveness also decreases fidelity since real events occur instantaneously.
To manage this tradeoff, DIAs use Consistency Management Techniques.
Scalability
Scaling a DIA will primarily require more bandwidth from the network. The exact architecture will determine how the bandwidth requirements increase with the number of users. To reduce bandwidth, DIAs employ a variety of Information Management Techniques.
TECHNIQUES
Consistency Management Techniques
- Lockstep Synchronization
- Imposed Global Consistency
- Delayed Global Consistency
- Time Warp
- Predictive Time Management
- Concurrency
Information Management Techniques
- Dead Reckoning
- Relevance Filtering
- Data Compressino
- Packet Bundling/Aggregation
Unlike other distributed systems, however, they can trade consistency for responsiveness and fidelity.
DIAs can be broken into 3-different classes:Smed - TCCS 2002
- Military Simulations
- NVEs
- MCGs (Multiplayer Computer Games)
I don't like this categorization. I think it's more appropriate to break it into DIAs that require tight consistency vs those that require high-performance and fidelity.
With 0 latency and infinite bandwidth then a DIA could be as dynamic (fast-paced state changes) as you want but would still be 100% consistent. In reality, we trade some consistency for performance. We also employ techniques to hide effects of latency and minimize bandwidth.
Consistency Maintenance Mechanisms are used to:
- Hide latency
- Maintain some level of consistency