Net Centric Computing - Graphics

Similar documents
High Level Graphics Programming & VR System Architecture

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES

Networked Graphics 01_P374423_PRELIMS.indd i 10/27/2009 6:57:42 AM

WebGL Meetup GDC Copyright Khronos Group, Page 1

Graphics for VEs. Ruth Aylett

CMPE150 Midterm Solutions

Chapter 5.6 Network and Multiplayer

Parallel Programming on Larrabee. Tim Foley Intel Corp

6 Computer Networks 6.1. Foundations of Computer Science Cengage Learning

Networking, Traffic Jams, and Schrödinger's Cat. Shawn Hargreaves Software Development Engineer XNA Community Game Platform Microsoft

Dive into Mobile VR/AR Games

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 21: Network Protocols (and 2 Phase Commit)

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Applications of Explicit Early-Z Z Culling. Jason Mitchell ATI Research

Moving Data on the Edge. The fastest & most reliable way to transfer files

Dealing with DirectPlay Environments under DirectX

Interactive Graphical Systems HT2006

Internetworking Models The OSI Reference Model

CSCI 466 Midterm Networks Fall 2013

Computer Networked games

Java2D/Java3D Graphics

Chapter 2 Network Models 2.1

Graphics for VEs. Ruth Aylett

Master Course Computer Networks IN2097

Silberschatz and Galvin Chapter 15

MISB EG Motion Imagery Standards Board Engineering Guideline. 24 April Delivery of Low Bandwidth Motion Imagery. 1 Scope.

Lecture 2 Communication services The Trasport Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Topics. Overview of VRML 97 VRML Today After VRML

Schahin Rajab TCP or QUIC Which protocol is most promising for the future of the internet?

Introduction to LAN/WAN. Application Layer 4

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

Introduction to X3D. Roberto Ranon HCI Lab University of Udine, Italy

Peer-to-Peer Support of Massively Multiplayer Games

Defining Networks with the OSI Model. Module 2

Multimedia Networking

Distributed Systems. Why use distributed systems? What is a distributed system? Intro to Distributed Systems and Networks.

STM. Computing. Specifica on Topics. High Level Skills you should think about to take your work to the next level:

8.3 Networked Application. History and Evolution. U.S. Department of Defense (DoD) SIMNET NSA. i. Object-Event Architecture

Networking and Health Information Exchange: ISO Open System Interconnection (OSI)

Collision Detection. Pu Jiantao.

Networking Presented by: Marcin Chady

OSI Layer OSI Name Units Implementation Description 7 Application Data PCs Network services such as file, print,

Publishing 3D contents on the Web: An Introduction

Networked Virtual Environments and Distributed Rendering IGS HT Background and history. Background and history. Background and history

A Hybrid Architecture for Massively Multiplayer Online Games

Physically-Based Laser Simulation

Chapter 1. Introduction

In this lecture we cover a number of networking issues pertinent to the support of distributed computing. Much of the material is covered in more

Analyze and Optimize Windows* Game Applications Using Intel INDE Graphics Performance Analyzers (GPA)

Review of Previous Lecture

Fundamentals of Information Systems, Seventh Edition

TCP/IP protocol suite

Networking and Internetworking 1

4.0.1 CHAPTER INTRODUCTION

PLEASE READ CAREFULLY BEFORE YOU START

Application Level Protocols

Business Data Communications and Networking

CCNA Exploration Network Fundamentals. Chapter 3 Application Layer Functionality and Protocols

Programmation système

CSE 333 Lecture C++ final details, networks

gltf Briefing September 2016 Copyright Khronos Group Page 1

Network Programming. Simulation Engines 2008 Chalmers University of Technology. Markus Larsson

CNBK Communications and Networks Lab Book: Purpose of Hardware and Protocols Associated with Networking Computer Systems

Network Programming. Introduction to Sockets. Dr. Thaier Hayajneh. Process Layer. Network Layer. Berkeley API

Networking Past, Present and Future

CSE 167: Introduction to Computer Graphics Lecture #8: Scene Graph. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015

Computer Graphics Introduction. Taku Komura

Game Traffic Analysis: An MMORPG Perspective

Bandwidth, Latency, and QoS for Core Components

Geometry Primitives. Computer Science Department University of Malta. Sandro Spina Computer Graphics and Simulation Group. CGSG Geometry Primitives

CSE 461 Module 10. Introduction to the Transport Layer

Overview of TCP/IP Overview of TCP/IP protocol: TCP/IP architectural models TCP protocol layers.

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

CS4700/5700: Network fundamentals

APPENDIX F THE TCP/IP PROTOCOL ARCHITECTURE

JPS Interoperability Solutions RSP-Z2 Executive Outline

Chapter 4. TCP / UDP Transport Protocol Overview

Resolving Network Performance Issues with Real-time Monitoring A Series of Case Studies

PLEASE READ CAREFULLY BEFORE YOU START

BROADBAND AND HIGH SPEED NETWORKS

CCNA R&S: Introduction to Networks. Chapter 7: The Transport Layer

VREDPro HPC Raytracing Cluster

UNIT IV -- TRANSPORT LAYER

MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens)

Intel Graphics Performance Analyzers Instrumentation Walkthrough

Pong in Unity a basic Intro

Internetworking Concepts Overview. 2000, Cisco Systems, Inc. 2-1

Principles of Computer Game Design and Implementation. Revision Lecture

FAQ for Autodesk A360 and its tiers A360 Team, A360 Drive and the Tech Preview

CSMA based Medium Access Control for Wireless Sensor Network

Module 16: Distributed System Structures

CS 457 Multimedia Applications. Fall 2014

Chapter 11: Wide-Area Networks and the Internet

Lecture 2: Internet Architecture

Application Layer Introduction; HTTP; FTP

Internet. Class-In charge: S.Sasirekha

Networks. Distributed Systems. Philipp Kupferschmied. Universität Karlsruhe, System Architecture Group. May 6th, 2009

Distributed Multimedia Systems. Introduction

Remote Health Monitoring for an Embedded System

MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens)

Transcription:

Net Centric Computing - Graphics Sandro Spina Computer Graphics and Simulation Group Computer Science Department University of Malta 1

Graphics + Web = Web3D2009 Web3D 2009 Symposium, 14th International Conference on 3D Web Technology. Sponsored by ACM SIGGRAPH and in cooperation with EuroGraphics www.web3d2009.org 14th in the series, the Web3D 2009 International Symposium will address this wide range of topics covering 3D hypermedia on the web. The annual Web3D Symposium is a major event, which unites researchers, developers, experimenters, and content creators in a dynamic learning environment. Attendees share and explore methods of using, enhancing, and creating new 3D web and multimedia technologies, such as X3D, VRML, COLLADA, Croquet, MPEG4, Java3D, and Canvas3D. The symposium will also address new trends such as interactive 3D graphics applications on mobile devices. 2

Net Centric Computing Three main components Traditional computing A network Computer Graphics + Visualisation You have done work on traditional computing (at the programming level) You have also discussed low-level networking in the initial part of this course. 3

Graphical Component In the next 4 hrs we shall introduce at the application level a number of CG concepts together with a number of tools. Concepts SceneGraphs, Rendering, etc Tools Scripting Languages XML formats for 2D and 3D Graphical APIs (Java3D, JavaFX, Croquet) 4

Graphical Applications Traditionally desktop based using graphics APIs (DirectX/OpenGL) Which include networking code as part of the application But each application is made to live on it s own there is no integration if not planned beforehand at the design stage It would be nice to have something similar to web pages where you know that once you ve written your site/program it can be viewed by anyone over the internet. 5

Graphical Applications on the Web One can categorise software which somehow employs CG by the technologies they use: HTML/Javascript (eg. ikariam.org is a widely popular MMOG) It would be nice to have something similar to web pages where you know that once you ve written your site it can be viewed by anyone and it can somehow connect to other web sites. 6

Ikariam (Online Multiplayer) 7

Ikariam (Source ) 8

Alternatively One can split net centric application which are either Deployed and rendered on a browser Standalone executables which make use of custom networking (eg using RakNet) Clearly one can come up with other clustering criteria 9

Net Centric + Graphics As we ve seen there are many forms by which graphical applications can exploit a network connection. And there are many technologies + custom built application such as distributed ray tracing or flight simulators. 10

VR applications (4) Games / Simulations 11

4hr Outline Discuss Technologies Networking Libraries Graphics Pipelines SceneGraphs (concept) Middleware+MMOG (eg. RakNet) SVG: 2D graphics for the Web JavaFX X3D: VRML + XML (X3D Earth) Java3D (Applets or WebStart) Croquet (3D browsing!!) 12

Graphics pipeline Rendering: takes some description of a 3D object, process it and then output a visually pleasing image on the screen. 3D geometry; Transformations (+Projective T); Lighting + Shading; Rasterisation; 13

Simplified view of Pipeline (i) 14

Simplified view of Pipeline (ii) 15

SceneGraphs Many technologies that we ll be looking at employ some form of scene graph representation. A scene graph is essentially a hierarchical representation (graph) of graphical objects in a scene. Takes care of the logical and spatial relationships between objects in a scene. First build the scene graph then render it as opposed to immediate mode apps which use opengl or directx directly. 16

OpenSceneGraph an example Is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualisation and modelling. In OSG, the scene graph consists of a hierarchy of nodes representing Spatial goups of related geometries Animations, Lighting + material The leaves would represent the physical objects. For every frame the scene graph is traversed and objects in the view volume are rendered. Networking is achieved by integrating it which networking libraries such as RakNet and TNL 17

opentnl (Torque Network Library) Is a robust, secure, easy-to-use, cross-platform c++ networking API designed for high-performance and games www.opentnl.org Eg. Player class defines methods pack (converts useful player states such as velocity, ammo, location, etc into a stream of data) and unpack (which given this stream of data recovers velocity, ammo, location, etc ) The above is a simple example of how networking is carried out in a gaming scenario. 18

Network Protocols (UDP & TCP) UDP is unreliable while TCP is reliable In network programming (especially of real-time gaming) there are three fundamentally important limitations High packet latency Limited bandwidth Packet loss 19

Coping with bandwidth limitations In multiuser simulations conserving bandwidth is extremely important Clients may be connected over low bandwidth transport Servers have to pay for bandwidth usage and cope with high number of clients Strategies to conserver bandwidth Send static data once!! Compress data to the minimum possible Update only the parts that change (eg. Player updates do not need to include health level if that has not changed but just the new location and speed) 20

Coping with packet loss some packets will inevitably be lost! One can use TCP/IP but the overheads are huge for real-time networked simulations (although sometimes it is used) TNL implements a new network protocol similar to UDP but with more capabilities. 21

Latency Is the time it takes for information to travel on the physical medium from one host to the other On the client side one can make use of interpolation of data to smoothly move an object from where the client thinks it is to where the server declares it to be. 22

Typical Network Topologies (p2p) particularly adept to gaming (or any visualisation app) Peer-to-Peer: In a peer-to-peer network application, the client processes involved in the network communicate directly with one another. Though there may be one or more hosts with authoritative control over the network of peers, peer-to-peer applications largely distribute the responsibility for the simulation or application amongst the peers. 23

Typical Network Topologies (client-server) Client-Server: In the client-server model, one host on the network, the server, acts as a central communications hub for all the other hosts (the clients). Typically the server is authoritative, and is responsible for routing communication between the several clients. 24

Typical Network Topologies ( Client-Tiered Server Cluster ) Client-Tiered Server Cluster: In network applications where more clients want to subscribe to a service than can be accommodated by one server, the server's role will be handled by a cluster of servers peered together. The servers in the network communicate using the peer-to-peer model, and communicate with the clients using the client-server model. The servers may also communicate with an authoritative "superserver" to handle logins or resolve conflicts. 25

RakNet Multiplayer on a Deadline Lobby System Support for friends, rooms, quick match, ranking Object Replication System Automatically create, destroy, serialize and transmit your game objects. Secure Connections SHA1, AES128, SYN Cookies, and RSA to prevent and detect network attacks Robust Communication Layer Autopatcher updates user with db driven binary patches RPC Voice Communication 26

Middleware Software (takes care of networking) Recently there has been a move towards the development of middleware software for MMOG This middleware would be responsible to handle visualisation, networking, AI and all elements of a game. An example of such a development is BigWorld. 27

Middleware Software (takes care of networking) Image source: bigworld site 28

Blink3D create virtual worlds then publish 29

Network Game Development in XNA Design targets: Enable networked multiplayer games Make the API easy to use Support both Xbox LIVE and Games for Windows LIVE Allow development with a single Xbox360 and PC Don t require dedicated servers 30

XNA Network Configurations P2P networks: all the participants are clients of each other. I.e. when something changes on one computer, that computer sends a message to all other computers telling them what s happened. Client/Server: typically has one server, and the rest of the machines are clients. All communications are run through the server. If something happens on one computer, that computer sends a message to the server which in turn sends messages to the rest of the clients. P2P is inadequate with games like World of Warcraft image how many network connections you would need to keep open!! 31

Chasing game using XNA networking Let s say you want to implement a game where one player chases another player around the screen, with the goal of colliding with the other player the player being chased will earn more points the longer he stays away from the chaser. (note the real-time nature of the game - collision detection) We can use a P2P network for this game Note that passing data through a network is a bottleneck in terms of performance hence one has to figure out the least amount of information that is necessary to be sent over the network. In this case we only need the positions. 32

Game States in networking A typical game would have a start state where you display instructions for eg and splash screens, an in-game state and an end-game state In networking there could be more states for example sign-in state (where the player signs into Xbox LIVE for eg.) Find session state (where the player is searching for sessions of his game) Create session state (where the player can create sessions) 33

Message types for our game It s always a good idea to create a list of possible message types {StartGame, EndGame, RestartGame, RejoinLobby, UpdatePlayerPosition } Why do we pass these message types at the start of each message? 34

Answer Because normally you wouldn t know whether you re expecting an int, or a string, or a vector, or two strings, etc The message type (header) informs the receiving end what to expect. Hence you will be sending data informing the other end whether you want to start a game, end the game, rejoin the lobby, or update the players position. Data is sent in packets I m sure you ve discussed what a packet is in your previous classes. 35

XNA Networking code some classes NetworkSession class this is the backbone of any networked game in XNA. This class represents a single multiplayer session of your game. From this class you can access all members of the session + other properties pertinent to the multiplayer session. PacketWriter class send data across the network to the other computer PacketReader class reads packets of information from the network 36

Network updating per state Depending on which state the game is it will call different methods to handle the different state This networking code is executed in the update part of the game loop It will first check if there is data to be read using: while ( LocalNetworkGamer.IsDataAvailable ) { } If no data is available then it will skip reading any data from the network obviously a game can t block waiting for data. 37

Start Game flow diagram Player 1 presses START Player 2 reads Incoming data Write packet with Message type StartGame Message found: StartGame Send packet to other player Call StartGame() method Call StartGame() method 38

More game logic As you can image there will be much more game logic involved the development of the game keeping up the scores drawing the remote players 39