TBSK 03 Teknik för Advancerade Datorspel

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

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

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

Projektrapport EDA095

5 Internet, TCP/IP och Tillämpningar

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

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

Så kan ni arbeta med digitala informationsskärmar. Tips och råd för digital signage inom offentlig sektor

Datakommunikation vad är det?

Synkronisering. Föreläsning 8

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

Tentamen i Realtidsprogrammering

Roger Rödin. Ett projektarbete av Axel Hammarbäck och Roger Rödin IT-Gymnasiet Kista-Rissne. Stockholm, / 5

Affärsplan för CoolaPrylar AB

Hjälpprotokoll till IP

Manual för version V2

SLALOMINGÅNGAR hur svårt kan det vara?

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Funktioner. Parametrar

K I F D G E L H C J. Sätt i batterierna Rörelsesensorn (G) tänds

Installation av. Vitec Online

Lathund för webbredaktörer. Så skriver du på webben

Steg 4. Lika arbeten. 10 Diskrimineringslagen

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

TNFL01 Flygtrafik och flygtransporter

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

Fördjupningsuppgiften. Jens A Andersson

Att bygga VPN. Agenda. Kenneth Löfstrand, IP-Solutions AB. Olika VPN scenarios. IPsec LAN - LAN. IPsec host - host SSH

Lära känna skrivbordet

IT-körkort för språklärare. Modul 6: Video, del 2

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

ZACI är den programvara som är navet i kommunikationen när det gäller kortbetalningar.

Användarhandbok OE/OSSpeaker V.10.3

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

Syns du inte finns du inte

FIBER. Installationshandbok. Rev

UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap. Grafproblem. Laboration 4, Datastrukturer och Algoritmer VT02

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

IT för personligt arbete F2

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

Procedurell grottgenerator och eld i GLSL. Marcus Widegren

Manual C3 BMS för Android-telefoner

ORO FÖR PERSONLIG INTEGRITET PÅ NÄTET ANNIKA BERGSTRÖM

RVS5000PC. Allmänt. RVS5000PC produktblad

Klass 6B Guldhedsskolan

Planering av egen cup - Steg 4: Under cupdagarna

Åtkomst och användarhandledning

På fritidsgår n kallar man inte nå n för hora. Fritidsgården en trygg plats för ungdomars

Krypteringteknologier. Sidorna ( ) i boken

FÖRSLAG TILL BETÄNKANDE

Lättläst sammanfattning Åtgärder mot fusk och fel med assistansersättning

Novell Filr 1.2 skrivbordsprogram för Mac snabbstart

75059 Stort sorteringsset

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

App-klient för smartphones Power BI Arbetsflöde CRM Online Webb-klienten Dokumenthantering Molnet...

Föreläsning 6: Introduktion av listor

U n i - V i e w DRIFTÖVERVAKNING FÖR PROCESSINDUSTRIN

Dataspel för barn med läs- och skrivsvårigheter

Kommuniceramer än ord

E-post, chat mm. E-post, chat mm. E-post, chat mm. E-post, chat mm. E-post, chat mm. E-post, chat mm

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

F2 Exchange EC Utbildning AB

Östbergsskolans loggbok!

Kontakt: Mikael Forsman Användarmanual för VIDAR 4.0

Figur 1. Skärmbild med markerade steg i videon. Diagram och tabell som visar positionerna som funktion av tiden.

Personlig assistans som den ska vara

OBS - ranking NYTT RANKINGSYSTEM. Jan-Erik Thomasson INNEHÅLL

SCHOLA COMAI ELEV WEBBKALENDER / SCHEMA VERSION 1.1. [Skriv text]

Den äldre, digitala resenären

Förändringar i v5.2 SR-1

ANKOMMANDE TC STARTLINJEN. Utbildningsgruppen SWR 2003

Föräldrajuryn - om barn och mobiltelefoner. Mars 2006 Konsumentföreningen Stockholm

Slutrapport för JMDB.COM. Johan Wibjer

Fotbollsskolan. skott.indd

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

============================================================================

Dedikerad Server Vilket operativsystem ska jag välja? Är ni i startgroparna och ska beställa en dedikerad server eller en virtuell server?

Dina patienträttigheter

Användar Guide. är ett varumärke av Google Inc.

1. Konsten att organisera ur trenätsperspektivet

Föreläsning 11. Giriga algoritmer

Enkel hantering även för en ovan användare. maximal produktivitet spar tid och kostnader. professionell, utför försändelser av högsta kvalitet

Instuderingsfrågor ETS052 Datorkommuniktion

För installationer av SQL Server som inte görs från Hogias installation måste följande inställningar göras:

Realtid. eda040project2010 MANUAL. - Christoffer Olsson. - Daniel Lehtonen

Förslag på lektionsupplägg: Dag 1- en lektionstimme

Föreläsning 3. Datorkunskap 50p Marcus Weiderstål Bromma Gymnasium

Ett väldesignat & slimmat plånboksfodral från WE CHARGE. Tillverkat i konstskin. Snäpp i telefonen i det hårda skalet och låt plånboksfodralet skydda

Användarmanual Pagero Connect 2.0

Barns brukarmedverkan i den sociala barnavården - de professionellas roll för barns delaktighet

PRAO. PP Av Michaela Bärlund, Studie- och yrkesvägledare (2015), reviderad av Moa Bergendahl ( )

Samhälle, samverkan & övergång

OneDrive/SharePoint. Innehåll

Användarguide Flexconnect.se Mobil Anknytning

räkning av antal, första lösandet av räkneuppgifter, matchning språkutveckling genom sortering och hopsamling av träpinnar

IPv6 EN GOD BÖRJAN GER ETT GOTT SLUT. LÅT OSS BÖRJA.

Användarhandbok. Linksys PLEK500. Powerline-nätverksadapter

Designspecifikation den 13 december 2007

Transkript:

TBSK 03 Teknik för Advancerade Datorspel

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 ens att den kommer dit överhuvudtaget 1/38

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, rollspel: <2s Generell: je mer action, desto mindre måste latensen vara 2/38

The Internet 3/38

The Internet Paket-orienterat, Best Effort Ingen bandbred 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 Mobilkommunikation (WLAN, 3G): oftast värre 4/38

Internetprotokoll UDP TCP Paket-protokoll Ström-protokoll Ingen garanterat leverans Leverans garanterat medels ackmeddelande 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/38

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

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 spelkommandona till serveren Klienter kan kommer och går som de vill Fusk bli (nästan) omöjlig 7/38

Strategispel Rätt synkronisering väldig viktig Inte så många uppdateringar som Actionspel Många objekt, 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/38

MMPORG Många spelare, oftast också många objekt Realtidskrav oftast inte så hård, fast beror på spelet 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 Inte så många meddelande nödvändig Istället att skicka meddelande om varje objekt: skickar bara ändringar 9/38

MMPORG Variant: Massively Multiplayer Online Worlds (MMOW) e.g. Second Life, Minecraft? Spelare skapar egen värld Många objekt, alla kan förändras av spelaren Många meddelande Intuitiv lösning: skickar bara meddelande om objekt som spelaren kan se Och om allt som hände sedan senaste gången spelaren besökte området 10/38

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 11/38

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ägga server Minskar piratkopior Säkerhet? 12/38

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 13/38

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

Interpolation Två (el. fler) tillstånd av en objekt är känt Räknar ut mellan-tillstånd för att få en slät animation 15/38

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 16/38

Extrapolation Andra spelare: försök att prediktera handlingar ifrån de handlingar de har gjort tidigare 17/38

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

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

Tidssynkronisering 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 Synkroniseringsprotokoll för fördelat realtidssystem kan fungerar dock Fast oftast måste man skriver en egen algoritm 20/38

Tidssynkronisering 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 21/38

Synkroniseringsalgoritmer 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 (om möjlig) (e.g. time bucket, time warp) 22/38

Frame-locking Varje klient skickar en uppdatering varje frame Spelet fryser till alla uppdateringar har kommit 23/38

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

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 delvis (t.ex. ändra vägen som figuren skulle tar) Server meddelar händelse till alla klienter 25/38

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 samlingen Tiden kan vara dynamisk 26/38

Timewarp 27/38

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 processcerat och de som fortfarande väntar History (el. Output): en negativ kopia av varje meddelande som datoren skickades State: aktuellt tillstånd Om gammal meddelande kommer: gå tillbaka till tillståndet innan den borde har kommit, skickar ut negativa meddelande 28/38

Minimera trafik Försök att minskar nätverkstrafiken så mycket som möjlig => mindre lag! => mindre meddelande som inte kommer fram! Men större problem om en meddelande inte kommer fram 29/38

Minimera trafik Message culling: Delta compression Skickar 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! Skickar bara ändringar, inte hela tillstånd! T.ex.: om en spelare inte rör sig måstes inte skickar det! Kan dock i vissa fall leder till problem om extrapolation eller message culling användas! Key frames behövs evt. för felkorrektur Vanliga komprimeringsalgoritmer Akta dock att de inte ta för mycket tid! 30/38

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/38

Cloud Computing Hela spelet körs på serveren Input från spelaren skickas till serveren Output från serveren (video) skickas till spelaren Brandbred, båda stationär och mobil, växer kraftig Settopboxar, smartphones mm har mer och mer beräkningskraft Några projekten finns redan 32/38

Cloud Computing Nackdel: synkroniseringen och kommunikation bli mycket viktigare, få inte vara en enda fel! Vanliga metoder från videoströmming är tyvärr olämplig! Högre bandbredd, fler paket nödvändig Buffrar: dålig för latens Vanliga video-codecs: svart att en- och avkoda i realtid Latens: skicka spelarens inmatning till serveren + spelberäkning + videoenkodning + skicka video till klienten + video-avkodning Lite lika med video kommunikation Men dataspel har högre krav på båda latens och bandbredd och beräkningen är mer tidsödande 33/38

Cloud Computing Fördel: Klientdator kan vara jätte-enkelt Måste bara ta emot spelarens input och avkodar video:n 34/38

Cloud Computing Applikationsområde 1: Riktiga datorspel kan köras på portabla enheter som mobiltelefoner, netbooks, pads mm Hur löser man problemet med olika in-/output hårdvara? 35/38

Cloud Computing Applikationsområde 2: Low-end spelkonsol Bara tillräcklig beräkningskraft för att kunna ta emot spelinput och rendera videorna Fördel kunder: Mindre konsolpris Enkel tillgång till alla spel, enklare än att köper dem själv Spel kan bli billigare Fördel företag: Minskar piratkopior Tillgång till lågpris marknad 36/38

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

Cloud Computing Exempel: OnLive Strömmar PC-spel till Windows-, Mac-datorer eller settop-box (t.ex. Deus Ex: Human Revolution, Batman: Arkham City, DiRT 3 mm) Upplösning 1280x720, 35 till 40 bilder / sekund ~0.7 Mbytes / s Latens: <80 ms, varav 20 ms för nätverket 38/38

Tack så mycket! www.icg.isy.liu.se