Warcraft III, by Blizzard CSE 381 – Advanced Game Programming Networked Gaming Issues.

Slides:



Advertisements
Similar presentations
Review of Topology and Access Techniques / Switching Concepts BSAD 141 Dave Novak Sources: Network+ Guide to Networks, Dean 2013.
Advertisements

Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
Guide to TCP/IP, Third Edition
IS333, Ch. 26: TCP Victor Norman Calvin College 1.
Network synchronization of Online Games Li, Zetan.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
TDC365 Spring 2001John Kristoff - DePaul University1 Internetworking Technologies Transmission Control Protocol (TCP)
Introduction Future wireless systems will be characterized by their heterogeneity - availability of multiple access systems in the same physical space.
Packet Loss and Latency in Unreal Tournament 2003 Tom Beigbeder Rory Coughlan Corey Lusher John Plunkett.
1 689 Lecture 2 Review of Last Lecture Networking basics TCP/UDP review.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
Error Checking continued. Network Layers in Action Each layer in the OSI Model will add header information that pertains to that specific protocol. On.
Process-to-Process Delivery:
1 CMSCD1011 Introduction to Computer Audio Lecture 10: Streaming audio for Internet transmission Dr David England School of Computing and Mathematical.
1 Chapter Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
1 Transport Layer Computer Networks. 2 Where are we?
Chapter 4. After completion of this chapter, you should be able to: Explain “what is the Internet? And how we connect to the Internet using an ISP. Explain.
Network Physics Created by Ruslan Yavdoshak for Nikitova Games, 2008.
Jaringan Komputer Dasar OSI Transport Layer Aurelio Rahmadian.
CECS 474 Computer Network Interoperability Notes for Douglas E. Comer, Computer Networks and Internets (5 th Edition) Tracy Bradley Maples, Ph.D. Computer.
1 Network Gaming. History of Network Gaming MUD MUD –Multi-user Dungeons Modem Games Modem Games Match Makings Match Makings –Real-time strategy –FPS.
CSE 461 University of Washington1 Topic The sliding window algorithm – Pipelining and reliability – Building on Stop-and-Wait Yeah! Network.
Chapter 2 – X.25, Frame Relay & ATM. Switched Network Stations are not connected together necessarily by a single link Stations are typically far apart.
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
Recitation 8 Wireless Networks. Virtual carrier sensing First exchange control frames before transmitting data – Sender issues “Request to Send” (RTS),
TCP/IP Suite Transmission Control Protocol/ Internet Protocol Presentation by Chandra Porchia.
Computer Networks Performance Metrics. Performance Metrics Outline Generic Performance Metrics Network performance Measures Components of Hop and End-to-End.
Wireless TCP Prasun Dewan Department of Computer Science University of North Carolina
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.5 Internetworking Chapter 25 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, , WWW) Reliable Stream Transport (TCP) Connectionless Packet Delivery.
Transport Layer Moving Segments. Transport Layer Protocols Provide a logical communication link between processes running on different hosts as if directly.
Transport Layer COM211 Communications and Networks CDA College Theodoros Christophides
03/11/2015 Michael Chai; Behrouz Forouzan Staffordshire University School of Computing Streaming 1.
Networking Fundamentals. Basics Network – collection of nodes and links that cooperate for communication Nodes – computer systems –Internal (routers,
Multimedia streaming Application Anandi Giridharan Electrical Communication Engineering, Indian Institute of Science, Bangalore – , India Querying.
Lecture 4 Overview. Ethernet Data Link Layer protocol Ethernet (IEEE 802.3) is widely used Supported by a variety of physical layer implementations Multi-access.
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
Forward Error Correction vs. Active Retransmit Requests in Wireless Networks Robbert Haarman.
Internet multimedia: simplest approach audio, video not streamed: r no, “pipelining,” long delays until playout! r audio or video stored in file r files.
Queuing Delay 1. Access Delay Some protocols require a sender to “gain access” to the channel –The channel is shared and some time is used trying to determine.
Network Replication Possibly the ugliest thing to learn this semester Many different states Simulated Functions Is it an Event or function? Roles.
1 Transport Layer: Basics Outline Intro to transport UDP Congestion control basics.
79 Sidevõrgud IRT 4060/ IRT 0020 vooruloeng 8 / 3. nov 2004 Vooülekanne Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
IT 424 Networks2 IT 424 Networks2 Ack.: Slides are adapted from the slides of the book: “Computer Networking” – J. Kurose, K. Ross Chapter 3: Transport.
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Performance Evaluation of L3 Transport Protocols for IEEE (2 nd round) Richard Rouil, Nada Golmie, and David Griffith National Institute of Standards.
Day 13 Intro to MANs and WANs. MANs Cover a larger distance than LANs –Typically multiple buildings, office park Usually in the shape of a ring –Typically.
Chapter 28 Q and A IS 333 Spring A quiz question Q: What is network latency? 1.Changes in delay and duration of the changes 2.time required to transfer.
UDP: User Datagram Protocol. What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host – treats a computer as an.
Networking Project. Game Networking Game Networking Topology Star (client/server) Topology – All devices are connected to a central hub (server) – Nodes.
Chapter 9: Transport Layer
Instructor Materials Chapter 9: Transport Layer
Unity Networking.
Transport Layer Unit 5.
Goal Control the amount of traffic in the network
File Transfer Issues with TCP Acceleration with FileCatalyst
Congestion Control, Internet Transport Protocols: UDP
CPEG514 Advanced Computer Networkst
Beyond FTP & hard drives: Accelerating LAN file transfers
Computer Networks Topic :User datagram protocol Transmission Control Protocol -Hemashree S( )
Computer Networks Protocols
Lecture 6, Computer Networks (198:552)
Presentation transcript:

Warcraft III, by Blizzard CSE 381 – Advanced Game Programming Networked Gaming Issues

Types of Online Games U.S. games market for 2004 was $ 7.3 billion –roughly 42% of gaming was done online in some capacity Common online game types: –Deathmatch FPS direct control over avatar –RTS, RPG indirect, delayed control over avatar –Casual Games –Mobile Games Used to rarely be plot driven, that’s changed

Concerns for Networked Game Programmers Throughput –amount of data that can be stuffed into the pipe –usually not a problem Latency –end-to-end delay –a problem for certain game types Jitter –variation of latency Packet loss –data lost along the way

Bandwidth Maximum transfer rate of a communication channel Size of a pipe The goal of the networked game programmer: –ensure there is little enough information going through the pipe so as not to take up all available bandwidth –ensure enough data is passed to maintain data properly

Bad Bandwidth Assumptions It’s easy to blame bandwidth for poor network performance There are other culprits Ex: –Input buffers get filled faster than they get emptied To quote John Carmack talking about slowdowns: –“most of the problems are due to having far too many buffers and abstractions between the data producers/consumers and the actual wire”

Latency & Gameplay Degradation Research RTS –Warcraft III with latency of several seconds, still minimal degradation of gameplay Sports Games –Madden NFL Football when latency over ½ second, rapid degradation –Car racing simulation latency over 50ms affects game results latency over 100ms affects realism of game FPS –Unreal Tournament 2003 latency over 75 ms noticeable to players latency over 100 ms made gameplay less enjoyable

Generally Speaking Typical latency in a game played over a 56k modem would be 160 – 200 ms Human tolerance for game delays is 100 – 200ms –or lower for fast paced games as we’ve seen Too bad for mobile games –GPRS typically has round trip times of 1000 – 2700 ms –For newer 3G networks, 400 – 500 ms –Even longer if you want to use GPS

Network Information Much information is available to a network programmer (and API like DirectPlay) –statistics about network traffic –ex: peak throughput through pipe (bytes per second) average throughput ( bytes per second) round trip latency number of timed-out messages Is the server sending too much data? Can it send more? Ex: long round trip latencies may mean you are saturating either the client or server bandwidth

Some DirectPlay Rules Will not send messages to a remote computer faster than it can process them If it detects a remote computer isn’t responding fast enough: –will queue the message on the sender –won’t send it until a more appropriate time –ultimately, packets may be coalesced or timed out Doesn’t this ruin it for everyone? –only those players’ computers struggling to keep up will be affected Programmers may also check the queue. Why? –to see if it’s filling up –if so, send less data to a client

Decisions to make Types of data to send Should prioritizing be used? –If so, what algorithm should be used? TCP vs UDP Should prediction and/or simulation be used? –If so, what algorithm should be used? Network Architecture

Minimize Data Sent Remember, the most important thing in tuning your network performance is to eliminate unnecessary data being passed across the network Rules of thumb: –don’t send strings unless it’s necessary –always send the smallest data types possible –never send a boolean variable especially if you have more than one what if you have 4 booleans to send? –send one byte that is bit-masked The more data you can get in the smallest packets, the more available network bandwidth you have Throughput requirement examples: –Counter Strike: approx. 34kbit/s –Warcraft III: approx. 5kbit/s

Prioritizing Deciding what data to send –don’t send all data, FPS in particular. Why not? –minimize the amount of data sent –Send only part of game state that which is currently relevant to a player Ex: positions of viewable players only Another approach: prioritize bandwidth –divide network bandwidth up among clients –provide more bandwidth to players who currently need it more

TCP vs. UDP Both transport layer protocols on top of IP What’s the difference? TCP is lossless. What’s that? What TCP (Transmission Control Protocol) gives you: –reliable delivery –retransmission and reordering –congestion control What UDP (User Datagram Protocol) gives you: –unreliable delivery –no retransmission, packets not ACKnowleged, no reordering –no congestion control –speed & low overhead (good for streaming audio/video)

TCP vs. UDP Which should you Use? That depends Some game data can be interpolated –if packet is lost, the game can continue Some game data must be guaranteed to be received –some things can’t and shouldn’t be interpolated Understand TCP is slower, but safer Both are used, both have virtues, both have drawbacks Programmers are always looking for UDP opportunities Alternative: write your own “Reliable UDP” and use for certain types of info sent

Prediction & Simulation for Clients & Servers What does a client do in between receiving network communications? How can it render the game world for every frame? Prediction & Simulation –use some algorithm to predict what will happen and simulate the results –obviously not everything should be predicted/simulated For example, where are the other players located?

Mobility Models Prediction & Simulation Algorithms for actor movement Dead Reckoning –interpolate where an actor will be based on most recent state –what’s the problem with this? Informed prediction –what are past patterns of movements –statistical predictions

Network Architectures The reality is that most architectures are hybrids –much processing is done on clients ex: collision detection –would be too much of a strain on servers –much prediction must therefore be done on clients ex: players manage their own movements –cost of this: cheating

References Unreal Network Architecture – Networking Multiplayer Games by Sugih Jamin – Analysis of Factors Affecting Players’ Performance and Perception in Multiplayer Games by Matthias Dick, Oliver Wellnitz, Lars Wolf John Carmack’s Blog – High Latency Multiplayer Gaming by Edward Hannay