|
|

October 13, 1999
Web posted at: 8:30 p.m. PST
Some of the early reviewers of the book are already placing
comments on Amazon.com!
Book ordering information is here.

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
|