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

Relevanta dokument
TBSK 03 Teknik för avancerade 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

Mobile First Video on demand och livesändningar på Internet. Juni 2012

5 Internet, TCP/IP och Tillämpningar

Capitex dataservertjänst

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

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

Olika sätt att bearbeta egna och gemensamma texter till innehåll och form. Hur man ger och tar emot respons på texter. (SV åk 4 6)

TBSK 03 Teknik för Advancerade Datorspel

Smal USB 3.0 till DisplayPort-adapter x1152 och 1080p

5 Internet, TCP/IP och Applikationer

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

Tentamen i Datorkommunikation den 10 mars 2014


TBSK 03 Teknik för Advancerade Datorspel

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)

Projektrapport EDA095

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

Med flera skärmar anslutna till din bärbara eller stationära dator kan du boosta din produktivitet eftersom du får mer arbetsyta att arbeta med.

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

4 Paket- och kretskopplade nät

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.

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

TCP/IP och Internetadressering

Big Data i spelbranchen

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

Tentamen i Kommunikationssystem och nätverk, ETSF15

DisplayPort till DisplayPort-flerskärmssplitter - MST-hubb med 2 portar

Öka produktiviteten med flera skärmar

Distribuerade affärssystem

Rapport. Engagemang. - Solis, Brian, 2011 (s. 282)

4 Paket- och kretskopplade nät

Datakommunikation vad är det?

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

Tentamen, Distribuerade System/Programvaruarkitektur

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

QuickTime Streaming Server, en introduktion

Mini DisplayPort till DisplayPort-flerskärmssplitter - MST-hubb med 2 portar

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

USB 3.0 till VGA externt videokort, multiskärmsadapter med USB-hubb med 1 port 1920x1200

USB 3.0 till HDMI extern grafikadapter för flera skärmar med USB-hubb med 3 portar HDMI och USB 3.0-mini-dockningsstation 1920x1200/1080p

Smal USB 3.0 till externt HDMI-videokort, flerskärmsadapter 1920x1200/1080p

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

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

HDMI via IP-förlängare p

ByggR Systemkrav

Teknik för avancerade datorspel!

Gigabit Ethernet Nätverkskort med 1 port - PCI Express, Intel I210 NIC

Du kan installera Widgitprodukter på ett nätverk. Följande program och tillägg hanteras (du kanske inte har licens att installera all dessa):

Om konsolporten. Beskrivning av portarna

Denial of Services attacker. en översikt

3. Steg för steg. Kör IPv6 på riktigt med FortiGate! Principen är enkel:

Virtuell arbetsplats VDI Härryda Kommun. Alec Mägi Särnholm

Övningar - Datorkommunikation

Funktioner. Parametrar

8SSJLIW.RPELQHUDEHJUHSSPHGGHILQLWLRQHUS

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

USB 3.0 till 4K HDMI-videoadapter för flera externa skärmar - DisplayLink-certifierad - Ultra HD 4K

4 grundregler. Minneshantering. Problemet. Windows minkrav

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

Teknik för avancerade datorspel!

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

DisplayPort till DisplayPort-flerskärmssplitter - MST-hubb med 4 portar

Mobilteknik. Begränsningar och möjligheter

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

Grundläggande nätverksteknik. F3: Kapitel 4 och 5

ABFs E-post & mobiltelefonen. Lathund

ByggR Systemkrav

Hubben har testats noggrant för att garantera kompatibilitet med Microsoft Surface Pro 4, Surface Pro 3 och Surface Book.

PCIe 10Gbase-T/NBASE-T Ethernet-nätverkskort med 1 port

Vektorkartor för mobila terminaler

Öka produktiviteten med flera skärmar

EDS1130 IP-kamera. Snabbguide. Svenska Version 1.0

SIZE CONNECT, TEKNISK BESKRIVNING

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

Tentamen Nätverksprogrammering Lösningsförslag

Scenarioanalys. Jonas Svanberg Santa Anna IT Research Institute AB

URVAL AV UTFÖRDA HOBBYPROJEKT

Grundläggande datavetenskap, 4p

SÄKRA DIN VERKSAMHET OAVSETT VAR DEN TAR DIG. Protection Service for Business

MAC-(sub)lagret. Nätlagret. Datalänklagret. Fysiska lagret LLC MAC. LLC = Logical Link Control-sublager MAC = Media Access Control-sublager

4. lägg in övergångar

Praktiska tillämpningar av QoS-teknologi

USB C DisplayPort-adapter - 3 portar - USB C till DisplayPort MST-hubb - USB Type C skärmhubb

USB-C till Ethernet-adapter med USB 3.0-hubb med 3 portar och Power Delivery

Databaslagring av tredimensionella datorspelsobjekt i realtid Tor Andersson

Mark Systemkrav

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

ByggR 2.0. Systemkrav

Denna genomgång behandlar följande:

Nu lanserar Kentima version 6.4 av Ethiris VMS

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

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3

Använda Outlook 2003 mot Exchange

Mini DisplayPort till HDMI-flerskärmssplitter - MSThubb med 3 portar

HDMI-över-trådlös-förlängare p

Transkript:

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

Problemdefinition Fleranvänderspel på webben (framför allt MMPORG) populärare än lokala nätverk- eller en-person-spel Roligare att spelar med / mot andra, enklare än att organisera LAN Party Dock: tillägga synkroniseringsproblem Internet: ingen garanti när en meddelande nå till mottagare, inte äns att den kommer dit överhuvudtaget 1/39

Problemdefinition Latens: Tid en meddelande behöver för att kommer fram Typiska maximala latens (efter Fraunhofer Heinrich-Hertz Institutet): Förstaperson actionspel, rallyspel:<0.1s Tredjeperson sportspel:<0.5s Strategispel, rolspel: <2s Generell: je mer action, desto mindre måste latensen vara 2/39

Internet 3/39

Internet Paket-orienterat, Best Effort Ingen bandbredd eller latens garanterat bandbredden förbättras alltid, fast latensen stannar (nästan) samma Vägen genom webben kan varierar från paket till paket Typiskt: 10 25 hopp Paketer måste inte komma fram i rätt ordning 4/39

Internetprotokoll UDP TCP Paket-protokoll Ström-protokoll Ingen garanterat leverans Leverans garanterat meddels ack-meddelande och omsändningar Paket kan kommer i fel ordning Paket bli sorterat och kommer i rätt ordning Paket överlämnas till applikation när den kommer Paket kan fördröjas om den är inte förväntat nästa paketet 5/39

Internetbaserat Spel Olika spel har olika krav på kommunikationen Olika lösningar för kommunikationen 6/39

Actionspel Inte så många spelare Hårda realtidskrav (låg latens) Många meddelande Variant: själva simuleringen körs på en server Som säger klientdatorer vad spelaren kan se Klientdatorer skicker spelkommandoner till serveren Klienter kan kommer och går som de vill Fusk bli (nästan) omöglig 7/39

Strategispel Rätt synkronisering väldig viktig Inte så många uppdateringer som Actionspel Många objekter, kanske många spelare Inte så hårda realtidskrav (framför allt om rundbaserat) Istället att skickar information om varje objekt kan spelarens inmatningen skickas 8/39

MMPORG Många spelare, oftast oxå många objekt Oftast en eller fler serverkluster Världen uppdelat i områden Alla spelare i ett område är på samma server, om det bli många kan en mer dynamiskt uppdelande vara nödvändig Realtidskrav oftast inte så hard, fast beror på spelet Inte så många meddelande nödvändig Istället att skicker meddelande om varje objekt: skicker bara ändringar 9/39

P2P Varje speldator ansvarig för del av simulation och deras tillståndet Alla ändringar ska meddelas omedelbart, bra respons Måste dock skickas till alla andra => många meddelande därför ingen bra skalering 10/39

Client-Server Alla klienter skicka sina meddelande till en centralt server el. server kluster Server håller tillstånd av hela simulationen och skickas meddelande till klienter efter behovet På konflikter kan server fungerar som domare Skalering bara möglig genom att tilläga server Minskar piratkopior Säkerhet? 11/39

Hantering av fördröjning (netlag) Utan hantering av fördröjning: Klient skickar spelare-input till serveren Väntar på svar, och alla meddelande om vad de andra spelare gjorde Sen renderar klienten nästa bild Kan fungerar i LAN (eventuellt) Framerate:n dröjs kraftig dock när spelas i webben Netlag: tid mellan spelare-input tills effekten av det ses 12/39

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

Interpolation Två tillstånd av en objekt är känt Räknar ut mellan-tillstånder för att få en slät animation 14/39

Extrapolation Försök att prediktera vad kommer att händer Spelare input: Använd fysikmodellen för att förutsäga vad borde hända 15/39

Extrapolation Andra spelare: försök att prediktera handlingar ifrån de handlingar de har gort tidigare 16/39

Extrapolation När korrekt informationen kommer från serveren måste uppdateras tillståndet, även om det betyder att ta tillbacka en ändring! Försök då att göra en slät ändring, ingen hopp! (Fast det kan vara omölig) Notera att vissa grejar kan göras flera gånger, fast vissa (t.ex. ljudeffekt) bara en gång 17/39

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

Synkronisering För att kunna gör synkroniseringen måste man synkroniserar klockorna av klienter först Internetprotokoll för tidssynkronisering (t.ex. SNTP och NTP) inte tillämplig Synkronisationsprotokoll för fördelat realtidssystem kan fungerar dock Fast oftast måste man skriver en egen algoritm 19/39

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

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

Frame-locking Varje klient skickar en uppdatering varje frame Spelet fryser till alla uppdateringer har kommit 22/39

Frame-locking Längden av frame:t kan anpassäs dynamiskt Prestanda är dock begränsat av långsamste klienten Rendering görs oftare än de uppdateringar Evt. måstes tar hand om fördröjning 23/39

Event-locking Klient skickar en händelse till servern Händelse i den har fallet har inte hänt än (t.ex. spelare vill flytta en figur till en annan position; händelse kan då även innehåller precisa vägen) Server bedöma om händelse få sker, fast kan även ändra den delsvis (t.ex. ändra vägen som figuren skulle tar) Server meddelar händelse till alla klienter 24/39

Time bucket Sammla alla händelse för en visst tid, ordna dem Processa de händelse som har kommit i rätt ordning Ingen återfinnande om en meddelande kommer inte fram I rätt tid Viktig att välja rätt tid för sammlingen Tiden kan vara dynamisk 25/39

Timewarp 26/39

Timewarp Processa händelse när de kommer Spara information om händelse som skickas och tillstånden så att det går att ta bort vad de har ändrat 3 köer: Input: alla händelse som kommer in, båda de som är redan processerat och de som fortfarande väntar History (el. Output): en negativ kopie av varje meddelande som datoren skickades State: aktuellt tillstånd Om gammal meddelande kommer: gå tillbacka till tillståndet innan den borde har kommit, skicker ut negativa meddelande 27/39

Timewarp 28/39

Minimera trafik Försök att minskar nätverkstrafiken så mycket som möjlig => mindre lag! => mindre meddelande som inte kommer fram! 29/39

Minimera trafik Message culling: Delta compression Skicker bara de informationen till klienten som den verkligen behöver! T.ex.: om den kan inte ser en annan spelare måste den inte veta var den är! Kan dock i vissa fall leder till problem om extrapolation användas! Skicker bara ändringar, inte hela tillstånd! T.ex.: om en spelare inte rör sig måstes inte skicker det! Kan dock i vissa fall leder till problem om extrapolation eller message culling användas! Vanliga komprimeringsalgoritmer Akta dock att de inte ta för mycket tid! 30/39

Cloud Computing datorspelen's framtid? "Dedicated games devices i.e. consoles (and handhelds) will die out in the next 5 to 10 years." /Sandy Duncan, ex-vice-president för European XBOX bussiness 31/39

Cloud Computing datorspelen's framtid? Några spelutvecklare pratade om cloud computing i senaste tiden Brandbredd, båda stationär och mobil, växer kraftig Settopboxar allt mer och mer beräkningskraft AMD: presenterade supercomputer för cloud computing games förra vår Några projekter finns redan 32/39

Cloud Computing datorspelen's framtid? Hela spelet körs på serveren Input från spelaren skickas till serveren Output från serveren (video) skickas till spelaren 33/39

Cloud Computing datorspelen's framtid? Nackdel: synkroniseringen och kommunikation bli mycket viktigare, få inte vara en enda fel! Högre bandbredd, fler paket nödvändig Vanliga metoder från videoströming är tyvärr olämpig! Buffrar: dålig för latens Vanliga video-codecs: svart att en- och avkoda i realtid Latens: spelberäkning + video-enkodning + kommunikation + video-avkodning Lite lika med video komunikation Men dataspel har högre krav på båda latens och bandbredd och beräkningen är mer tidsödande 34/39

Cloud Computing datorspelen's framtid? Fördel: Klientdator kan vara jätte-enkelt Måste bara ta emot spelarens input och avkodar video:n 35/39

Cloud Computing datorspelen's framtid? Applikationsområde 1: World of Warcraft i Iphone? Riktiga datorspel kan köras på portable equipment som mobiltelefoner, netbooks, pads mm Hur löser man problemet med olika in-/output hårdvara? 36/39

Cloud Computing datorspelen's framtid? Applikationsområde 2: Low-end spelkonsol Bara tillräklig beräkningskraft för att kunna ta emot spelinput och render videorna Fördel kunder: Mindre konsolpris Enkel tillgång till alla spel, mindre dyr och enklare än att köper dem själv Fördel företag: Minskar piratkopior Tillgång till lågpris market 37/39

Cloud Computing datorspelen's framtid? Båda applikationer har gemensam: Videokvalitet få vara sämre än om man kör spelet på hemdator => minskar nätverkstrafik 38/39

Cloud Computing datorspelen's framtid? Exempel: OnLive Strömer PC-spel till Windows el. Mac-datorer (t.ex. Assassin's Creed 2, Batman: Arkham Asylum, Borderlands, DiRT 2 mm) Upplösning 1280x720, 35 till 40 bilder / sekund ~0.7 Mbytes / s Latens: <80 ms, varav 20 ms för nätverket 39/39

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