8/21/2013 TIE-11300 PELIOHJELMOINTI ANIMAATIO, AI, MAAILMAT, VERKKO ANIMAATIO SUORA JA KÄÄNTEINEN KINEMATIIKKA LUURANKOANIMAATIO



Samankaltaiset tiedostot
Luku 11: Verkkopelit. Resurssit Ennustaminen Huijaus. Lähde: Smed, Hakonen

Luku 11: Verkkopelit. Resurssit Ennustaminen Huijaus. Lähde: Smed, Hakonen

Luku 8: Pelimaailmat

Luku 9: Tekoäly. Tekoäly peleissä Agentit Tekniikoita Toimintapelit Taktiset pelit

Luku 7: Animaatio. Eksplisiittiset menetelmät Implisiittiset menetelmät Suora ja käänteinen kinematiikka Motion capture Elokuvamaisuus

Luku 6: Grafiikka. 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Algoritmit 2. Luento 6 Ke Timo Männikkö

T Tietokoneanimaatio ja mallintaminen. Lauri Savioja Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio 02/02

Kiinnostuspohjainen topologian hallinta järjestämättömissä vertaisverkoissa

JOHDATUS TEKOÄLYYN TEEMU ROOS

OHJ-2710 Peliohjelmointi. Syksy 2012 Timo Kellomäki

Tekoäly ja koneoppiminen metsävaratiedon apuna

Seniorit ja tietokonepelit. Tietokonepelien pelaamisesta senioreiden näkökulmasta. Seniorien pelitapahtuma Enter ry

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Algoritmit 2. Luento 12 To Timo Männikkö

Robotit ja tekoäly terveydenhuollon työvälineinä nyt ja tulevaisuudessa työn tutkimukseen perustuva näkökulma

Liikkuvuudenhallinta Mobile IP versio 6 - protokollalla

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Algoritmit 2. Luento 12 Ke Timo Männikkö

Ampumahiihto. Hiihto. Pelihahmon piirtäminen. Jos tahdot animoida hiihtämisen, Peli muodostuu kahdesta erilaisesta osasta: ensin

Geneettiset algoritmit

JOHDATUS TEKOÄLYYN TEEMU ROOS

Algoritmit 2. Luento 6 To Timo Männikkö

Tilastotiede ottaa aivoon

Tilastotiede ottaa aivoon

Tekoäly tietokonepeleissä

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

S09 04 Kohteiden tunnistaminen 3D datasta

Cloud rendering. Juho Karppinen 49480E

PERCIFAL RAKENNETUN TILAN VISUAALINEN ARVIOINTI

JOHDATUS TEKOÄLYYN TEEMU ROOS

Harjoitus Bones ja Skin

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit

Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely)

STEFAN KARKULAHTI HARJOITTELUN JA OPPIMISEN OPTIMOINTI. - case Black Knights korkeakoulujoukkue

Laskut käyvät hermoille

Algoritmit 2. Luento 11 Ti Timo Männikkö

Kojemeteorologia. Sami Haapanala syksy Fysiikan laitos, Ilmakehätieteiden osasto

Informaation leviäminen väkijoukossa matemaattinen mallinnus

Johdatus tekoälyn taustalla olevaan matematiikkaan

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet )

Ongelma(t): Voiko älykkyyden määritellä ja voiko sitä mitata, myös objektiivisesti? Onko älykkyyttä ilman (näkyvää) toimintaa? Voiko kone olla älykäs

Evolutiivisesti stabiilin strategian oppiminen

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri

3D animaatio: liikekäyrät ja interpolointi. Tommi Tykkälä

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

Johdatus verkkoteoriaan 4. luento

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

T Vuorovaikutteinen tietokonegrafiikka Tentti

Visualisoinnin perusteet

OPPIMISKYVYKKYYS DIGITALISOITUVASSA MAAILMASSA

KODU. Lumijoen peruskoulu

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen:

Kuva maailmasta Pakettiverkot (Luento 1)

Kognitiivinen mallintaminen Neuraalimallinnus, luento 1

Algoritmit 2. Luento 13 Ti Timo Männikkö

JOHDATUS TEKOÄLYYN TEEMU ROOS

Monitavoitteiseen optimointiin soveltuvan evoluutioalgoritmin tarkastelu

Puhesynteesin perusteet Luento 5: unit selection -synteesi

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Tekoäly ja dynamiikka tietokonepeleissä

Search space traversal using metaheuristics

Algoritmi III Vierekkäisten kuvioiden käsittely. Metsätehon tuloskalvosarja 7a/2018 LIITE 3 Timo Melkas Kirsi Riekki Metsäteho Oy

Oppiminen ja oivaltaminen

Luento 3: 3D katselu. Sisältö

T Studio 4. luento 3: laskennallista geometriaa virikkeitä harjoituksiin: luovuudesta. matemaattista/abstraktia taidetta tietokonetaidetta

Tietorakenteet ja algoritmit - syksy

Tänään ohjelmassa. Kognitiivinen mallintaminen Neuraalimallinnus laskarit. Ensi kerralla (11.3.)

P (A)P (B A). P (B) P (A B) = P (A = 0)P (B = 1 A = 0) P (B = 1) P (A = 1)P (B = 1 A = 1) P (B = 1)

JOHDATUS TEKOÄLYYN TEEMU ROOS

Keynote: Extreme Events Ääritapahtumat. Petri Rouvinen ETLA/Etlatieto Oy

Algoritmit 2. Luento 11 Ti Timo Männikkö

The OWL-S are not what they seem

STEP 1 Tilaa ajattelulle

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Puhesynteesin perusteet Luento 4: difonikonkatenaatio

JOHDATUS TEKOÄLYYN TEEMU ROOS

Kombinatorinen optimointi

Katsaus toimialojen muutoksiin: Muoti Viihde ja elämykset Ruoka ja juoma

Algoritmit 1. Luento 1 Ti Timo Männikkö

Harjoitussuunnitelma viikko 17 Kärkipotku I

SÄÄNNÖT. Language: English / Suomi

Tilanhallintatekniikat

Liikehavaintojen estimointi langattomissa lähiverkoissa. Diplomityöseminaari Jukka Ahola

Algoritmit 1. Luento 8 Ke Timo Männikkö

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009

Mitä mahdollisuuksia pelillisyys avaa vakavahenkisessä toiminnassa?

ohjekortti #1 Tämä on ehto. Kun se täyttyy pelissä, seuraa tämän siirron sääntöjä.

LUENTORUNKO, KUOPIO SISÄLTÖ : - MIKSI AMPUMAHIIHTO? - AMPUMAHIIHDON AMMUNNAN ERITYISPIIRTEET. - AMMUNNAN TEKNIIKKAA ( ampumahiihto-)

Harjoitussuunnitelma viikko 18 Kärkipotku II

Antitammirobotti. Antti Meriläinen Martin Pärtel 29. toukokuuta 2009

Toimitusketjun hallinnan uudet kehityssuunnat. Mikko Kärkkäinen Tammiseminaari 2015

S Havaitseminen ja toiminta

Symmetriaryhmät ja niiden esitykset. Symmetriaryhmät, /26

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Transkriptio:

ANIMAATIO TIE-11300 PELIOHJELMOINTI ANIMAATIO, AI, MAAILMAT, VERKKO Timo Kellomäki timo.kellomaki@tut.fi Eksplisiittiset menetelmät Valitaan ajastimella oikea versio valmiista Keyframet Tweening Implisiittiset menetelmät Lasketaan kulmapisteiden sijainnit liikkeen kuvauksesta Sopeutuminen maastoon, sama data eri malleille, muistin säästäminen Yleensä käytössä luurankomalli (skeletal animation / rigging) LUURANKOANIMAATIO Luut muodostavat hierarkian, juurena yleensä lantio Luu = suhdetta vanhempaan kuvaava muunnos Koordinaatistomuunnos: skaala, asento, siirtymä Esim. 4x3-matriisi tai SQT (scalequaternion-translation) Kokonaismuunnos yhdistämällä muunnokset juuresta pohjalle asti Käsivarren liikuttaminen siirtää myös sormia Skinning: yhtenäinen iho, jossa kunkin kulmapisteen sijaintiin vaikuttaa useampi luu Verkko tallennetaan perusasennossa (bind pose) SUORA JA KÄÄNTEINEN KINEMATIIKKA Suorassa kinematiikassa (forward kinematics) tallessa nivelten kulmat, lasketaan sijainnit juuresta alkaen Esim. purkitetut kävelyanimaatiot motion capturella Käänteisessä kinematiikassa (inverse kinematics, IK) etsitään uskottavat nivelten asennot, jotta saadaan esim. käsi tai jalka sopivaan paikkaan Esim. kävelysyklin hienosäätö maaston mukaan, tarttuminen ANIMAATIOPÄTKÄT JA YHDISTELY Animaatiot koostetaan yhdistelemällä pieniä pätkiä (clip) Syklit (kävely), toimet Aikaa voidaan manipuloida, pätkä voi sisältää metadataa (ääniä ym) Yhdistäminen (blending) interpoloimalla painokertoimilla Keyframejen välillä, vaihdokset, samanaikainen yhdistely Interpolointi hankalaa matriiseille kvaterniot suosittuja REALISTISET HAHMOT Animaatio on yksi tärkeimmistä hahmojen uskottavuuteen vaikuttavista tekijöistä, mutta hahmoihin on lisäksi monia erikoistekniikoita Huulisynkronisaatio, kasvojen animointi Hiukset: lyhyet onnistuvat teksturoiduilla polygoneilla, mutta pitkiin tarvitaan fysiikkaa Vaatteet: fysiikka, luurankoanimaatio Iho: subsurface scattering Silmät 1

PELIMAAILMAT Useimmissa peleissä on jonkinlainen fysikaalinen pelimaailma 2D vai 3D: kumpi palvelee peliä paremmin Nykyään 2D-maailmatkin toteutetaan usein 3D-grafiikalla Pelimaailmat mieluiten luonnollisesti rajattuja alueita Stadion, sisätiloissa lukitut ovet, läpitunkematon maasto, vesi, pallo/torus Lentosimulaattorit? Turva ja vaara Avoimet paikat Suljetut / korkeat Valaistuksen käyttö MITTAKAAVA JA AIKA Tosimaailma on laaja Ratkaisu: vääristymät Suurin osa elämästä on odottamista Outo aika (Sims, Minecraft) Ajan kelaaminen Vuorokaudenajat, vuodenajat Elävyys: muutokset ilman pelaajan vaikutusta Aikarajat peleissä PROSEDURAALINEN SISÄLTÖ Pelisisältöä voidaan luoda ohjelmallisesti (PCG = procedural content generation) Kartat, radat, puzzlet, rakennukset, luonto, tehtävät, dialogi, säännöt, aseet ja muu tavara, hahmot, vaatteet, juonet, musiikki, A-life,... Satunnaisuuden käyttö Esimerkkejä: Elite, Rogue, Diablo, Dwarf Fortress, Spelunky, Far Cry 2, Civilization, Sudoku, Ludi,, Spore, Facade,.kkrieger Pseudosatunnaisluvut ja siemenluku Korrelaatiot, jaksollisuus Loputtomasti yllättävää sisältöä ja pelejä ilman käsityötä? Negatiiviset yllätykset, keinotekoisuus, toistuvuus, algoritmien raskaus Kompromissi: PCG työkaluna KARTAT Pseudosatunnaisluvuilla luodut kartat yleisiä Tähtikartat, maailmankartat, ulkotilat, luolastot Diablo, Worms, Spelunky, Nethack Menetelmiä: Tähtien arpominen satunnaisiin paikkoihin Luonnonvoimien simulointi Kaupungit ja provinssit Voronoi-diagrammeilla Kieliopit/L-systeemit, huoneet + käytävät, kaivajat, virittävät puut, soluautomaatit Korkeuskentät: hiukkasten pudottelu, keskikohdan poikkeutus, fraktaaliset menetelmät PERLIN-KOHINA JA FRAKTAALINEN KOHINA Luonnollinen kohina: kohinafunktio tuottaa arvon kussakin n-ulotteisen avaruuden pisteessä Hyvin rajattu taajuusalue Perlin-kohina, Simplex-kohina Kohinasta voi muodostaa oktaaveja: kaksinkertaistetaan taajuus, puolitetaan amplitudi Oktaaveja summaamalla muodostuu fraktaalista kohinaa, jossa on yksityiskohtia kaikissa mittakaavoissa Soveltuu hyvin luonnon mallintamiseen: tekstuurit ja korkeuskentät HAKUUN PERUSTUVA LUOMINEN Yksi tapa on luoda valtavasti satunnaista sisältöä ja valikoida vain parhaat käyttöön Kelpoisuusfunktio kriittinen Automaattinen heuristiikka Käyttäjien valinta Sovelletaan hakualgoritmia (esim. evoluutio) Esim. RTS-kentät, Galactic Arms Race 2

LUONNON MALLINTAMINEN Luonto ei koostu palloista tai kolmioista, vaan yksityiskohtia on kaikissa mittakaavoissa Fraktaalisuus Kaikkia yksityiskohtia ei millään ehditä piirtää LoD: maastonmuodot, tekstuurit, kasvillisuus Puut monimutkaisia ja suuria; lähellä tarvitaan 10k+ kolmiota Mallintaminen esim. L-systeemeillä Kauempana billboarding/impostors ristikkäiset billboardit alfatestattu läpinäkyvyys Realistinen valaistus haaste (GI) SpeedTree RUOHO Ruoho: korret yksinkertaisia, mutta tarvitaan miljoonia Raskaita luoda, piirtää ja varastoida Aiheuttaa laskostumista Lähellä jokainen korsi erikseen, proseduraalisuus Kauempana mainostauluja, joissa lukuisia korsia Alfatestattu läpinäkyvyys Toimii huonosti ylhäältä katsottuna Parallaksikartat, animointi Päällekkäiset tekstuurit Hyvin kaukana pelkkä litteä tekstuuri maassa TAIVAS Perusratkaisu taivaaseen skybox 5 tai 6 teksturoitua neliötä, reunat yhteensopivia Pilvet mainostauluilla Myös volymetrisia tekniikoita olemassa Laskennalliset ilmakehämallit dynaamisempi ratkaisu VESI Yksinkertaisimmillaan (animoitu) teksturoitu taso Realistisempi vesi vaatii geometriaa ja interaktiota valon kanssa Geometriaan useita tekniikoita: Kohina, FFT (Just Cause 2), aaltohiukkaset (Uncharted 3) Hiukkasmallit Vesisimulaatio Raskasta Hiukkaset sopivat pieniin määriin 3D-ruudukot vielä liian raskaita, 2Dkorkeuskenttäsimulaatiot toimivat Interaktio pelin liikkuvien esineiden kanssa ongelma VESI Veden ulkoasu koostuu useista tekijöistä Heijastukset voi luoda ympäristökartalla Tasovedelle saadaan melko helposti dynaamisesti heijastuvat esineet Läpinäkyvyys: Fresnel-termi Normaalikartat pienten aaltojen saamiseksi Voidaan animoida virran mukaan Monimutkaisia ilmiöitä: valokeskittymät (caustics), vaahto, roiskeet Säteenjäljitys? TEKOÄLY PELEISSÄ Mitä on tekoäly? Laskennallinen rationaalisuus vai ihmismäinen käytös? Tekoälyn rajat liikkuvat jatkuvasti Tekniikassa tekoäly ratkoo ongelmia, peleissä luo illuusiota järjestä/ihmisestä Useissa peleissä tekoäly tekee tahallaan virheitä Peleissä maailma on omalla puolella Tekoälyn käyttökohteita: taktiset ja strategiset vastustajat, ystävät ja oppaat, kamera, tutoriaali, pelaajan sijainen, ohjaaja Pelitekoälyt monesti hyvin yksinkertaisia Vähäiset resurssit (CPU/muisti) Luotettavuuden tarve: oppiminen voi sotkea pelin Erilaisia tekniikoita useita, voidaan yhdistellä 3

TILAKONEET Intuitiivisia, ei tarvitse olla ohjelmoija Tiloissa ajetaan jotain algoritmia, havainnot maailmasta aiheuttavat tilasiirtymiä Tulos helposti itseään toistava Monipuolisuutta epädeterminismillä (opittavat todennäköisyydet) Rinnakkaisuuden ja hierarkkisuuden käyttö Päätöspuut, behavior trees Esim. Black & White (ID3) TILA-AVARUUSHAKU Klassinen menetelmä (shakki) Digitaalisista peleistä strategiat, lautapelit, puzzlet Tutkitaan toimintojen seuraukset etukäteen ja etsitään paras lopputulos Puumainen rakenne, jonka juurena tämänhetkinen tilanne Jako omiin siirtoihin ja maailman/vihollisten siirtoihin Maailma ja aika täytyy diskretisoida Tila-avaruus liian suuri kokonaan rakennettavaksi Lehtisolmuissa arvioidaan tilanteen hyvyys Karsinta tarpeen Algoritmeja: A*, min-max, alfa-beta-karsinta POLUNETSINTÄ Tila-avaruushaun yleisin sovellus peleissä on polunetsintä Lokaalit menetelmät ihmismäisiä Globaalit menetelmät vastaavat tilannetta, jossa ihmisellä on kartta Jos maasto ei ole suoraan diskreetti, jaetaan esim. konvekseihin soluihin ja portaaleihin Syntyy navigaatioverkko Algoritmeja: törmää ja käänny, Dijkstra, A*, IDA* SÄÄNTÖJÄRJESTELMÄT Sääntöjärjestelmissä pohjalla esim. propositio-, predikaatti- tai sumea logiikka Säännöt muotoa ehto reaktio Lisäksi muisti: tieto maailman tilasta Yksinkertainen esimerkki: Näkyy(vihollinen) Pakene() Nälkä AND Hallussa(ruoka) syö(ruoka) Nälkä AND Näkyy(ruoka) Poimi(ruoka) Nälkä Etsi(ruoka) TRUE Nuku() Tässä valitaan ensimmäinen, jonka ehto toteutuu SUUNNITTELU Logiikkaa voi käyttää myös pidemmälle suunnittelevien agenttien toteutukseen Maailma kuvataan logiikalla ja säännöillä kuten edellä Esiehto (milloin sääntöä voi käyttää), Toiminto (mitä tehdään), Jälkiehto (mitä maailmasta tiedetään toiminnon jälkeen) Edellä syömisen jälkiehtoihin kuuluu nälän poistuminen ja ruoan menetys Regression planning algoritmi abstraktilla tasolla: Valitaan tavoite ja tutkitaan, minkä säännön jälkiehdossa tavoite täyttyy Otetaan uudeksi tavoitteeksi löytyneen säännön esiehdot, toistetaan Käytännön peleissä esiehtojen määrä on valtava Matti haluaa leipää kaupasta, esiehtoja: Matilla rahaa, kaupassa leipää, kauppa auki, kauppias elossa, ei zombieinvaasiota matkan varrella Jos itsestään selvä esiehto unohtuu mainita, koko suunnitelma voi kaatua NEUROVERKOT Neuroverkot jäljittelevät ihmisaivojen toimintaa Usein kerroksia ja niiden välisiä yhteyksiä Toiminta koodattu yhteyksien painokertoimiin Opetusesimerkit muuttavat painokertoimia Autopelin kuski: syötteinä etäisyydet esteisiin ulostuloina ohjaus ja kaasu/jarru Ongelmana läpinäkyvyyden puute Neuroverkoista monia muitakin muunnelmia 4

GENEETTISET ALGORITMIT Geneettiset algoritmit jäljittelevät luonnonvalintaa Pidetään yllä populaatiota Risteytetään parhaita yksilöitä Lisäksi mutaatioita Tasapainoilua elinkelpoisuuden ja riittävien mutaatioiden välillä Kelpoisuusfunktio? Hidas konvergenssi Usein suora optimointi olisi tehokkaampaa Evoluution ohjaaminen sinänsä voi olla hauskaa PARVEILU JA MUITA TEKNIIKOITA Parveilu mallintaa yksinkertaisten olioiden joukkokäytöstä Linnut, kalat, muurahaiset, ihmisjoukot Boids: ero, suuntaus, yhteneväisyys Voimakenttiä, esteet luotaantyöntäviä A-life: elämän simulointi keinotekoisessa ympäristössä Esim. ekosysteemit, päämäärälliset ihmiset Sim-sarja, S.T.A.L.K.E.R. Sims ja fiksu maasto: Creatures matkii feromoneja (esim. muurahaiset) Strategiset tekoälyt hierarkioita: ylempi määrää aina alemman tavoitteet INFLUENCE MAP Ihminen on hyvä analysoimaan karttoja visuaalisesti Tekoäly ratkoo ongelmaa influence mapilla Kartta diskretisoidaan: ruudukko tai navigaatioverkko Merkitään kartalle esim. omat (+) ja havaitut viholliset tms. uhat (-) Vaikutus leviää ympäristöön etäisyyden mukana vähentyen Kunkin paikan arvo summa osista Osa vanhasta arvosta jää voimaan Esimerkkejä influence mapin käytöstä: Positiiviset alueet omilla ja päinvastoin Suuri tulo: kiistelty alue Tulo abs(arvo): haavoittuvat kohdat Turvallisten reittien etsiminen, vihollisen jakaminen kahtia, heikkojen yksiköiden hätistely VERKKOPELIT Verkkopelien toteutusta rajoittaa fyysisen alustan suorituskyky Kaistanleveys, latenssi, solmujen prosessointiteho Siedettävä latenssi reaaliaikapelissä luokkaa 50 ms 1 s Protokollat Latenssin vaihtelu eli jitter on myös haitallista TCP yhteydellinen, varma, hidas: mukava mutta usein raskas reaaliaikapeleihin UDP yhteydetön, epävarma, nopea Looginen rakenne Vertaisverkko (p2p) vs. palvelin-asiakas Skaalautuvuus: p2p on O(n 2 ), palvelin-asiakas O(n) Datan hajautus: eheys vs. vasteajat Kontrolli VERKON RESURSSIT Resurssien riittävyyden kaksi puolta: Datamäärä: viestit * kohteet * viestin koko * kiireellisyys Prosessointitarve: pakkaaminen, purkaminen, muu laskenta Resurssien säästäminen Pakkaaminen: redundanssi, erotukset, häviölliset Batching: monta asiaa samaan viestiin Kommunikointitarpeen vähentäminen läheisyyssuodatus ennustaminen samanaikainen simulaatio ENNUSTAMINEN Tilapäivityksiä voi lähettää harvemmin, jos käytetään ennustamista Lasketaan historian perusteella, missä muut sijaitsevat Tarvittaessa voidaan lähettää nopeus ja kiihtyvyyskin Adaptiivisuus: lähetys vain kun tarpeen Päivityksen saapuessa aiheutuu hyppäys Ratkaisu: konvergoidutaan uuden informaation antamalle polulle vähitellen Voi silti aiheuttaa seinien läpäisyä ym. Viiveestä aiheutuu haastava vuorovaikutusongelma Esim. viive 100 ms, A ampuu B:tä nopealla luodilla B on ehtinyt 100 ms:ssa seinän taakse, joko A tai B pettyy tilanteeseen 5

SAMANAIKAINEN SIMULAATIO Monet pelin tapahtumat ovat deterministisiä Parhaimmillaan vain ihmispelaajien toimet epädeterministisiä Kaikilla sama simulaatio Lähetetään vain epädeterministiset tapahtumat Käytännössä ongelmia: toteutusyksityiskohdat, ajastus, ajatusvirheet Tarkistusdata ja palvelimen auktoriteetti tarpeen HUIJAAMINEN Reiluuden kokemus hyvin tärkeä pelaajille Huijaamisen tavoitteita Päteminen: maine ja kunnia Voiman tunne Taloudelliset hyödyt Huijaamisen estämisen tavoitteita: Salatun informaation suojelu Pelin reiluuden takaaminen Pelimaailman oikeuden turvaaminen HAAVOITTUVUUDET Palvelin-asiakas-rakenteen haavoittuvuuksia: Muunneltu asiakasohjelma binääri, datatiedostot tai muistin sisältö fog of warin poisto, seinien läpi näkeminen, kirkkaat viholliset auktoriteetin väärinkäyttö Asiakkaalta lähtevä verkkoliikenne tähtäysproxy, pakettien pysäytys tai toisto, tahallinen viive Spoofing, palvelunesto Palvelimen hakkerointi, fyysiset hyökkäykset SUOJAUTUMINEN Viestien salaaminen Julkisen avaimen menetelmät Viestien suojaaminen tiivisteillä Viestin muokkaamisesta jää kiinni ellei osaa laskea uutta tiivistettä Toiston esto lisäämällä mukaan satunnaisluku Ohuet asiakkaat, kaikki äly palvelimella Palvelin lähettää vain julkista tietoa Pelaajat antavat vain komentoja, palvelin tarkastaa lailliseksi ja toteuttaa Ainoa varma ratkaisu, mutta voi vaatia liikaa resursseja SÄÄNTÖRIKKEET JA HUONO KÄYTÖS Säännöissä on joskus aukkoja; onko niiden hyödyntäminen huijausta? Salaliitto Jaetaan tietoa, toimitaan yhdessä kilpailullisissa peleissä Ongelma nettipokerissa styling eli käyttäytymisen tarkkailu Turnauksen manipulointi Pelin hengen vastainen käytös Aloittelijoiden teurastus, PK-jengit voi kuolla vain jos antaa luvan, turvalliset alueet Kulkuväylien tukkiminen, kämppäys, sanallinen loukkaus, omien ampuminen, spämmäys, tunnelman pilaaminen,... ignore, kantelu valvojalle koettakaa kestää : huono käytös hyväksytään osaksi peliä 6