Suchen und Finden
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
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.