Networked Graphics

Building Networked Games and Virtual Environments

By

  • Anthony Steed, Professor, Department of Computer Science, University College London
  • Manuel Oliveira, Research Director, Cyntelix

This broad-ranging book equips programmers and designers with a thorough grounding in the techniques used to create truly network-enabled computer graphics and games. Written for graphics/game/VE developers and students, it assumes no prior knowledge of networking. The text offers a broad view of what types of different architectural patterns can be found in current systems, and readers will learn the tradeoffs in achieving system requirements on the Internet.

The book explains the foundations of networked graphics, then explores real systems in depth, and finally considers standards and extensions. Numerous case studies and examples with working code are featured throughout the text, covering groundbreaking academic research and military simulation systems, as well as industry-leading game designs.

View full description

Audience

Graphics and games programmers and developers, virtual environments developers, academic researchers, upper-level undergrad and graduate students in Computer Graphics and Games programs

 

Book information

  • Published: November 2009
  • Imprint: MORGAN KAUFMANN
  • ISBN: 978-0-12-374423-4


Table of Contents

PART I GROUNDWORK

CHAPTER 1 Introduction

1 .1 What are NVEs and NGs?

1 .2 The Illusion of a Shared Virtual Environment

1 .3 Some History

1 .4 Scoping the Software Architecture

1 .5 Structure

CHAPTER 2 One on One (101)

2 .1 Boids

2 .2 Distributed Boids: Concepts

2 .3 Distributed Boids: Implementation

2 .4 Refl ection

CHAPTER 3 Overview of the Internet

3 .1 The Internet

3 .2 Application Layer

3 .3 Transport Layer

3 .4 Network Layer

3 .5 Link and Physical Layer

3 .6 Further Network Facilities

3 .7 Summary

CHAPTER 4 More Than Two

4 .1 Boids

4 .2 Simple Peer to Peer

4 .3 Peer to Peer with Master

4 .4 Peer to Peer with Rendezvous Server

4 .5 Client/Server

4 .6 Multicast

4 .7 Extensions

4 .8 Conclusions

PART II FOUNDATIONS

CHAPTER 5 Issues in Networking Graphics

5 .1 Architecture of the Individual System

5 .2 Role of the Network

5 .3 Initialization

5 .4 Server and Peer Responsibilities

5 .5 Critical and Noncritical

5 .6 Synchronized or Unsynchronized

5 .7 Ownership and Locking

5 .8 Persistency

5 .9 Latency and Bandwidth

5 .10 Conclusions

CHAPTER 6 Sockets and Middleware

6 .1 Role of Middleware

6 .2 Low-Level Socket APIs

6 .3 C and C Middleware for Networking

6 .4 Conclusion

CHAPTER 7 Middleware and Message-Based Systems

7 .1 Message-Based Systems

7 .2 DIS

7.3 X3D and DIS

7 .4 X3D, HawkNL and DIS

7 .5 Conclusions

CHAPTER 8 Middleware and Object-Sharing Systems

8 .1 Object-Sharing Systems

8 .2 RakNet

8 .3 Boids using Object-Sharing

8 .4 General Object-Sharing

8 .5 Ownership

8 .6 Scene-Graphs, Object-Sharing and Messages

8 .7 Conclusions

CHAPTER 9 Other Networking Components

9 .1 Remote Method Call

9 .2 DIVE

9 .3 System Architectures

9 .4 Conclusions

PART III REAL SYSTEMS

CHAPTER 10 Requirements

10 .1 Consistency

10 .2 Latency and Jitter

10 .3 Bandwidth

10 .4 State of the Internet

10 .5 Connectivity

10 .6 Case Study: Burnout ™ Paradise

10 .7 Conclusions

CHAPTER 11 Latency and Consistency

11 .1 Latency Impact

11 .2 Dumb Client and Lockstep Synchronization

11 .3 Conservative Simulations

11 .4 Time

11 .5 Optimistic Algorithms

11 .6 Client Predict Ahead

11 .7 Extrapolation Algorithms

11 .8 Interpolation, Playout Delays and Local Lag

11 .9 Local Perception Filters

11 .10 Revealing Latency

11 .11 Conclusions

CHAPTER 12 Scalability

12 .1 Service Architectures

12 .2 Overview of Interest Management

12 .3 Spatial Models

12 .4 Interest Specification and Interest Management

12 .5 Separating Interest Management from Network Architecture

12 .6 Server Partitioning

12 .7 Group Communication Services

12 .8 Peer to Peer

12 .9 Conclusions

CHAPTER 13 Application Support Issues

13 .1 Security and Cheating

13 .2 Binary Protocols and Compression

13 .3 Streaming

13 .4 Revisiting the Protocol Decision

13 .5 Persistent and Tiered Services

13 .6 Clusters

13 .7 Thin Clients

13 .8 Conclusions