TBSK 03 Teknik för avancerade datorspel. Jens Ogniewski Information Coding Group Linköpings universitet



Relevanta dokument
TBSK 03 Teknik för Advancerade Datorspel. Jens Ogniewski Information Coding Group Linköpings universitet

TBSK 03 Teknik för Advancerade Datorspel

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY

Chalmers tekniska högskola EDA390 Datakommunikation och Distribuerade system

Real-time requirements for online games

TSBK 10 Teknik för avancerade datorspel Fö 10: Nätverk, Peter Johansson, ISY

TBSK03 Teknik för avancerade Datorspel. Jens Ogniewski Information Coding Group Linköpings universitet

Projektrapport EDA095

GIS i molnet. GISS After Work, 13 oktober 2011 Roger Hamrén Cartesia GIS AB. -En del av AddNode

5 Internet, TCP/IP och Tillämpningar

Repetition DK2 Middleware, P2P, Multimediatransport. Stefan Alfredsson 18 Mars 2005

Distribuerade affärssystem

Datakommunikation vad är det?

Capitex dataservertjänst

5 Internet, TCP/IP och Applikationer

Tentamen, Distribuerade System/Programvaruarkitektur

Föreläsning 5. Vägval. Vägval: önskvärda egenskaper. Mål:

LABORATIONSRAPPORT Säkerhet och Sårbarhet Laboration 1 Brandväggar

Denial of Services attacker. en översikt

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)

TCP/IP och Internetadressering

Tidsservrar vid svenska knutpunkter för Internet. Innehåll. Projektet Tidhållning på Internet i Sverige

Teknik för avancerade datorspel!

Tentamen i Kommunikationssystem och nätverk, ETSF15

Så här hanterar du din OneDrive i Office 365

Teknik för avancerade datorspel!

TBSK 03 Teknik för Advancerade Datorspel

Mattias Wiggberg 1. Orientera på Internet. IP-adress. IP-adresserna räcker inte... Mer om IP-adresser

Innehåll Molntjänster... 4 Vad är detta?... 5 Cirkeln sluts... 6 The Cloud... 7 The Cloud (forts.)... 8 Definition av molntjänster...


Synkronisering. Föreläsning 8

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Förebyggande Råd från Sveriges IT-incidentcentrum

ETS Fördjupningsuppgiften Ämnen. Mål för fördjupningsuppgiften. Hur kommer det att gå till? Jens A Andersson

Tentamen i Datorkommunikation den 10 mars 2014

SIZE CONNECT, TEKNISK BESKRIVNING

Norman Endpoint Protection (NPRO) installationsguide

Tentamen Nätverksprogrammering Lösningsförslag

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

Operativsystem. Hierarkin för hårdvara läses nerifrån

TBSK 03 Teknik för Advancerade Datorspel

Big Data i spelbranchen

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: Skola: DSV

8SSJLIW.RPELQHUDEHJUHSSPHGGHILQLWLRQHUS

IT för personligt arbete F2

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

SÄKRA DIN AFFÄR VART DEN ÄN TAR DIG. Protection Service for Business

Datakommunikation vad är det?

STYRD LOKAL FÖRDRÖJNING I ONLINESPEL

Loopar och ljud 3 av 7. Lektionen handlar om att lära sig programmera loopar och använda ljudeffekter med verktyget Scratch. Loopar och ljud 3 av 7

Vad är vad uppe bland molnen stratus, cumulus eller nimbus?

Molntjänster. Översikt. Lektion 1: Introduktion till molntjänst. Introduktion till molntjänst. Vilka tjänster finns? Säkerhet.

Åtkomst till Vårdtjänst via RSVPN

Transport Layer. Transport Layer. F9 Meddelandesändning med UDP EDA095 Nätverksprogrammering. Java och UDP TCP/UDP

Grundläggande datavetenskap, 4p

Pressrelease Artes Industriambassadör Mer realistiska skuggor i datorspel och virtual reality-applikationer

STYRKAN I ENKELHETEN. Business Suite

Biometria Violweb. Installation kundportalaccess - för IT-administratörer. Mars 2019

En felsökningsguide för rcloud Office tjänsterna och lite manualer.

Databaslagring av tredimensionella datorspelsobjekt i realtid Tor Andersson

4 Paket- och kretskopplade nät

SPID och identifiering av obfuskerade protokoll

FUSKFÖREBYGGANDE BANDBREDDSOPTIMERING I REALTIDSSTRATEGISPEL

VI SI CLOSETALK AB SYSTEMKRAV

URVAL AV UTFÖRDA HOBBYPROJEKT

Pipelining i Intel Pentium II

QuickTime Streaming Server, en introduktion

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Tentamen i Realtidsprogrammering

ABFs E-post & mobiltelefonen. Lathund

I D C : S Y T T R A N D E. Sponsrad av: VMware. Brett Waldman Maj 2013

ICQ - EN SOCIAL GIMMICK ELLER ETT SAMARBETSVERKTYG?

Transportnivån. Kommunikation mellan processer. Kommunikation mellan processer. Sockets och TCP. UDP (User Datagram Protocol) Checksumman

Sites/GC/FSMO. EC Utbildning AB

Använda Outlook 2003 mot Exchange

Praktiska tillämpningar av QoS-teknologi

Studie av beräknings- och nätverksprestanda i 10GbE HPCkluster

P L A Y. Adobe Produktguide. Adobe Photoshop Elements 4.0 Adobe Premiere Elements 2.0

Instuderingsfrågor ETS052 Datorkommuniktion

Planering och RA/DHCPv6 i detalj

Matematik och det nya medialandskapet

För att använda detta system behöver du en dator med internetåtkomst samt din G&D iphone.

Datakommunika,on på Internet

Vad är molnet? Vad är NAV i molnet? Vem passar NAV i molnet för? Fördelar med NAV i molnet Kom igång snabbt...

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund Marcus Widblom Senast ändrad: 13 / 05 / 08

IPv6 Jonas Aronsson 3TEa

Världens första WQHD gamingskärm med G-SYNC, snabb uppdateringsfrekvens på 144 Hz och responstid på 1 ms

OH Slides F: Wide Area Networks

Standard, handläggare

Appen som gör dig mer effektiv

INVERKAN AV PRIORITERING FÖR UTRYCKNINGSFORDON I TRAFIKSIGNALER CASE ULEÅBORG, FINLAND

F2 Exchange EC Utbildning AB

F8 Meddelandesändning med UDP

LAJKA-GUIDE. Här är nätets 9 bästa. digitala spelbutiker. 7 Steam 7 Amazon 7 Gamefly och 6 andra

Tentamen på kursen Distribuerade system. Lycka till!

4 Paket- och kretskopplade nät

En samling fårskallar

2D1395, Datasäkerhet. GF3 Paketfiltrering

JHS 179 Planering och utveckling av en övergripande arkitektur Bilaga 9. Virtualisering och molntjänster i planering av teknologiarkitektur

Avsnitt 1 Multimedia på Internet Introduktion

Transkript:

TBSK 03 Teknik för avancerade datorspel Jens Ogniewski Information Coding Group Linköpings universitet

Problemdefinition Fleranvändarspel på webben (framförallt MMPORG) populärare än lokala nätverk- eller en-person-spel Roligare att spela med/mot andra Dock: lägger till synkroniseringsproblem Internet: ingen garanti när ett meddelande når mottagaren, inte ens att det kommer dit överhuvudtaget 1/33

Internet 2/33

Internet Paket-orienterat, Best Effort Ingen bandbredd eller latens garanterad Bandbredden förbättras alltid, fast latensen fortfarande är (nästan) densamma Vägen genom webben kan variera från paket till paket Typiskt: 10 25 hopp Paketen måste inte komma fram i rätt ordning 3/33

Internetprotokoll UDP TCP Paket-protokoll Ström-protokoll Ingen garanterad leverans Leveransgaranterat via ack-meddelande och omsändningar Paket kan komma i fel ordning Paket bli sorterat och kommer i rätt ordning Paketet ges direkt till applikationen Paket kan fördröjas om förväntat paket inväntas (FIFO kö) 4/33

Internetbaserat spel Olika spel har olika krav på kommunikationen Olika lösningar för kommunikationen 5/33

Actionspel (t.ex. ego-shooter) Inte så många spelare Hårda realtidskrav Många meddelanden Variant: själva simuleringen körs på en server Som säger klientdatorer - vad spelaren kan se Klientdatorer skicker spelkommandon till serveren Klienter kan komma och gå som de vill Fusk blir (nästan) omögligt 6/33

Strategispel Rätt synkronisering väldigt viktigt Inte så många uppdateringer som Actionspel Många objekt, kanske många spelare Inte så hårda realtidskrav (om rundbaserat) Istället skickas information om varje objekt - spelarens inmatningen skickas 7/33

MMPORG Många spelare, oftast också många objekt Oftast en eller flera serverkluster Världen uppdelat i områden Alla spelare i ett område är på samma server, om det blir många kan en mer dynamisk uppdelning vara nödvändig Realtidskrav oftast inte så hård, men beror på spelet Istället skickas meddelande om varje objekt: skickar bara ändringar Inte så många meddelanden nödvändigt 8/33

P2P Varje speldator ansvarig för del av simulation och tillstånd Alla ändringar ska meddelas omedelbart, bra respons Måste dock skickas till alla andra => många meddelanden Därför ingen bra skalering 9/33

Client-Server Alla klienter skickar sina meddelanden till en central server el. serverkluster Servern håller tillstånd av hela simulationen Och skickar meddelande till klienter som behövs Vid konflikter kan servern fungera som domare Skalering bara möglig genom att lägga till ännu en server (el. fler) Minskar piratkopior Säkerhet? 10/33

Hantering av fördröjning (netlag) Utan hantering av fördröjning: Klient skickar spelare-input till servern Väntar på svar, och alla meddelanden om vad de andra spelarna gjorde Sen renderar klienten nästa bild Kan fungera i LAN (eventuellt) Framerate:n fördröjs kraftigt, dock vid spel i webben Netlag: tid mellan spelare-input tills effekten ses 11/33

Hantering av fördröjning Istället: Använd interpolation och extrapolation 12/33

Interpolation Två tillstånd av ett objekt är känt Räknar ut mellantillståndet för att få en smidig animation 13/33

Extrapolation Försök att prediktera händelse Spelarinput: Använd fysikmodellen för att förutsäga trolig händelse 14/33

Extrapolation Andra spelare: försök att prediktera handlingar utifrån de handlingar de har gort tidigare 15/33

Extrapolation När korrekt information kommer från servern måste tillståndet uppdateras, även om det betyder att ta tillbaka en ändring! Försök då att göra en slät ändring, inget hopp! (Fast det kan vara omöligt) Notera att vissa saker kan göras flera gånger, fast vissa, (t.ex. ljudeffekt) bara en gång 16/33

Hantering av fördröjning (netlag) Responsiveness vs Consistency Responsiveness: Hur mycket lag blir upptäkt av spelaren? Consistency: Hur bra stämmer lokala tillstånd överens med de på servern? Hitta en bra kompromiss mellan de två, vilken beror helt på situationen! 17/33

Synkronisering För att kunna gör synkroniseringen måste man först synkronisera klienternas klockor Internetprotokoll för tidssynkronisering (t.ex. SNTP och NTP) inte tillämplig Synkronisationsprotokoll för fördelat realtidssystem kan dock fungera Fast oftast måste man skriva en egen algoritm 18/33

Synkronisering Enkelt exempel: Gör flera mätningar (t.ex. roundtriptime) Kastar alla värden som är större än 1,5*medianen Bilda medelvärdet av resten 19/33

Synkronisering Pessimistisk: väntar till alla relevanta meddelanden har kommit (e.g. locking algoritmer) Optimistisk: processa alla händelser som kommer, reparera om konflikt dyker upp (e.g. time bucket, time warp) 20/33

Frame-locking Varje klient skickar en uppdatering, varje frame Spelet fryser tills alla uppdateringer har kommit 21/33

Frame-locking Längden av frame:t kan anpassas dynamiskt Prestandan är dock begränsad av långsammaste klienten Rendering görs oftare än uppdateringar av andra klienter Ev. måste fördröjningar tas om hand 22/33

Event-locking Klient skickar en händelse till servern Händelsen har inte hänt än (t.ex. spelare vill flytta en figur till en annan position; händelsen kan då även innehålla precisa vägen) Servern bedömer om händelsen får ske, kan även ändra den delsvis (t.ex. ändra vägen som figuren skall ta) Servern meddelar händelsen till alla klienter 23/33

Time bucket Samla alla händelser för en viss tid, ordna dem Processa de händelser som har kommit i rätt ordning Inget återfinnande om ett meddelande inte kommer fram Viktigt att välja rätt tid för samlingen Tiden kan vara dynamisk 24/33

Timewarp Processa händelser när de kommer Spara information om händelser som skickas och tillstånden så att det går att ta bort vad de har ändrat 3 köer: Input: alla händelser som kommer in, båda de som redan processats och de som fortfarande väntar Output: en negativ kopia av varje meddelande som datorn skickade State: aktuellt tillstånd Om gammalt meddelande kommer: gå tillbaka till tillståndet innan det borde ha kommit, skickar ut negativa meddelanden 25/33

Timewarp 26/33

Minimera trafik Försök att minska nätverkstrafiken så mycket som möjligt => mindre lag! => färre meddelanden som inte kommer fram! 27/33

Minimera trafik Message culling: Delta compression Skickar bara den information till klienten som den verkligen behöver! T.ex.: om den inte kan se en annan spelare måste den inte veta var den är! Kan dock i vissa fall leda till problem om extrapolation används! Skickar bara ändringar, inte hela tillstånd! T.ex.: om en spelare inte rör sig måste inte skicka det! Kan dock i vissa fall leda till problem om extrapolation eller message culling används! Vanliga komprimeringsalgoritmer 28/33

Cloud Computing datorspelens framtid? Några spelutvecklare har pratat om cloud computing senaste tiden AMD: presenterade superdator för cloud computing games i våras Några plattformar finns redan (i betatest) 29/33

Cloud Computing datorspelens framtid? Hela spelet körs på servern Input från spelaren skickas till servern Output från servern (video) skickas till spelaren Nackdel: synkroniseringen och kommunikationen blir mycket viktigare, får inte vara ett enda fel! (Vanliga metoder från videoströmning är tyvärr olämpliga!) Fördel: Klientdatorn kan vara mycket enkel 30/33

Cloud Computing datorspelens framtid? Applikationsområde 1: World of Warcraft I Iphone? Riktiga datorspel kan köras på portable equipment som mobiltelefoner och netbooks 31/33

Cloud Computing datorspelens framtid? Applikationsområde 2: Low-end spelkonsoll Bara tillräklig beräkningskraft för att kunna ta emot spelinput och rendera videorna videos? Fördel kunder: Lägre konsollpris Tillgång till alla spel, billigare och enklare än att köpa själv Fördel företag: Minskar piratkopiering 32/33

Cloud Computing datorspelens framtid? Båda applikationerna har: Videokvaliteten får vara sämre än om man kör spelet på hemdator => minskar nätverkstrafik 33/33

Thank you very much! www.icg.isy.liu.se