rule

MV-4474 Virtual Environment Network and Software Architectures (3-2) Syllabus

April 5, 2002

MV-4474 Virtual Environment Network and Software Architectures (3-2) This course covers the design and implementation of network and software architectures for real-time, interactive 3D virtual environments (VEs). Network architecture topics include a taxonomy for networked virtual environments, distributed interactive simulation protocols (DIS and HLA), virtual reality modeling language (VRML), agent-based network protocols (Java/Telescript), proposed solutions for large-scale networked virtual environments (area of interest managers and object brokers), multicast backbone tools and developments, and virtual reality transfer protocol proposals. Software architecture topics include representative software architectures for VEs (NPSNET, DIVE, MASSIVE, ...), commercial toolkits for VE development (WorldToolKit, Division's dvs, Performer, ...), lag in multiprocessor virtual environments, and the HCI implications on VE network and software architectures. PREREQUISITE: MV-4473 or the consent of the instructor.

Course Logistics

The lectures in this course follow the Singhal/Zyda text from chapter 1 through chapter 9. Each student is expected to develop a programming project showing their knowledge of networked virtual environments. That project must be approved by the instructor. An in-class presentation on that project is due near the end of the quarter. Students are required to turn in Powerpoint versions of their presentation slides. A Powerpoint template provided by the instructor must be used.

Networked Virtual Environments in 90 Minutes!

Presentation

Course Powerpoint Slides

Part 0 - Syllabus

Part 1 - Chapter 1

Part 2 - Chapter 2

Part 3 - Chapter 3

Part 3 - Winsock

Part 4 - Chapter 4

Part 5 - Chapter 5

Part 6 - Chapter 6

Part 6 - Collision Detection

Part 7 - Chapter 7

Part 8 Chapters 8 & 9

Reading List:

Sandeep Singhal & Michael Zyda "Networked Virtual Environments - Design and Implementation", ACM Press 1999.

Networked Virtual Environments - Design and Implementation

By Sandeep Singhal and Michael Zyda

Contents

Preface
Acknowledgments

Chapter One - Promises and Challenges of Networked Virtual Environments 1

What Is a Networked Virtual Environment? 1
Graphics Engines and Displays 4
Control and Communication Devices 5
Processing Systems 6
Data Network 7
Challenges in Net-VE Design and Development 9
Network Bandwidth 9
Heterogeneity 10
Distributed Interaction 11
Real-Time System Design and Resource Management 12
Failure Management 13
Scalability 15
Deployment and Configuration 16
Conclusion 16
References 17

Chapter Two - The Origin of Networked Virtual Environments 19

Department of Defense Networked Virtual Environments 20
SIMNET 20
Distributed Interactive Simulation 26
Networked Games and Demos 34
SGI Flight and Dogfight 34
Doom 35
Other Games 36
Academic Networked Virtual Environments 37
NPSNET 37
PARADISE 42
DIVE 44
BrickNet 46
MR Toolkit Peer Package 48
Others 49
Conclusion 49
References 50

Chapter Three - A Networking Primer 55

Fundamentals of Data Transfer 56
Network Latency 56
Network Bandwidth 58
Network Reliability 58
Network Protocol 60
The BSD Sockets Architecture 61
Sockets and Ports 62
The Internet Protocol 65
Introducing the Internet Protocols for Net-VEs 65
Transmission Control Protocol 67
User Datagram Protocol 67
IP Broadcasting Using UDP 69
IP Multicasting 70
Selecting a Net-VE Protocol 75
Using TCP/IP 77
Using UDP/IP 77
Using IP Broadcasting 80
Using IP Multicasting 82
Conclusion 82
References 83

Chapter Four - Communication Architectures 87

Two Players on a LAN 87
Multiplayer Client-Server Systems 90
Multiplayer Client-Server, with Multiple-Server Architectures 94
Peer-to-Peer Architectures 95
Conclusion 98
References 98

Chapter Five - Managing Dynamic Shared State 101

The Consistency-Throughput Tradeoff 101
Proof of the Tradeoff 104
Design Implications of the Tradeoff 105
Maintaining Shared State Inside Centralized Repositories 107
A File Repository 108
A Repository in Server Memory 110
Virtual Repositories 112
Advantages and Drawbacks to Centralized Repositories 115
Reducing Coupling through Frequent State Regeneration 117
Explicit Entity Ownership 118
Systems Using Frequent State Regeneration 122
Reducing the Broadcast Scope 124
Advantages and Drawbacks of Frequent State Regeneration 125
Dead Reckoning of Shared State 127
Prediction and Convergence 128
Prediction Using Derivative Polynomials 129
Object-Specialized Prediction 134
Convergence Algorithms 137
Addressing Consistency-Throughput through Nonregular Transmissions 140
Advantages and Limitations of Dead Reckoning 142
Conclusion 143
References 144

Chapter Six - Systems Design 147

One Thread, Multiple Threads 147
With One Thread . . . 147
With Multiple Threads . . . 152
Important Subsystems 156
Real-Time Rendering: Polygon Culling and Level-of-Detail Processing 157
Real-Time Collision Detection and Response 165
Computational Resource Management 174
Conclusion 175
References and Further Reading 176

Chapter Seven - Resource Management for Scalability and Performance 181

An Information-Centric View of Resources 183
Optimizing the Communications Protocol 185
Packet Compression 186
Packet Aggregation 191
Controlling the Visibility of Data 195
Area-of-Interest Filtering Subscriptions 197
Multicasting 204
Hybrid Multicast Aggregation 210
Taking Advantage of Perceptual Limitations 213
Exploiting Level-of-Detail Perception 215
Exploiting Temporal Perception 221
Enhancing the System Architecture 236
Server Clusters 237
Peer-Server Systems 243
Conclusion 244
References 246

Chapter Eight - Internet Networked Virtual Environments 251

VRML-Based Virtual Environments 251
Some Existing Networked VRML Worlds 253
virtual reality transfer protocol 262
Internet Gaming 263
Overview of Online Gaming Services 264
Internet Gaming Software Architectures 266
Future Internet Gaming Directions 269
Conclusion 271
References 271

Chapter Nine - Perspective and Predictions 275

Better Library Support 275
Bamboo 276
High Level Architecture 279
Java-Based Toolkits 283
Toolkits Being Developed Everywhere . . . 284
Toward a Better Internet 285
Research Frontiers 287
Past, Present, and Future 289
References 290

Appendix - Network Communications in C, C++, and Java 293

Using TCP/IP from C and C++ 293
Managing Concurrent Connections in C and C++ 297
Using TCP/IP from Java 300
Managing Concurrent Connections in Java 303
Using UDP/IP from C and C++ 305
Using UDP/IP from Java 308
Broadcasting from C and C++ 310
Broadcasting from Java 310
Multicasting from C and C++ 311
Multicasting from Java 312
References 313

Index 315

Faculty Contact for Information:

Michael Zyda zyda@movesinstitute.org

rule