E-Book, Englisch, 536 Seiten
Steed / Oliveira Networked Graphics
1. Auflage 2009
ISBN: 978-0-08-092223-2
Verlag: Elsevier Science & Techn.
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Building Networked Games and Virtual Environments
E-Book, Englisch, 536 Seiten
ISBN: 978-0-08-092223-2
Verlag: Elsevier Science & Techn.
Format: EPUB
Kopierschutz: 6 - ePub Watermark
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.
Everything designers need to know when developing networked graphics and games is covered in one volume - no need to consult multiple sources.The many examples throughout the text feature real simulation code in C++ and Java that developers can use in their own design experiments.Case studies describing real-world systems show how requirements and constraints can be managed.
Anthony Steed is a Professor at University College London. His research interests are in collaborative virtual environments, immersive virtual reality, interaction, and human animation. He has over 110 refereed conference and journal papers to date. He was program chair of the 2007, 2008, and 2009 IEEE Virtual Reality conferences. For part of the academic year 2006 - 2007 he was on sabbatical to Electronic Arts in Guildford. He is also the director of the Engineering Doctorate Centre in Virtual Environment, Imaging, and Visualization.
Autoren/Hrsg.
Weitere Infos & Material
1;Front Cover;1
2;Networked Graphics: Building Networked Games and Virtual Environments;4
3;Copyright Page;5
4;Contents;6
5;PART I: GROUNDWORK;14
5.1;CHAPTER 1 Introduction;16
5.1.1;1.1 What are NVEs and NGs?;17
5.1.2;1.2 The Illusion of a Shared Virtual Environment;18
5.1.3;1.3 Some History;20
5.1.3.1;1.3.1 Internet;21
5.1.3.2;1.3.2 Simulators;28
5.1.3.3;1.3.3 Multiuser Dungeons (MUDs);32
5.1.3.4;1.3.4 Electronic Games;35
5.1.3.5;1.3.5 Virtual Reality Systems;40
5.1.3.6;1.3.6 MMORPGs;43
5.1.3.7;1.3.7 Social Spaces;46
5.1.4;1.4 Scoping the Software Architecture;49
5.1.4.1;1.4.1 Software Roles and Responsibilities;51
5.1.4.2;1.4.2 Differences to Other Network Code;52
5.1.5;1.5 Structure;53
5.2;CHAPTER 2 One on One (101);58
5.2.1;2.1 Boids;58
5.2.1.1;2.1.1 Boid Rules;59
5.2.1.2;2.1.2 Standalone Implementation;61
5.2.2;2.2 Distributed Boids: Concepts;62
5.2.3;2.3 Distributed Boids: Implementation;66
5.2.3.1;2.3.1 Revised Simulation and Data Model;66
5.2.3.2;2.3.2 Network Concepts;68
5.2.3.3;2.3.3 Network Protocol;69
5.2.3.4;2.3.4 Implementation of the Network Component;69
5.2.3.5;2.3.5 Sending UDP Data Packets;71
5.2.3.6;2.3.6 Sending TCP Data Streams;75
5.2.4;2.4 Reflection;78
5.3;CHAPTER 3 Overview of the Internet;84
5.3.1;3.1 The Internet;84
5.3.2;3.2 Application Layer;88
5.3.2.1;3.2.1 Application Layer Protocols;89
5.3.2.2;3.2.2 Application QoS;90
5.3.2.3;3.2.3 Common Applications and Ports;91
5.3.2.4;3.2.4 RFCs;93
5.3.2.5;3.2.5 DNS;93
5.3.2.6;3.2.6 Telnet and HTTP;95
5.3.3;3.3 Transport Layer;96
5.3.3.1;3.3.1 Implementing UDP;97
5.3.3.2;3.3.2 Basics of TCP;100
5.3.3.3;3.3.3 Reliability in TCP;102
5.3.3.4;3.3.4 Opening and Closing TCP Connections;109
5.3.3.5;3.3.5 Flow Control and Congestion Avoidance in TCP;112
5.3.4;3.4 Network Layer;114
5.3.4.1;3.4.1 Network Address Translation;116
5.3.4.2;3.4.2 IP Packets;117
5.3.4.3;3.4.3 Ping, Traceroute and ICMP;122
5.3.4.4;3.4.4 Routing on the Internet;125
5.3.4.5;3.4.5 DHCP;125
5.3.5;3.5 Link and Physical Layer;126
5.3.5.1;3.5.1 Ethernet;128
5.3.5.2;3.5.2 Comparisons;129
5.3.6;3.6 Further Network Facilities;129
5.3.6.1;3.6.1 Multicast;130
5.3.6.2;3.6.2 Network QoS;131
5.3.7;3.7 Summary;134
5.4;CHAPTER 4 More Than Two;138
5.4.1;4.1 Boids;139
5.4.1.1;4.1.1 Architecture;139
5.4.1.2;4.1.2 Protocol;140
5.4.1.3;4.1.3 Codebase Refactoring;141
5.4.2;4.2 Simple Peer to Peer;143
5.4.2.1;4.2.1 System Architecture;144
5.4.2.2;4.2.2 Data Model;145
5.4.2.3;4.2.3 Network;147
5.4.2.4;4.2.4 Protocol;148
5.4.3;4.3 Peer to Peer with Master;151
5.4.3.1;4.3.1 System Architecture;152
5.4.3.2;4.3.2 Datamodel;153
5.4.3.3;4.3.3 Network;155
5.4.3.4;4.3.4 Protocol;155
5.4.4;4.4 Peer to Peer with Rendezvous Server;159
5.4.4.1;4.4.1 System Architecture;161
5.4.4.2;4.4.2 Datamodel;162
5.4.4.3;4.4.3 Network;162
5.4.4.4;4.4.4 Protocol;163
5.4.5;4.5 Client/Server;165
5.4.5.1;4.5.1 System Architecture;166
5.4.5.2;4.5.2 Datamodel;167
5.4.5.3;4.5.3 Network;168
5.4.5.4;4.5.4 Protocol;169
5.4.6;4.6 Multicast;171
5.4.6.1;4.6.1 System Architecture;173
5.4.6.2;4.6.2 Datamodel;174
5.4.6.3;4.6.3 Network;175
5.4.6.4;4.6.4 Protocol;177
5.4.7;4.7 Extensions;179
5.4.7.1;4.7.1 Protocol design;179
5.4.7.2;4.7.2 Network Compensation;179
5.4.7.3;4.7.3 Scale;180
5.4.7.4;4.7.4 Binary Protocols;180
5.4.8;4.8 Conclusions;180
6;PART II: FOUNDATIONS;182
6.1;CHAPTER 5 Issues in Networking Graphics;184
6.1.1;5.1 Architecture of the Individual System;184
6.1.1.1;5.1.1 Engines and Engine Framework;186
6.1.1.2;5.1.2 Modules;190
6.1.1.3;5.1.3 Content;190
6.1.1.4;5.1.4 Behavior;191
6.1.2;5.2 Role of the Network;192
6.1.2.1;5.2.1 Device I/O Sharing;193
6.1.2.2;5.2.2 Data Model Sharing;194
6.1.2.3;5.2.3 Command/Event Streaming;195
6.1.2.4;5.2.4 Coping with Scale;197
6.1.3;5.3 Initialization;197
6.1.3.1;5.3.1 Case Study: Disney's Toontown;198
6.1.4;5.4 Server and Peer Responsibilities;199
6.1.5;5.5 Critical and Noncritical;201
6.1.6;5.6 Synchronized or Unsynchronized;202
6.1.7;5.7 Ownership and Locking;203
6.1.8;5.8 Persistency;203
6.1.9;5.9 Latency and Bandwidth;204
6.1.10;5.10 Conclusions;205
6.2;CHAPTER 6 Sockets and Middleware;208
6.2.1;6.1 Role of Middleware;208
6.2.2;6.2 Low-Level Socket APIs;209
6.2.2.1;6.2.1 Main Functions;209
6.2.2.2;6.2.2 Name Helper Functions and Options;212
6.2.2.3;6.2.3 Network Byte Order;214
6.2.2.4;6.2.4 Examples;215
6.2.2.5;6.2.5 Socket Usage Patterns;220
6.2.2.6;6.2.6 Windows;220
6.2.2.7;6.2.7 Synchronous I/O;221
6.2.2.8;6.2.8 Critique and Discussion;223
6.2.3;6.3 C and C++ Middleware for Networking;223
6.2.3.1;6.3.1 HawkNL;224
6.2.3.2;6.3.2 SDL_Net;224
6.2.3.3;6.3.3 ACE;226
6.2.4;6.4 Conclusion;228
6.3;CHAPTER 7 Middleware and Message-Based Systems;230
6.3.1;7.1 Message-Based Systems;230
6.3.2;7.2 DIS;231
6.3.2.1;7.2.1 PDUs;232
6.3.3;7.3 X3D and DIS;233
6.3.3.1;7.3.1 Basics of X3D;235
6.3.3.2;7.3.2 Dataflow and Animation;237
6.3.3.3;7.3.3 Scripting and Interfaces;240
6.3.3.4;7.3.4 VRML/X3D Networking Strategies;245
6.3.3.5;7.3.5 X3D and DIS;248
6.3.4;7.4 X3D, HawkNL and DIS;250
6.3.4.1;7.4.1 Sending a DIS Packet;251
6.3.4.2;7.4.2 Receiving DIS Packets;251
6.3.5;7.5 Conclusions;254
6.4;CHAPTER 8 Middleware and Object-Sharing Systems;260
6.4.1;8.1 Object-Sharing Systems;260
6.4.2;8.2 RakNet;263
6.4.2.1;8.2.1 Object Lifecycles;264
6.4.3;8.3 Boids using Object-Sharing;265
6.4.3.1;8.3.1 Boid Definitions;266
6.4.3.2;8.3.2 Main Application;273
6.4.3.3;8.3.3 Discussion;277
6.4.4;8.4 General Object-Sharing;277
6.4.4.1;8.4.1 Sharing Policy;277
6.4.4.2;8.4.2 Visibility and Sampling Rates;278
6.4.5;8.5 Ownership;279
6.4.6;8.6 Scene-Graphs, Object-Sharing and Messages;284
6.4.7;8.7 Conclusions;286
6.5;CHAPTER 9 Other Networking Components;288
6.5.1;9.1 Remote Method Call;288
6.5.1.1;9.1.1 RPC;289
6.5.1.2;9.1.2 XML-RPC, etc.;297
6.5.1.3;9.1.3 CORBA;298
6.5.1.4;9.1.4 Discussion;300
6.5.2;9.2 DIVE;301
6.5.2.1;9.2.1 DIVE Overview;301
6.5.2.2;9.2.2 DIVE Entities;304
6.5.2.3;9.2.3 Events;310
6.5.2.4;9.2.4 Scripting and Event Scoping;312
6.5.2.5;9.2.5 Networking;314
6.5.2.6;9.2.6 Discussion;315
6.5.3;9.3 System Architectures;316
6.5.4;9.4 Conclusions;319
7;PART III: REAL SYSTEMS;324
7.1;CHAPTER 10 Requirements;326
7.1.1;10.1 Consistency;327
7.1.1.1;10.1.1 System Perspective;328
7.1.1.2;10.1.2 Plausibility and Fairness;329
7.1.1.3;10.1.3 Consistency-Throughput Tradeoff;331
7.1.2;10.2 Latency and Jitter;332
7.1.2.1;10.2.1 Sources of Network Latency;332
7.1.2.2;10.2.2 Jitter;334
7.1.2.3;10.2.3 Clocks and Measurement of Latency and Jitter;337
7.1.2.4;10.2.4 User Tolerance;339
7.1.2.5;10.2.5 Latency Impact in Specific Systems;342
7.1.3;10.3 Bandwidth;343
7.1.3.1;10.3.1 Measurement;344
7.1.3.2;10.3.2 Traffic Patterns;344
7.1.3.3;10.3.3 Congestion;349
7.1.4;10.4 State of the Internet;350
7.1.5;10.5 Connectivity;353
7.1.5.1;10.5.1 NAT;353
7.1.6;10.6 Case Study: Burnout™ Paradise;356
7.1.6.1;10.6.1 Car "Mechanics";357
7.1.6.2;10.6.2 Game Phases and Time Synchronization;358
7.1.6.3;10.6.3 Game Hosting and Peer-to-Peer Networking;360
7.1.7;10.7 Conclusions;361
7.2;CHAPTER 11 Latency and Consistency;368
7.2.1;11.1 Latency Impact;368
7.2.2;11.2 Dumb Client and Lockstep Synchronization;372
7.2.2.1;11.2.1 Dumb Client;372
7.2.2.2;11.2.2 Lockstep Synchronization;373
7.2.3;11.3 Conservative Simulations;373
7.2.4;11.4 Time;375
7.2.5;11.5 Optimistic Algorithms;378
7.2.6;11.6 Client Predict Ahead;380
7.2.7;11.7 Extrapolation Algorithms;384
7.2.7.1;11.7.1 Basic Dead-Reckoning;384
7.2.7.2;11.7.2 Dead-Reckoning Variants;389
7.2.8;11.8 Interpolation, Playout Delays and Local Lag;391
7.2.9;11.9 Local Perception Filters;396
7.2.10;11.10 Revealing Latency;400
7.2.11;11.11 Conclusions;401
7.3;CHAPTER 12 Scalability;406
7.3.1;12.1 Service Architectures;407
7.3.1.1;12.1.1 Awareness;407
7.3.1.2;12.1.2 Cohorts, Groups and Service Architecture;409
7.3.2;12.2 Overview of Interest Management;412
7.3.3;12.3 Spatial Models;416
7.3.3.1;12.3.1 Zone Models;417
7.3.3.2;12.3.2 Dynamic Spatial Models;419
7.3.3.3;12.3.3 Visibility Models;421
7.3.4;12.4 Interest Specification and Interest Management;424
7.3.4.1;12.4.1 Interest Expressions;424
7.3.4.2;12.4.2 Interest Management;426
7.3.4.3;12.4.3 Examples of Distributed Interest Management;428
7.3.5;12.5 Separating Interest Management from Network Architecture;431
7.3.5.1;12.5.1 Message Routing and Message Filtering;431
7.3.5.2;12.5.2 Filtering as a Pipeline;433
7.3.5.3;12.5.3 Routing and Filtering Examples;434
7.3.5.4;12.5.4 Delegating Group Communication to the Network Layer;436
7.3.6;12.6 Server Partitioning;437
7.3.6.1;12.6.1 Server Tasks and Static Partitionings;438
7.3.6.2;12.6.2 Seams and Handovers;441
7.3.6.3;12.6.3 Load Balancing and Dynamic Partitioning;443
7.3.7;12.7 Group Communication Services;447
7.3.7.1;12.7.1 Reflectors and Tunnels;447
7.3.7.2;12.7.2 Automatic Overlay Multicast;448
7.3.7.3;12.7.3 Gossiping for Peer-to-Peer Communications;449
7.3.7.4;12.7.4 Specific Group Communication Routing Service;450
7.3.8;12.8 Peer to Peer;450
7.3.8.1;12.8.1 Unstructured Peer-to-Peer Systems;451
7.3.8.2;12.8.2 Structured Peer-to-Peer Systems;452
7.3.8.3;12.8.3 Peer-to-Peer Support Using DHTs;455
7.3.8.4;12.8.4 Local Interest Systems;456
7.3.8.5;12.8.5 Update-Free Regions and Frontier Sets;459
7.3.9;12.9 Conclusions;462
7.4;CHAPTER 13 Application Support Issues;472
7.4.1;13.1 Security and Cheating;472
7.4.1.1;13.1.1 Client-Side Attacks;474
7.4.1.2;13.1.2 Network Level;476
7.4.1.3;13.1.3 Server Side;478
7.4.1.4;13.1.4 Social;478
7.4.1.5;13.1.5 Repercussions;479
7.4.2;13.2 Binary Protocols and Compression;480
7.4.2.1;13.2.1 Binary Encodings;480
7.4.2.2;13.2.2 Compression;481
7.4.3;13.3 Streaming;483
7.4.3.1;13.3.1 Audio and Video;483
7.4.3.2;13.3.2 Geometry and Animation;486
7.4.3.3;13.3.3 Mixing and Grouping;489
7.4.4;13.4 Revisiting the Protocol Decision;490
7.4.5;13.5 Persistent and Tiered Services;491
7.4.6;13.6 Clusters;492
7.4.6.1;13.6.1 Multidisplay Systems;492
7.4.6.2;13.6.2 Massive Models;495
7.4.7;13.7 Thin Clients;495
7.4.8;13.8 Conclusions;496
8;Index;502
8.1;A;502
8.2;B;504
8.3;C;505
8.4;D;508
8.5;E;510
8.6;F;512
8.7;G;513
8.8;H;514
8.9;I;515
8.10;J;516
8.11;K;516
8.12;L;516
8.13;M;518
8.14;N;520
8.15;O;522
8.16;P;522
8.17;Q;525
8.18;R;525
8.19;S;528
8.20;T;531
8.21;U;532
8.22;V;533
8.23;W;534
8.24;X;535
8.25;Z;535




