Networking'in'Games' Peer=to=Peer' In=game'Networking'Topics' Computer Networks. Lecture'32:' Multiplayer'Gaming'



Similar documents
QoS Issues for Multiplayer Gaming

Higher Computing Networking 1

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

City University of Hong Kong

NFC EXPRESS User Manual

CURRICULUM VITAE EDUCATION:

Network Service Model. What Transport Services Does an App Need?

How To Understand The Concept Of A Distributed System

Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization

A Testbed for P2P Gaming using Time Warp

An Efficient Hybrid P2P MMOG Cloud Architecture for Dynamic Load Management. Ginhung Wang, Kuochen Wang

Fast Synchronization of Mirrored Game Servers: Outcomes from a Testbed Evaluation

The Architecture of Massive Multiplayer Online Games. Sladjan Bogojevic, Mohsen Kazemzadeh

RenderStorm Cloud Render (Powered by Squidnet Software): Getting started.

Database Scalability {Patterns} / Robert Treat

Architecture for a Massively Multiplayer Online Role Playing Game Engine

NETWORKING TECHNOLOGIES

Game Design From Concepts To Implementation

Configuring Sites and Understanding AD replication. Dante Villarroel Saavedra

Client/Server and Distributed Computing

The RoboCup Soccer Simulator

Cloud gaming and simulation in Distributed Systems. GingFung Matthew Yeung. BSc Computer Science 2014/15

Remote Graphical Visualization of Large Interactive Spatial Data

On the Design of Multiplayer Online Video Game Systems

Realtime Multi-party Video Conferencing Service over Information Centric Networks

SwanLink: Mobile P2P Environment for Graphical Content Management System

The Mammoth Dedicated Server Guidebook

Software Concepts. Uniprocessor Operating Systems. System software structures. CIS 505: Software Systems Architectures of Distributed Systems

COMMMUNICATING COOPERATING PROCESSES

Cisco 12 CCNA Certification

Introduction to Information Systems. 2 hrs lecture 2 hrs lab

QOS Requirements and Service Level Agreements. LECTURE 4 Lecturer: Associate Professor A.S. Eremenko

Chapter 19 Cloud Computing for Multimedia Services

A Survey of MMORPG Architectures

Sync your schedule and work orders with SME & Microsoft Outlook

Virtual Infrastructure Security

Operating Systems File system mounting, sharing, and protection. File System Mounting

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Lesson 5. Managing Devices. Learning Objectives. ODN Skills

Appendix A Core Concepts in SQL Server High Availability and Replication

MAC Web Based VPN Connectivity Details and Instructions

A Client-Server Interactive Tool for Integrated Artificial Intelligence Curriculum

IT2404 Systems Analysis and Design (Compulsory)

Page 1 of 5. (Modules, Subjects) SENG DSYS PSYS KMS ADB INS IAT

This presentation describes the IBM Tivoli Monitoring 6.1 Firewall Implementation: KDE Gateway Component.

How To Use An Iboss For Free On A Network With A Network (Networking) On A Pc Or Mac Or Ipod On A Server (For A Pnet) On An Ipon (For Free) On Your Ipon On A

TECHNICAL NOTE TNOI27

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

Optimizing Outlook Performance

Peer-to-peer framework of Distributed Environment for Cooperative and Collaborative Work Service Composition

Enhance student s learning with an aid of simulation software to understand Computer Networking Undergraduate courses.

Techniques for Using Time Matters in Remote Offices

FLORIDA STATE COLLEGE AT JACKSONVILLE COLLEGE CREDIT COURSE OUTLINE

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

Wireless LAN Concepts

COMPUTERS ARE YOUR FUTURE CHAPTER 7 NETWORKS: COMMUNICATING AND SHARING RESOURCES

Adding Outlook to a Blackberry, Downloading, Installing and Configuring Blackberry Desktop Manager

Brink Windows Dedicated Server Guide

How To Virtualize A Storage Area Network (San) With Virtualization

Chapter 6 External Memory. Dr. Mohamed H. Al-Meer

Multiresolution 3D Rendering on Mobile Devices

Distributed Virtual Environments: From Client Server to Cloud and P2P Architectures

Content. Massively Multiplayer Online Games Previous Work. Cluster-based Approach. Evaluation Conclusions. P2P-based Infrastructure

Wired & Wireless LAN Connections

Redundant Servers. APPolo Redundant Servers User Guide. User Guide. Revision: 1.2 Last Updated: May 2014 Service Contact:

Comparison between client-server, peer-to-peer and hybrid architectures for MMOGs

ParFUM: A Parallel Framework for Unstructured Meshes. Aaron Becker, Isaac Dooley, Terry Wilmarth, Sayantan Chakravorty Charm++ Workshop 2008

IT 3202 Internet Working (New)

Linux Web Based VPN Connectivity Details and Instructions

Network Design and Implementation of Synchronization Software

Local Area Networks transmission system private speedy and secure kilometres shared transmission medium hardware & software

The Essentials of Analysis and Design. Mehran Rezaei

Vault Project - Plant Database Replication. Contents. Software Requirements: AutoCAD Plant 3D 2016 and AutoCAD P&ID 2016

Implementing a Distributed Architecture for MMO based Asteroids

A Step-by-Step Guide to Synchronous Volume Replication (Block Based) over a WAN with Open-E DSS

Software Life-Cycle Management

Lesson Plan. Upon completion of this assignment, the student will be able to build a small network and identify the different types of hackers.

A Dell Technical White Paper Dell Storage Engineering

Chapter 16 Distributed Processing, Client/Server, and Clusters

Operating Systems and Networks

Information Technology Career Field Pathways and Course Structure

Release Notes, February 2009

Transcription:

NetworkinginGames Differentiatebetweenin=gamenetworking andbackendinfrastructure Computer Networks Lecture32: MultiplayerGaming Backendinfrastructure: lobbywheregamersmeet authenticationandkeychecking accountingandbilling rankingandladder reputationandblacklist buddylists,clans,andtournaments modsandpatchesmanagement virtualeconomy bewareofddos Issues:scalability,adaptingtofailure,security In=gameNetworkingTopics Topology: client=serverorpeer=to=peer Computationalmodel: distributedobjectvs.messagepassing Bandwidthrequirement Latencyrequirement Peer=to=Peer Peer=to=peerwithO(N 2 )unicastconnections: eachplayerisconnecteddirectlytoallotherplayers eachplayersimulatesthewholeworld advantages:reducedlatency,nosinglepointoffailure disadvantages:easiertocheat,notscalable:eachclient mustsendandreceiven-1messages Consistency Whichtransportprotocoltouse? TCP,UDP,reliableUDP

Client=Server Twoflavors: ad=hocservers:deathmatch dedicatedservers:mmog Twotypesofclients: clientssimulateworld,serverhasauthoritativestate: allowsforclient=sidedeadreckoning(quakeiii/half=life) clientsasdumbterminal,allsimulationsatserver:useful forthinclients,e.g.,cellphones,andpersistent=world MMOG Client=Server Advantages: eachclientsendsonlytoserver,servercanaggregates dedicatedserversmakescheat=proofingeasier servercanbebetterprovisioned persistentstates(formmog) Server Disadvantages: longerdelay serverbottleneck singlepointoffailure needsservermanagement MMOGServerArchitecture1 Theworldreplicatedateachserver(shard) eachshardcontainsanindependentworld playersgotospecificshard MostMMORPG Shard1 Shard2 MMOGServerArchitecture2 Theworldreplicatedateachserver(mirror) alltheworldsaresynchronized playersseeeveryoneacrossallmirrors Mirrorsmustbekeptconsistent Mirror1 High-speed Connection Mirror2

MMOGServerArchitecture3 Theworldissplitintoregions eachregionishostedbyadifferentserver example:secondlife Serversmustbekeptconsistent Server1 High-speed Connection Server2 DistributedComputingModel Gamecompanieshavetheirpreferred computingmodelandwouldprovidehigh= levellibrariestoimplementthemodel Twocommonmodels: distributedobjects messagepassing DistributedObjects Charactersandenvironmentmaintainedasobjects inputsareapplied toobjects(atserver) Changestoobjects propagatedtoall playersatendof gameloop Objectupdateusually implementedasone ormorelibrarycalls Initialization Overall Game Send & Receive Object Updates Game Session Render scene to buffer Copy buffer to display Local Input Main Logic: - update objects - game AI - physics - collision Time sync MessagePassing inputs(eitherbuttonpushesorhigher=level ments)aresenttootherplayers(orserver) Allplayersupdatetheir owngamestate Orserverupdatesthe globalgamestateand sendsitouttoallplayers Initialization Receive Remote (s) Input Overall Game Send Local Input Game Session Render scene to buffer Copy buffer to display Local Input Main Logic: - update states - game AI - physics - collision Time sync

MultiplayerGamingTraffic Whatinformationissentinamultiplayergame? dependsonyourcomputingmodel distributedobject:gamestate,e.g.,coordinates,status, action,facing,damage messagepassing:userkeystrokes,e.g.,commands/s ForRTS:1every1.5-2sec,upto3-4commands/secduring battles(butsomeoftheseareredundantandcanbe filteredout) In=gameNetworkingTopics Topology: client=serverorpeer=to=peer Computationalmodel: distributedobjectvs.messagepassing Bandwidthrequirement Latencyrequirement Consistency Whichtransportprotocoltouse? TCP,UDP,reliableUDP BandwidthRequirement BandwidthrequirementhasbeenHIGHLYoptimized evenwithaudiochat,takesupatmost8kbps so,bandwidthisnotabigissue butnotetheasymmetricnature: fornplayers,youreceiven-1timestheamountofbytesyousendout mustbecontinuallyvigilantagainstbloat However,withplayer=createdobjectsandworlds, bandwidthbecomesanissueagain:usestreaming, levelsofdetails,andpre=fetching LatencyRequirement Howislatencydifferentfrombandwidth? Tolerableround=triplatencythresholds: RTS: 250msnotnoticeable, 250-500msplayable,>500msnoticeable FPS: 150mspreferred carracing:<100mspreferred, 100-200mssluggish, 500ms,caroutofcontrol sexpectationcanadapttolatency itisbettertobeslowbutsmooththantobejittery

LatencyEffect:Consistency Problemstatement: Inbothcases: Case1: Case2: time player1 at1:2 sarrivesafter1 s at2:1 sarrivesafter2 s Should2beconsideredshotinbothcases? Oronlyinthesecondcase? player2 Synchronization Synchronization:: ordersbytheirtimesofoccurrence Assumegloballysynchronizedclocks Out=of=synchworldsareinconsistent Smallinconsistenciesnotcorrectedcanleadtolarge compoundederrorslateron(deernotspearedmeans onelessvillagermeansslowerbarrackbuild,etc.) WhentoRenderaMove? Howlongdoyouhavetowaitfortheother playerssbeforerenderingyourworld? time player1 X player2 Lock=StepProtocol Algorithm:eachplayerreceivesallother players sbeforerenderingnextframe Problems: time 1 2 longlatencyontheinternet variablelatencies jitterygamespeed gamespeeddeterminedbytheslowestplayer synchronize s and render scene

BucketSynchronization PessimisticConsistency Algorithm: bufferbothlocaland remotes playtheminthefuture eachbucketisaround, sayofabout200ms bucketsizecanbe adaptedtomeasuredrtt time Smootherplay,but: gamespeed(bucketsize)still determinedbyslowestplayer whatifaislostorlate? 1 X 2 synch s and render scene a player can have multiple s per turn Everyplayermustseetheexactsameworld eachplayersimulatesitsowncopyoftheworld alltheworldsmustbeinsynch usesbucketsynchronization eachplayersendsstoallotherplayers droppedpacketsareretransmitted adesignatedhostcollectsmeasuredrttsfromallplayersand setfuturebucketsizes Problems(thoseofbucketsynchronization): variablegamespeediflostpacketsmustberetransmitted speeddeterminedbytheslowestplayer DeadReckoningandRoll=back Deadreckoning,a.k.a.client=sideprediction extrapolatenextbasedonpriors e.g.,computethevelocityandaccelerationofobjectstodeadreckon v lost or late, dead reckoned playerscanhelpbysendingvelocityandaccelerationalong obviously,onlyworksifvelocityandaccelerationhaventchanged Incaseofinconsistency: serverassumedtoalwayshaveauthoritativeview whenclientscorrect(roll=back)inconsistentviews, playersmayexperience warping OptimisticConsistencywithRoll=back Observation:deadreckoningdoesnthavetobe limitedtolostpackets! Half=Life: eachclientplaysbackitsownsimmediatelyand sendsthestoserver eachclientalsodeadreckonstheotherplayers s servercomputesworldandsendsitsauthoritative versiontoallclients clientsreconciledeadreckonedworldwithserversversion onlyneedtosynchronizeimportantevents,butmustbe carefulthatdeadreckoningerrorsdontgetcompounded overtime canresultinsomejerkinessandperceptionof shootingaroundcorner

ShootingAroundCorner X Consistency:Correctness Forconsistencyalluserinputmustpassthroughthe Initialization Overall Game synchronizationmodule Becarefulwithrandom numbergenerators:isolate theoneusedforgame=state updatingfromotheruses Send Local Input (ambientnoiseetc.) Receive Remote (s) Input Designformultiplayerfromthestart single=playerbecomesaspecial caseofsingle=clientmultiplayergame Game Session Render scene to buffer Copy buffer to display Local Input Main Logic: - consistency - game AI - physics - collision Time sync Consistency:Smoothness Forsmootherplayback,decouplebucketsizefrom framerate Immediatelyrenderlocals Modifygamedesigntoallowforlatencyandloss,e.g., makeplayerwaitforelevator teleportationtakestime requiremultiplehitsperkill,evensniperscanmiss letbullet/missilehaveflyingtime buildininertia,dontallowsuddenchangesinfacing ReducingConsistencyCheck Doarea=of=interestmanagement (a.k.a.relevancefiltering): aura:howfaryoucanbesensed (ninjasandcloakedshipshaveauraof0) nimbus:howfaryoucansense (empathandquantum=sensorhavelargenimbus) PerformconsistencycheckonlywhenBiswithinAs nimbusandaiswithinbsaura Auraandnimbusaredefinedforagivensetof game technology (e.g.,cloakingdevice,quantumsensor,etc.)

WhichTransportProtocoltoUse? Gamingrequirements: latepacketsmaynotbeusefulanymore lostinformationcansometimesbeinterpolated (thoughlossstatisticsmaystillbeuseful) UseUDPingame: canprioritizedata canperformreliabilityifneeded canfilteroutredundantdata usesoft=state sendabsolutevalues,notdeltas orifdeltasareused,send``baselinedataperiodically mustdocongestioncontrolifsendinglargeamountofdata