Networked Graphics: Building Networked Games and Virtual Environments (Anthony Steed / Manuel Fradin...

PART I GROUNDWORK

CHAPTER 1 Introduction

CHAPTER 2 One on One (101)

CHAPTER 3 Overview of the Internet

CHAPTER 4 More Than Two

PART II FOUNDATIONS

CHAPTER 5 Issues in Networking Graphics

CHAPTER 6 Sockets and Middleware

CHAPTER 7 Middleware and Message-Based Systems

CHAPTER 8 Middleware and Object-Sharing Systems

CHAPTER 9 Other Networking Components

PART III REAL SYSTEMS

CHAPTER 10 Requirements

CHAPTER 11 Latency and Consistency

CHAPTER 12 Scalability

CHAPTER 13 Application Support Issues

 

CHAPTER 1 Introduction

  Introduction

  1.1 What are NVEs and NGs

  1.2 The illusion of a shared virtual environment

  1.3 Some history

    1.3.1 Internet

    1.3.2 Simulations

    1.3.3 Multiuser dungeons

    1.3.4 Electronic games

    1.3.5 Virtual reality systems

    1.3.6 MMORPGs

    1.3.7 Social spaces

  1.4 Scoping the software architecture

    1.4.1 Software roles and responsibilites

    1.4.2 Differences to other network code

  1.5 Structure

  References

Bartle, R. (2003). Designing virtual worlds. New Riders, Indianapolis, IN.

Berners-Lee, T., & Fischetti, M. (1999). Weaving the web: Origins and future of the world wide web. Orion Business.

Blanchard, C., Burgess, S., Harvill, Y., et al. (1990). Reality built for two: A virtual reality tool Proceedings of the 1990. Symposium on Interactive 3D. New York: ACM, 35–36.

Boggs, D., Shoch, J., Taft, E., et al. (1980). Pup: An internetwork architecture. IEEE Transactions on Communications, 28(4), 612–624.

BZFlag (2008) BZFlag, http://bzflag.org, accessed November 28 2008.

Capps, M., McGregor, D., Brutzman, D., et al. (2000). NPSNET-V: A new beginning for dynamically extensible virtual environments. IEEE Computer. Graphics and Applications, 20(5), 12–15.

Cerf, V., & Kahn, R. (1974). A protocol for packet network intercommunication. IEEE Transactions on Communications, 22(5), 637–648.

Churchill, E. F., Snowdon, D. N., & Munro, A. J. (Eds.) (2001). Collaborative virtual environments. Springer-Verlag, UK.

Cosby, L. N. (1999). SIMNET—An insider’s perspective. Simulation Technology Magazine, 2, 1g. Available online: http://www.sisostds.org/webletter/siso/iss_39/art_202.htm, Accessed November 28, 2008.

Cruz-Neira, C., Sandin, D. J., & DeFanti, T. A. (1993). Surround-screen projection-based virtual reality: The design and implementation of the CAVE. Proceedings of SIGGRAPH ‘93 Computer Graphics Conference, ACM SIGGRAPH, August 1993, 135–142.

Digibarn (2004). http://www.digibarn.com/history/04-VCF7-MazeWar/index.html, accessed November 28, 2008.

DODGDC (2008). Department of Defense Game Developers Community, http://www.dodgamecommunity.com/, accessed November 28, 2008.

Dodge, M. (2003). Mapping peer-to-peer networks, http://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/maps/maps26.html, accessed November 28, 2008.

Frécon, E., Smith, G., Steed, A., et al. (2001). An Overview of the COVEN Platform. Smith, G., Steed, A., et al. (2001). An Overview of the COVEN Platform. An Overview of the COVEN Platform. Presence: Teleoperators and Virtual Environments, 10(1), 109–127.

Gaines, B. R. (1998). The learning curves underlying convergence. Technological Forecasting and Social Change, 57, 7–34.

Hafner, K., & Lyon, M. (1996). Where wizards stay up late: The origins of the Internet. Simon & Schuster, Touchstone, NewYork, NY

Hall, R., Novak, J. (2008). Game development essentials: Online game development. Delmar: Cengage Learning, Florence, KY.

Harris, M. (1994). Entertainment driven collaboration. SIGGRAPH Computer Graphics, 28(2), 93–96.

IEEE (Institute of Electrical and Electronics Engineers) (1993). International Standard, ANSI/IEEE Std 1278-1993, Standard for Information Technology, Protocols for Distributed Interactive Simulation, March 1993.

Keegan, M. (1997). A classifcation of MUDs The Journal of Virtual Environments, 2, 2. Available online: http://www.brandeis.edu/pubs/jove/HTML/v2/v2n2jove.html, accessed November 11, 2009.

Kent, S. L. (2002). The ultimate history of video games. Prima Life, Rocklin, CA.

Koster, R. (2002). Online world timeline, http://www.raphkoster.com/gaming/mudtimeline.shtml, accessed November 11, 2008.

Macedonia, M., Zyda, M., Pratt, D., et al. (1994). Npsnet: A network software architecture for largescale virtual environments. Presence: Teleoperators and Virtual Environments, 3(4), 265–287.

Macedonia, M. R., Zyda, M. J., Pratt, D. R., et al. (1995). Exploiting reality with multicast groups. IEEE Computer Graphics and Applications, 15(5), 38–45.

Morse, K. L., Bic, L., & Dillencourt, M. (2000). Interest management in large-scale virtual environments. Presence: Teleoperators and Virtual Environments, 9(1), 52–68.

DeMaria, R., & Wilson, J. L. (2003). High score! The illustrated history of electronic games (2nd ed.). McGraw-Hill Osborne Media, Berkeley, CA.

Metcalfe, R. M., & Boggs, D. R. (1976). Ethernet: Distributed packet switching for local computer networks. Communications of the ACM, 19(7), 395–404.

MGP (2008). The mud genealogy project, http://sourcery.dyndns.org/wiki.cgi?MudGenealogyProject, accessed November 28, 2008.

Minsky, M. (1980). Telepresence, Omni, June 1980, pp. 45–52.

MMOGChart (2008). http://www.mmogchart.com/Chart2.html, accessed December 1, 2008.

Morningstar, C., & Farmer, F. R. (1990). The Lessons of Lucasflm’s Habitat, The First International Conference on Cyberspace, Austin, TX, USA. Available online: http://www.fudco.com/chip/lessons.html, accessed December 1, 2008.

Mulligan, J., & Patrovsky, B. (2003). Developing online games: An insider’s guide. New Riders Games, Indianapolis, IN.

Naughton, J. (2000). A brief history of the future: Origins of the Internet. Orion, London, UK.

Neyland, D. L. (1997). Virtual combat: A guide to distributed interactive simulation. Stackpole Books, Mechanicsburg, PA.

NSF (2008). The launch of NSFNET, http://www.nsf.gov/about/history/nsf0050/internet/launch.htm, accessed, November 28, 2008.

OpenSimulator (2008). OpenSimulator, http://opensimulator.org/wiki/Main_Page, accessed December 1, 2008.

Pascual, A., & Hauer, M. (2003). Minitasking – a visual Gnutella client. Proceedings of the Seventh International Conference on Information Visualization, 115–118.

Pope, A. (1989). BBN Report No. 7102, The SIMNET Network and Protocols, BBN Systems and Technologies, Cambridge, MA, July 1989.

Rheingold, H. (1993). The Virtual Community: Homesteading on the Electronic Frontier, Addison-Wesley.References

Rolfe, J. M., & Staples, K. J. (Eds.) (1988). Flight simulation. Cambridge University Press, Cambridge, UK.

Sanchez-Vives, M. V., & Slater, M. (2005). From presence to consciousness through virtual reality. Nature Reviews Neuroscience, 6(4), 332–339.

Schroeder, R. (Ed.) (2001). The social life of avatars: Presence and interaction in shared virtual environments. Springer-Verlag, London, UK.

Schroeder, R., & Axelsson, A. (Eds.), (2006). Avatars at work and play: Collaboration and interaction in shared virtual environments. Springer, Dordrecht, The Netherlands.

Schultz, A. (1999). Ultima Online Travelogue & Adventurer’s Guide: Trinsic Under Pirate Law, http://www.aschulze.net/ultima/stories/story137.htm, accessed July 16, 2009.

Schultz, A. (2008). Ultima Online Travelogue & Adventurer’s Guide: Blackrock Disaster in Moonglow, http://www.aschulze.net/ultima/stories10/story0041.htm, accessed July 16,2009.

Sutherland, I. E. (1965). The ultimate display. Proceedings of IFIP, 65(2), 506–508.

Taylor, T. L. (2006). Play between worlds: Exploring online game culture. MIT Press, Cambridge, MA.

Thompson, G. (2004). The aMazing History of Maze http://www.digibarn.com/collections/games/maze-war/imlacs-pds1-maze/index.html, accessed November 28, 2008.

Waters, R., Anderson, D., Barrus, J., et al. (1995). Diamond park and spline: A social virtual reality system with 3D animation, spoken interaction, and runtime modifability. IEEE Multimedia, 2(4), 77–82.

CHAPTER 2 One on One (101)

  Introduction

  2.1 Boids

    2.1.1 Boid rules

    2.1.2 Standalone implementation

  2.2 Distributed boids: concepts

  2.3 Distributed boids: implementation

    2.3.1 Revised simulation and data model

    2.3.2 Network concepts

    2.3.3 Network protocol

    2.3.4 Implementation of the network component

    2.3.5 Sending UDP data packets

    2.3.6 Sending TCP data streams

  2.4 Reflection

  References

Reynolds, C.W. (1987). Flocks, herds, and schools: A distributed behavioral model. Computer Graphics, 21(4), 25–34 (SIGGRAPH ‘87 Conference Proceedings).

Reynolds, C. (2001). Boids, background and update. Online at http://www.red3d.com/cwr/boids/, accessed December 12, 2008.

Winett, J. (1971). The Defnition of a Socket, RFC-129.

CHAPTER 3 Overview of the Internet

  Introduction

  3.1 The internet

  3.2 Application layer

    3.2.1 Application layer protocols

    3.2.2 Application qos

    3.2.3 Common applications and ports

    3.2.4 RFCs

    3.2.5 DNS

    3.2.6 Telnet and HTTP

  3.3 Transport layer

    3.3.1 Implementing UDP

    3.3.2 Basics of TCP

    3.3.3 Reliability in TCP

    3.3.4 Opening and closing TCP connections

    3.3.5 Flow control and congestion avoidance in TCP

  3.4 Network layer

    3.4.1 Network address translation

    3.4.2 IP packets

    3.4.3 Ping, traceroute and ICMP

    3.4.4 Routing on the internet

    3.4.5 DHCP

  3.5 Link and physical layer

    3.5.1 Ethernet

    3.5.2 Comparisons

  3.6 Futher network facilities

    3.6.1 Multicast

    3.6.2 Network qos

  3.7 Summary

  References

All RFCs can be accessed by number at http://tools.ietf.org/html/, accessed February 1, 2009.

Ballardie, A., Francis, P., & Crowcroft, J. (1993). Core based trees (CBT): An architecture for scalable inter-domain multicast routing. Proceedings SIGCOMM’93 (pp. 85–95).

CERT. (2008). CERT Vulnerability Note VU#800113: Multiple DNS implementations vulnerable to cache poisoning. United States Computer Emergency Readiness Team. http://www.kb.cert.org/vuls/id/800113, accessed January 29, 2009.

Chassot, C., Lozes, A., Garcia, F., et al. (1999). Specifcation and realization of the QoS required by a distributed simulation application in a new generation Internet. Proceedings Interactive Distributed Multimedia Systems and Telecommunication Services, Lecture Notes in Computer Science, 1718, 75–91).

Deering, S., & Cheriton, D. (1990). Multicasting routing in datagram inter-networks and extended LANs. ACM Transactions on Computer Systems, 8(2), 85–110.

Diot, C., Dabbous, W., & Crowcroft, J. (1997). Multipoint communication: A survey of protocols, functions and mechanisms. IEEE Journal on Selected Area in Communication, 15(3), 277–290.

Fisher, H. (2002). Multicast issues for collaborative virtual environments. IEEE Computer Graphics and Applications, 22(5), 68–75.

Handley, M. (1997). On Scalable Internet Multimedia Conferencing Systems, PhD Thesis, University College London.

IANA. (2009). Port Numbers, http://www.iana.org/assignments/port-numbers, accessed January 29, 2009.

Kurose, J. F., & Ross, K. W. (2008). Computer networking: A top-down approach (4th ed.). Addison Wesley.

Levine, B., Crowcroft, J., Diot, C., et al. (2000). Consideration of receiver interest in delivery of IP multicast. Proceedings Infocom 2000, IEEE 78–88.

Salon. (2000). tv, http://archive.salon.com/tech/view/2000/07/24/dot_tv/index.html, accessed January 29, 2009.

Stevens, R. (1994). TCP/IP illustrated, Volume 1: The protocols. Addison-Wesley, Indianapolis, IN.

Stevens, R. (1995). TCP/IP illustrated, Volume 2: The implementation. Addison-Wesley, Indianapolis, IN.

Stevens, R. (1996). TCP/IP illustrated, Volume 3: TCP for transactions, HTTP, NNTP, and the UNIX domain protocols. Addison-Wesley, Indianapolis, IN.

Wikipedia Contributors. (2009). Internet Protocol Suite. http://en.wikipedia.org/wiki/TCP/IP, accessed January 29, 2009.

Xiao, X., & Ni, L. (1999). Internet QoS: A big picture. IEEE Network, 13(2), 8–18.

Yu, H., Zhou, Q., Makrakis, D., et al. (2001). Quality of service support of distributed interactive virtual environment applications in IP networks. Proceedings Pacifc Rim Conference on Communications, Computer and Signal Processing, IEEE 196–199.

Zhao, W., Olshefski, D., & Schulzrinne, H. (2000). Internet Quality of Service: An Overview. Technical Report CUCS-003-00, Columbia University, New York, February 2000.

Zimmermann, H. (1980). OSI reference model—The ISO model of architecture for open systems interconnection. IEEE Transactions on Communications, 28(4), 425–432.

CHAPTER 4 More Than Two

  Introduction

  4.1 Boids

    4.1.1 Architecture

    4.1.2 Protocol

    4.1.3 Codebase refactoring

  4.2 Simple peer to peer

    4.2.1 System architecture

    4.2.2 Data model

    4.2.3 Network

    4.2.4 Protocol

  4.3 Peer to peer with master

    4.3.1 System architecture

    4.3.2 Datamodel

    4.3.3 Network

    4.3.4 Protocol

  4.4 Peer to peer with rendezvous server

    4.4.1 System architecture

    4.4.2 Datamodel

    4.4.3 Network

    4.4.4 Protocol

  4.5 Client/Server

    4.5.1 System architecture

    4.5.2 Datamodel

    4.5.3 Network

    4.5.4 Protocol

  4.6 Multicast

    4.6.1 System architecture

    4.6.2 Datamodel

    4.6.3 Network

    4.6.4 Protocol

  4.7 Extensions

    4.7.1 Protocol design

    4.7.2 Network compensation

    4.7.3 Scale

    4.7.4 Binary protocols

  4.8 Conclusions

  References

Clark, D. D., & Tennenhouse, D. L. (1990). Architectural considerations for a new generation of protocols. SIGCOMM Computer Communication Review, 20(4), 200–208.

CHAPTER 5 Issues in Networking Graphics

  Introduction

  5.1 Architecture of the individual system

    5.1.1 Engines and engine framework

    5.1.2 Modules

    5.1.3 Content

    5.1.4 Behavior

  5.2 Role of the network

    5.2.1 Device I/O sharing

    5.2.2 Data model sharing

    5.2.3 Command/event streaming

    5.2.4 Coping with scale

  5.3 Initialization

    5.3.1 Case study: Disney's Toontown

  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

  References

Autodesk. (2009). HumanIK Middleware. ,http://usa.autodesk.com/adsk/servlet/index?siteID123112&id9491249., accessed February 14, 2009.

Autodesk. (2009). Kynapse. ,http://usa.autodesk.com/adsk/servlet/index?siteID123112&id11390544., accessed February 14, 2009.

BBC. (2009). Video game helps with fre drill. http://news.bbc.co.uk/1/hi/technology/7867861.stm, accessed February 14, 2009.

Blow, J. (2004). Game development: Harder than you think. ACM Queue, 1(10), 28–37.

Cohen-Or, D., Chrysanthou, Y. L., Silva, C. T., et al. (2003). A survey of visibility for walkthrough applications. IEEE Transactions on Visualization and Computer Graphics, 9(3), 412–431.

El-Nasr, M. S., & Smith, B. K. (2006). Learning through game modding. Computers in Entertainment, 4(1), 7.

Gibson, W. (1984). Neuromancer. Ace Books.

Havok. (2009). ,http://www.havok.com/., accessed February 14, 2009.

Le Hégare, P. (2002). The W3C Document Object Model (DOM). ,http://www.w3.org/2002/07/26-dom-article.html., accessed February 14, 2009.

id Software. (1993). DOOM (Shareware version).

IEEE. (1993). IEEE 1278-1993 Standard for Distributed Interactive Simulation—Application protocols.

ISO. (1997). Virtual Reality Modeling Language (VRML) ISO/IEC 14772-1:1997.

ISO. (2008). ISO/IEC FDIS 19775-1.2:2008—X3D Architecture and Base Components Edition 2.

Khronos. (2008). COLLADA 1.5.0 Specifcation, October 2008.,http://www.khronos.org/collada/.,accessed February 14, 2009.

Mine, M. R., Shochet, J., & Hughston, R. (2003). Building a massively multiplayer game for the million: Disney’s Toontown Online. Computers in Entertainment, 1(1), 1–20.

Murphy, G. (2005). Duct Tape—a Doom 3 mod. ,http://ducttape.glenmurphy.com/., accessed February 14, 2009.

Natural Motion. (2009). ,http://www.naturalmotion.com/morpheme.htm., accessed February 14, 2009.

NTP. (2009). ,http://www.ntp.org/., accessed February 14, 2009.

NVidia. (2009). ,http://www.nvidia.com/object/nvidia_physx.html., accessed February 14, 2009.

OGRE. (2009). ,http://www.ogre3d.org/., accessed February 14, 2009.

OpenSceneGraph. (2009). ,http://www.openscenegraph.org/projects/osg., accessed February 14, 2009.

OpenSG. (2009). ,http://opensg.vrsource.org/trac., accessed February 14, 2009.

Panda3D. (2009). Panda3D. ,http://panda3d.org/., accessed February 14, 2009.

Pathengine. (2009). ,http://www.pathengine.com/., accessed February 14, 2009.

Rof. (2005). Pathengine, The Source Engine BSP File Format. ,http://www.geocities.com/cofrdrbob/bspformat.html., accessed February 14, 2009.

SA-MP. (2009). San Andreas Multiplayer. ,http://www.sa-mp.com/., accessed February 14, 2009.

Schmidt, E. R., Tapus, C., Kiniry, J., et al. (1999). A new approach to multi-user environments using software distributed shared memory. 1st Workshop on Software Distributed Shared Memory, Rhodes, Greece, June 1999.

Sowizral, H. (2000). Scene graphs in the new millennium. IEEE Computer Graphics and Applications, 20(1), 56–57.

CHAPTER 6 Sockets and Middleware

  Introduction

  6.1 Role of middleware

  6.2 Low-level socket APIs

    6.2.1 Main functions

    6.2.2 Name helper functions and options

    6.2.3 Network byte order

    6.2.4 Examples

    6.2.5 Socket usage patterns

    6.2.6 Windows

    6.2.7 Synchronous I/O

    6.2.8 Critique and discussion

  6.3 C and C++ Middleware for networking

    6.3.1 HawkNL

    6.3.2 SDL_Net

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值