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



Relevanta dokument
TBSK 03 Teknik för Advancerade Datorspel

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

Chalmers tekniska högskola EDA390 Datakommunikation och Distribuerade system

Real-time requirements for online games

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

Post Mortem för Get The Treasure!

Projektrapport EDA095

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

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

Synkronisering. Föreläsning 8

Projektpresentation Wapspel

Övning: Dilemmafrågor

Piff och Puffs Chatsystem

Designspecifikation den 13 december 2007

Tentamen i Realtidsprogrammering

IT för personligt arbete F2

Strukturella löneskillnader

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

Nätverkslagret - Intro

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

5 Internet, TCP/IP och Tillämpningar

CHALMERS TEKNISKA HÖGSKOLA EDA Datakommunikation och Distribuerade System

Datakommunikation vad är det?

Teknikprogrammet, inriktning informations- och medieteknik

Kärnan. Meny och aktiviteter

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

Personlig assistans som den ska vara

Formulär i Google Drive Skapa din egna undersökning

MÅLVAKTSTIPS. Hans Gartzell Certifierad Målvaktstränarinstruktör

Utvecklingssamtal Spelare

Bilaga 3. Säkerhet och sekretess Växjö universitet. Institutionen för pedagogik Peter Häggstrand Per Gerrevall

Porsche Sport Driving School Scandinavia

Space Invaders - Slutrapport

Gode män/förvaltare 2014

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

AVTAL OM LOKAL LÖNEBILDNING Spårtrafik. Giltighetstid:

MEDBORGARPANEL Nummer 1 - Juli 2013 Tillgänglighet i vården

Information Coding / Computer Graphics, ISY, LiTH. Integrationsmetoder

Lokal pedagogisk planering. Frivilligt kvällsdisco i skolmatsalen för de som går i årskurs 1 4 på skolan.

VAD TYCKER DE ÄLDRE OM ÄLDREOMSORGEN? - SÄRSKILT BOENDE I HÖGANÄS KOMMUN 2013

Örnsbergs Scoutkår. Styrelsemöte 7 oktober 2012, kl Rotundan. 1. Utvärdering och bidragsansökning för sommarlägret 1719 skall skrivas färdigt.

Resultatredovisning LUPP 2012 åk 8 grundskolan

Protokoll, samrådsmöte Sallerups förskolor, Eslöv

Språkäventyret. Mål. Verktyg. Inledande arbete

Kursutvärdering Ämne: SO Lärare: Esa Seppälä/Cecilia Enoksson Läsåret Klass: SPR2

REPETITION (OCH LITE NYTT) AV REGLERTEKNIKEN

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

STÄNG AV FÖNSTER. Regler FLAGGSPECTRUM I FLAGGSPECTRUM II FLAGGSPECTRUM III FLAGGSPECTRUM STJÄRNSPEL

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

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

The Pirate Bay-rättegången, dag 6 Fritt nedtecknat

Vanliga avdrag i rallylydnad

Energianvisningaroch brukarindataförlokaler. Anton Clarholm

Träningspass 1 Tid: 1,5 h Passning/ Mottagning

Fotbollsskolan. skott.indd

Att sätta upp en IPsec-förbindelse med mobil klient. Lisa Hallingström Paul Donald

Uppdrag att utvärdera intagningsreglerna för förskolan.

Antal svarande i kommunen 32 Andel svarande i kommunen, procent 43 Kategorier ångest? Mycket dåligt Totalt Nej. Någorlunda. Mycket gott.

Nallelek Lärarvägledning

Vad är syftet? Vad är syftet? Därför föreslår du/ni att: Därför föreslår du/ni att: Namn/grupp: Drakdräparna. Namn/grupp: Konvojen Babord

Tentamen, Distribuerade System/Programvaruarkitektur

Vad händer sen? en lärarhandledning

Skulle Du vara intresserad av vårdnadsbidrag om det införs på Gotland?

Några små tips om att träna på utsatt fågel

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

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

Vad roligt att ni har valt att bjuda varandra på den här timmen.

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

Hjo kommuns medborgare ska ha tillgång till lättillgänglig och relevant information om kommunens verksamheter

Önskemål kring Studentstadens bredband och UpUnet-S

Handbok för provledare

Frågor och svar om tillämpningen av beteslagen

Detta dokument är ett förslag till projektplan för arbete med verksamhetsplan och varumärke för Svenska Cykelförbundet perioden

3. Innebandyövningar. I klubbens bibliotek finns det ytterligare material i ämnet. Här följer några förslag på grundläggande övningar:

FÖRKORTA DIN VÄG PÅ BANAN

Inkopplingsguide till Halmstads stadsnät 5-portars tjänstefördelare

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

Kulturnämndens budget för 2008 med plan för 2009 och 2010 rapport rörande åtgärder för att förbättra konstinventeringarna

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

Lotta Carlberg, workitsimple Alla rättigheter reserverade

MICROSOFT DYNAMICS NAV NAVCITE PROAPPS

Affärsplan för CoolaPrylar AB

Installation av. Vitec Online

BILAGA KARTLÄGGNING SOCIALSEKRETERARE STOCKHOLM (MELLAN)

UTHYRNINGSPOLICY. Inledning. Grundläggande värderingar

Resultat av enkät nr 2 Testresenären

Ver Guide. Nätverk

FÖRSVARSSPEL. Högt försvarsspel Spelare samarbetar för att vinna boll på motståndarlaget planhalva.

Åtkomst och användarhandledning

Metoden. Om Pilotcirkel. Studiecirkel i kommunikation

IP routinghierarkier. Robert Löfman Institutionen för informationsbehandling Åbo Akademi, FIN Åbo, Finland e post: robert.lofman@abo.nospam.

Skriv ut korten. Laminera dem gärna. Då håller de längre och kan användas om igen. Klipp ut dem och lägg de röda respektive de gröna i var sin ask.

TNM040 Kommunika3on och användargränssni< HT2015, FÖ3 TNM040 HT2015. Bra överblick. h<p:// anvandbarhet/metoder

Lokaler för röstning vallokaler, expeditioner och särskilda röstmottagningsställen

EDA095 Nätverksprogrammering

Energikartläggning Värmbols FC

NATURVETENSKAP FÖR LIVET?

Man vill ju inte klaga. Om att framföra och hantera klagomål

Östbergsskolans loggbok!

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

Transkript:

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY Fysik Datorgrafik Spelmekanismer AI Nätverk Nätverksaspekter i spel z Fleranvändarspel blir allt populärare z Roligare att spela med/mot människa än AI z Olika typer av spel har olika egenskaper z Olika nätverksprotokoll har olika karakteristik (TCP/UDP) 1

Internet z Paketförmedlande nät, best effort z Ingen garanti på tillgänglig bandbredd z Ingen garanti på maximal fördröjning z Den väg paketen tar kan variera z Fördröjningar har inte förbättrats i samma utsträckning som bandbredd har ökat z Typiskt 10-25 hopp mellan två datorer Protokoll TCP z Uppkopplingsbaserat z Garanterad leverans z FIFO z Varierande fördröjning (pga omsändning) UDP z Ingen uppkoppling z Ej garanterad leverans z Kan bli fel ordning z Snabbt (tar ej hänsyn till annan trafik för att undvika stockning) 2

Strategispel z Många objekt som hanteras, många spelare z Inte lika snabba uppdateringar som springaskjuta-spel z Istället för att skicka position för varje objekt kan man skicka spelarens inmatning z Viktigt att spelmotorerna är synkroniserade Frame-locking z Varje klient skickar en uppdatering per frame z Kan göras peer-to-peer eller till central server z Renderingen görs oftare än uppdateringar z Om en klients data fördröjs måste servern och alla klienter invänta det och spelet fryser tillfälligt z Längden på en frame kan anpassas dynamiskt, spelet ger långsammare respons z Prestanda begränsas av långsammaste klienten 3

Frame-Locking Spelare A Server Spelare B Event-Locking z Klienten begär händelse till servern z Om servern godkänner händelsen skickas den ut till alla klienter z En händelse kan t ex vara att flytta en stridsvagn, innehåller en väg och hållpunkter med fixa tider z Om en klient får händelsen för sent får den snabba upp animeringen för att hinna ikapp 4

Event-Locking z Klienten som begär händelsen kan ge snabb återkoppling i form av ljudeffekt eller animering i väntan på bekräftelsen från servern z Servern fattar slutgiltiga beslutet z Vägen som en rörelse sker enligt kan ändras av servern så den förflyttning som godkänns är inte säkert den som begärdes Synkronisering av klocka z Händelser i event-locking innehåller tidpunkter när saker ska hända, vi behöver synkronisering av klienternas klockor z Det finns protokoll för klocksynkronisering, SNTP, NTP, ingen passar speciellt bra för spel z Egen algoritm ofta nödvändig, flera mätningar och kasta värden större än 1.5*median och medelvärdesbilda 5

Förstapersonspel z Ofta av typen skjuta-springa z Hårda realtidskrav, inte så många spelare z En variant är att köra själva spelsimuleringen på en server Servern säger till klienterna vad de ser Klienterna skickar spelarkommando till servern Fusk blir svårt eller omöjligt Klienter kan komma och gå Peer-to to-peer z Varje dator äger en del av tillståndet i spelen (typiskt egna spelaren och några AIagenter i närheten) z Omedelbar uppdatering av lokala händelser, bra respons z Nackdelen är att all interagering måste kommuniceras för att få konsistent tillstånd hos alla spelare 6

Massivt multiplayerspel z Tusentals spelare z Centralt kluster av servrar z Världen i spelet uppdelad spatiellt, spelare i samma område på samma server z Många spelare kan dras till samma ställe, dynamisk uppdelning kan bli nödvändig Hantering av fördröjning z Tillfälliga fördröjningar, undvid låsning z Prediktera position och andra tillståndsvariabler Extrapolera med polynom från senaste värden Använd fysikmodellen för att förutsäga vad som borde hända När korrekt information kommer måste tillståndet uppdateras, antingen genom ett hopp eller genom att interpolera till rätt värde 7

Lag-kompensering z Förstapersonspel, auktoritär server z En dum klient skickar bara spelarinput till server, får tillbaka uppdaterade positioner och renderar grafiken z Tiden från att spelaren ger ett kommando till det får effekt i den visuella återkopplingen är lag z I ett LAN fungerar den dumma klienten bra, men vid spel över internet är responsen för långsam Lag-kompensering z En smartare klient kan spekulativt utföra uppdatering av position etc, lokalt, i väntan på svar på servern, prediktion av förväntat svar från servern z Svaret från servern är det som gäller, om prediktionen inte stämmer korrigerar klienten till värden i svaret när de väl anländer z Spelarinput (och tid då de gjordes) som skickats till server men inte bekräftats ännu sparas lokalt 8

Lag-kompensering z Prediktionen startar från senaste bekräftade position, som är i det förflutna om vi har lag z Ex, vid 50fps och 100ms lag är 5 spelarinput uppköade i klienten z Dessa simuleras för att få fram aktuell position för renderingen z Notera att samma spelarinput kan simuleras flera ggr, vissa saker (ljudeffekter) ska bara köras första gången Lag-kompensering z Lokala data som inte kommuniceras från servern måste ha mellanliggande värden lagrade så man kan backa till rätt startvärde z Det här kan verka onödigt, varför göra allt dubbelt? Undviker fusk. z En effekt av den här metoden är att man måste ha framförhållning och sikta framför målet motsvarande den lag man har 9

Lag-kompensering z Övriga spelare renderas i det förgångna, för att få bra flyt i deras rörelse kan man till och med behöva interpolera deras position från två senaste översända värdena från servern z För att kompensera för all denna lag kan servern göra lag-kompensering, flytta tillbaks de övriga spelarna i tiden enligt den uppskattade lag man har på nuvarande spelare z Med hjälp av detta slipper spelaren ha framförhållning för att kompensera lag i siktet! Lag-kompensering z Paradoxer, en motståndare kan uppleva det som att han blir träffad efter att han sprungit runt ett hörn z Utan lag-kompensering har man å andra sidan paradoxen att man måste sikta framför det man vill träffa z Det är en avvägning att göra i speldesignen, vilket man föredrar och hur mycket lag-kompensering man ska använda sig av! 10