Networked Graphics - Building Networked Games and Virtual Environments

Networked Graphics - Building Networked Games and Virtual Environments

von: Anthony Steed, Manuel Fradinho Oliveira

Elsevier Reference Monographs, 2009

ISBN: 9780080922232 , 536 Seiten

Format: PDF, ePUB

Kopierschutz: DRM

Windows PC,Mac OSX geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Apple iPod touch, iPhone und Android Smartphones

Preis: 58,95 EUR

Mehr zum Inhalt

Networked Graphics - Building Networked Games and Virtual Environments


 

Front Cover

1

Networked Graphics: Building Networked Games and Virtual Environments

4

Copyright Page

5

Contents

6

PART I: GROUNDWORK

14

CHAPTER 1 Introduction

16

1.1 What are NVEs and NGs?

17

1.2 The Illusion of a Shared Virtual Environment

18

1.3 Some History

20

1.3.1 Internet

21

1.3.2 Simulators

28

1.3.3 Multiuser Dungeons (MUDs)

32

1.3.4 Electronic Games

35

1.3.5 Virtual Reality Systems

40

1.3.6 MMORPGs

43

1.3.7 Social Spaces

46

1.4 Scoping the Software Architecture

49

1.4.1 Software Roles and Responsibilities

51

1.4.2 Differences to Other Network Code

52

1.5 Structure

53

CHAPTER 2 One on One (101)

58

2.1 Boids

58

2.1.1 Boid Rules

59

2.1.2 Standalone Implementation

61

2.2 Distributed Boids: Concepts

62

2.3 Distributed Boids: Implementation

66

2.3.1 Revised Simulation and Data Model

66

2.3.2 Network Concepts

68

2.3.3 Network Protocol

69

2.3.4 Implementation of the Network Component

69

2.3.5 Sending UDP Data Packets

71

2.3.6 Sending TCP Data Streams

75

2.4 Reflection

78

CHAPTER 3 Overview of the Internet

84

3.1 The Internet

84

3.2 Application Layer

88

3.2.1 Application Layer Protocols

89

3.2.2 Application QoS

90

3.2.3 Common Applications and Ports

91

3.2.4 RFCs

93

3.2.5 DNS

93

3.2.6 Telnet and HTTP

95

3.3 Transport Layer

96

3.3.1 Implementing UDP

97

3.3.2 Basics of TCP

100

3.3.3 Reliability in TCP

102

3.3.4 Opening and Closing TCP Connections

109

3.3.5 Flow Control and Congestion Avoidance in TCP

112

3.4 Network Layer

114

3.4.1 Network Address Translation

116

3.4.2 IP Packets

117

3.4.3 Ping, Traceroute and ICMP

122

3.4.4 Routing on the Internet

125

3.4.5 DHCP

125

3.5 Link and Physical Layer

126

3.5.1 Ethernet

128

3.5.2 Comparisons

129

3.6 Further Network Facilities

129

3.6.1 Multicast

130

3.6.2 Network QoS

131

3.7 Summary

134

CHAPTER 4 More Than Two

138

4.1 Boids

139

4.1.1 Architecture

139

4.1.2 Protocol

140

4.1.3 Codebase Refactoring

141

4.2 Simple Peer to Peer

143

4.2.1 System Architecture

144

4.2.2 Data Model

145

4.2.3 Network

147

4.2.4 Protocol

148

4.3 Peer to Peer with Master

151

4.3.1 System Architecture

152

4.3.2 Datamodel

153

4.3.3 Network

155

4.3.4 Protocol

155

4.4 Peer to Peer with Rendezvous Server

159

4.4.1 System Architecture

161

4.4.2 Datamodel

162

4.4.3 Network

162

4.4.4 Protocol

163

4.5 Client/Server

165

4.5.1 System Architecture

166

4.5.2 Datamodel

167

4.5.3 Network

168

4.5.4 Protocol

169

4.6 Multicast

171

4.6.1 System Architecture

173

4.6.2 Datamodel

174

4.6.3 Network

175

4.6.4 Protocol

177

4.7 Extensions

179

4.7.1 Protocol design

179

4.7.2 Network Compensation

179

4.7.3 Scale

180

4.7.4 Binary Protocols

180

4.8 Conclusions

180

PART II: FOUNDATIONS

182

CHAPTER 5 Issues in Networking Graphics

184

5.1 Architecture of the Individual System

184

5.1.1 Engines and Engine Framework

186

5.1.2 Modules

190

5.1.3 Content

190

5.1.4 Behavior

191

5.2 Role of the Network

192

5.2.1 Device I/O Sharing

193

5.2.2 Data Model Sharing

194

5.2.3 Command/Event Streaming

195

5.2.4 Coping with Scale

197

5.3 Initialization

197

5.3.1 Case Study: Disney's Toontown

198

5.4 Server and Peer Responsibilities

199

5.5 Critical and Noncritical

201

5.6 Synchronized or Unsynchronized

202

5.7 Ownership and Locking

203

5.8 Persistency

203

5.9 Latency and Bandwidth

204

5.10 Conclusions

205

CHAPTER 6 Sockets and Middleware

208

6.1 Role of Middleware

208

6.2 Low-Level Socket APIs

209

6.2.1 Main Functions

209

6.2.2 Name Helper Functions and Options

212

6.2.3 Network Byte Order

214

6.2.4 Examples

215

6.2.5 Socket Usage Patterns

220

6.2.6 Windows

220

6.2.7 Synchronous I/O

221

6.2.8 Critique and Discussion

223

6.3 C and C++ Middleware for Networking

223

6.3.1 HawkNL

224

6.3.2 SDL_Net

224

6.3.3 ACE

226

6.4 Conclusion

228

CHAPTER 7 Middleware and Message-Based Systems

230

7.1 Message-Based Systems

230

7.2 DIS

231

7.2.1 PDUs

232

7.3 X3D and DIS

233

7.3.1 Basics of X3D

235

7.3.2 Dataflow and Animation

237

7.3.3 Scripting and Interfaces

240

7.3.4 VRML/X3D Networking Strategies

245

7.3.5 X3D and DIS

248

7.4 X3D, HawkNL and DIS

250

7.4.1 Sending a DIS Packet

251

7.4.2 Receiving DIS Packets

251

7.5 Conclusions

254

CHAPTER 8 Middleware and Object-Sharing Systems

260

8.1 Object-Sharing Systems

260

8.2 RakNet

263

8.2.1 Object Lifecycles

264

8.3 Boids using Object-Sharing

265

8.3.1 Boid Definitions

266

8.3.2 Main Application

273

8.3.3 Discussion

277

8.4 General Object-Sharing

277

8.4.1 Sharing Policy

277

8.4.2 Visibility and Sampling Rates

278

8.5 Ownership

279

8.6 Scene-Graphs, Object-Sharing and Messages

284

8.7 Conclusions

286

CHAPTER 9 Other Networking Components

288

9.1 Remote Method Call

288

9.1.1 RPC

289

9.1.2 XML-RPC, etc.

297

9.1.3 CORBA

298

9.1.4 Discussion

300

9.2 DIVE

301

9.2.1 DIVE Overview

301

9.2.2 DIVE Entities

304

9.2.3 Events

310

9.2.4 Scripting and Event Scoping

312

9.2.5 Networking

314

9.2.6 Discussion

315

9.3 System Architectures

316

9.4 Conclusions

319

PART III: REAL SYSTEMS

324

CHAPTER 10 Requirements

326

10.1 Consistency

327

10.1.1 System Perspective

328

10.1.2 Plausibility and Fairness

329

10.1.3 Consistency-Throughput Tradeoff

331

10.2 Latency and Jitter

332

10.2.1 Sources of Network Latency

332

10.2.2 Jitter

334

10.2.3 Clocks and Measurement of Latency and Jitter

337

10.2.4 User Tolerance

339

10.2.5 Latency Impact in Specific Systems

342

10.3 Bandwidth

343

10.3.1 Measurement

344

10.3.2 Traffic Patterns

344

10.3.3 Congestion

349

10.4 State of the Internet

350

10.5 Connectivity

353

10.5.1 NAT

353

10.6 Case Study: Burnoutâ„¢ Paradise

356

10.6.1 Car "Mechanics"

357

10.6.2 Game Phases and Time Synchronization

358

10.6.3 Game Hosting and Peer-to-Peer Networking

360

10.7 Conclusions

361

CHAPTER 11 Latency and Consistency

368

11.1 Latency Impact

368

11.2 Dumb Client and Lockstep Synchronization

372

11.2.1 Dumb Client

372

11.2.2 Lockstep Synchronization

373

11.3 Conservative Simulations

373

11.4 Time

375

11.5 Optimistic Algorithms

378

11.6 Client Predict Ahead

380

11.7 Extrapolation Algorithms

384

11.7.1 Basic Dead-Reckoning

384

11.7.2 Dead-Reckoning Variants

389

11.8 Interpolation, Playout Delays and Local Lag

391

11.9 Local Perception Filters

396

11.10 Revealing Latency

400

11.11 Conclusions

401

CHAPTER 12 Scalability

406

12.1 Service Architectures

407

12.1.1 Awareness

407

12.1.2 Cohorts, Groups and Service Architecture

409

12.2 Overview of Interest Management

412

12.3 Spatial Models

416

12.3.1 Zone Models

417

12.3.2 Dynamic Spatial Models

419

12.3.3 Visibility Models

421

12.4 Interest Specification and Interest Management

424

12.4.1 Interest Expressions

424

12.4.2 Interest Management

426

12.4.3 Examples of Distributed Interest Management

428

12.5 Separating Interest Management from Network Architecture

431

12.5.1 Message Routing and Message Filtering

431

12.5.2 Filtering as a Pipeline

433

12.5.3 Routing and Filtering Examples

434

12.5.4 Delegating Group Communication to the Network Layer

436

12.6 Server Partitioning

437

12.6.1 Server Tasks and Static Partitionings

438

12.6.2 Seams and Handovers

441

12.6.3 Load Balancing and Dynamic Partitioning

443

12.7 Group Communication Services

447

12.7.1 Reflectors and Tunnels

447

12.7.2 Automatic Overlay Multicast

448

12.7.3 Gossiping for Peer-to-Peer Communications

449

12.7.4 Specific Group Communication Routing Service

450

12.8 Peer to Peer

450

12.8.1 Unstructured Peer-to-Peer Systems

451

12.8.2 Structured Peer-to-Peer Systems

452

12.8.3 Peer-to-Peer Support Using DHTs

455

12.8.4 Local Interest Systems

456

12.8.5 Update-Free Regions and Frontier Sets

459

12.9 Conclusions

462

CHAPTER 13 Application Support Issues

472

13.1 Security and Cheating

472

13.1.1 Client-Side Attacks

474

13.1.2 Network Level

476

13.1.3 Server Side

478

13.1.4 Social

478

13.1.5 Repercussions

479

13.2 Binary Protocols and Compression

480

13.2.1 Binary Encodings

480

13.2.2 Compression

481

13.3 Streaming

483

13.3.1 Audio and Video

483

13.3.2 Geometry and Animation

486

13.3.3 Mixing and Grouping

489

13.4 Revisiting the Protocol Decision

490

13.5 Persistent and Tiered Services

491

13.6 Clusters

492

13.6.1 Multidisplay Systems

492

13.6.2 Massive Models

495

13.7 Thin Clients

495

13.8 Conclusions

496

Index

502

A

502

B

504

C

505

D

508

E

510

F

512

G

513

H

514

I

515

J

516

K

516

L

516

M

518

N

520

O

522

P

522

Q

525

R

525

S

528

T

531

U

532

V

533

W

534

X

535

Z

535