Pelien tekoäly ennen ja nyt Aihe-esittely Tuomas Honkala
Good AI vs Fun AI Tekoälytutkimukseen sisältyy vahvan tekoälyn ideaali. Tekoäly on vahva silloin, kun se suoriutuu jostakin tehtävästä paremmin kuin ihminen. Vrt. tekoäly, joka on voittamaton Go:ssa. Tietokonepeleissä vahva tekoäly ei kuitenkaan edusta yleistä ideaalia. Pään hakkaaminen seinään ylivoimaista tekoälyvastustajaa vastaan ei liene kenenkään käsitys hauskasta pelistä! Millington, Funge (Artificial Intelligence in Games) tekevät suoraan jaon Academic AI:n ja Game AI:n välille. Civilization IV:n pääohjelmoija Soren Johnson: Good AI vs Fun AI. Good AI pelaa voittaakseen. Fun AI pelaa hävitäkseen. Hauskan tekoälyn ei siis kuulu pelata läpinäkyvän huonosti, vaan tavalla, jossa pelaaja voi lopussa tuntea tyytyväisyyttä ansaitusta voitostaan (... tahallaan hävinnyttä tekoälyä vastaan!)
When simple things look good Millingtonin ja Fungen kirjassa asetetaan vastakkain Pac-Manin (1979) ja Black & Whiten (2001) tekoälyt. Pac-Mania jahtaavat haamut noudattavat yksinkertaista säännöstöä: Kun haamu kohtaa risteyksen, se valitsee joko käytävän, joka vie kohti Pac-Mania (pelaajaa) tai käytävän, jonka valinta on pseudosatunnainen. Haamun persoonasta riippuu kuinka usein haamu suosii Pac-Mania kohti vieviä käytävä. Tämä saa yhden haamuista vaikuttamaan selvästi muita ilkeämmältä. Tekoälyn taustalla ei ole mitään oikeaa reitinhakua tai neljän haamun välistä koordinaatiota. Pelaajan näkökulmasta haamujen käyttäytyminen vaikuttaa kuitenkin juonikkaalta!
Pac-Man ja viekkaasti seuraavat haamut. Lähde: Bandai-Namco / Microsoft, https://www.microsoft.com/en-ca/p/arcade-game-series-pac-man/bqpzgchpfpv6?activetab= pivot%3aoverviewtab
When complex things look bad Pac-Mania yli 20 vuotta uudemmassa Black & Whitessa pelaaja on jumala, jonka tehtävä on kaitsia seuraajiaan. Jumalan välikappaleena maailmassa toimii jättimäinen otus. Pelaajan tehtävänä on opettaa otusta suoriutumaan erilaisista tehtävistä: auttamaan kyläläisiä, taistelemaan, toimimaan jumalallisten ihmeiden välikappaleena.otusta ohjaa siis oppiva tekoäly! Pelaajan pitäisi tukea otuksen oppimista palkitsemalla (kun otus tekee jotain oikein) ja rankaisemalla (kun otus tekee jotain väärin). Käytännössä otusta pitää kytätä kuin pientä lasta, sillä ilman jatkuvaa paimentamista otus omaksuu hetkessä pelaajan kannalta haitallisia käyttäytymismalleja. Tekoäly, jonka piti olla aikansa edistyneimpiä, pakottikin pelaajan lapsenvahdiksi! Mielenkiintoista kyllä: Black & Whitesta suunniteltiin paljon kunnianhimoisempaa peliä kuin millaisena se julkaistiin. Otuksen oppiva tekoäly oli luultavasti vain kalpea aavistus siitä, mitä sen olisi pitänyt olla.
Black & White. Lähde: kuvaruutukaappaus Googlen kuvahausta.
Mitkä seikat tekevät pelin tekoälystä hauskan? Voittaminen ja häviäminen on loppujen lopuksi aika kapea tapa mitata tekoälyn suoriutumista. Civilization tarjoaa paljon hyviä näkökulmia siihen, millaiset seikat jalostavat tekoälyä pelaajan silmissä. (Civilization on siis peli, jossa johdetaan tunnettuja kansakuntia kivikaudelta nykypäivään). Ovatko tekoälyn ohjaamat kansakunnat tunnistettavissa pelityylistään? Ovatko toiset kansat sotaisampia kuin toiset tai ovatko jotkut kansoista muita innokkaimpia kaupankävijöitä? Kohtelevatko tekoälyn kohtaamat kansakunnat pelaajaa (ja toisiaan) johdonmukaisesti ja reilusti? Vaikka tekoälyn ei kuuluisikaan voittaa sotia pelaajaa vastaan, niin onko tekoälyn sotastrategia edes näennäisesti järkevä? Huijaako tekoäly ja jos huijaa, niin jääkö tekoäly siitä säännöllisesti kiinni? Kaikissa peleissä ei edes ole voittajia ja häviäjiä: ajatelkaa vaikka The Simsiä, jossa tekoäly simuloi viihteellisesti arkielämää. The Simsissä hyvä tekoäly on siis tekoälyä, joka vastaa pelaajan odotuksia inhimillisestä kanssakäymisestä.
Tekoälyn kehitysvaiheita AI Game Programmers Guildin luokittelu pelien tekoälyn kehitysvaiheille: Basic Patterned 1970-1980-lukujen peliautomaattipelit. Pelihahmot liikkuvat kaavamaisesti esiohjelmoituja reittejä pitkin. Space Invaders, Donkey Kong. Simple Hard-coded Rules Samaa ajanjaksoa, mutta vähän algoritmisempi lähestymistapa tekoälyssä. Liiku kohti pelaajaa, liiku poispäin pelaajasta -tyyppinen tekoäly (Pac-Man) Advanced Patterned 1980-lukua. Kaavamaisia reittejä sovelletaan aiempaa monipuolisemmin. Tekoäly ei ole tietoinen pelaajasta, mutta aika-ajoin vaikuttaa siltä (vrt. Super Mario Bros.) (jatkuu seuraavalla slaidilla)
Tekoälyn kehitysvaiheita Tactical Reaction 1980-luvun puolivälistä nykypäivään. Tekoäly reagoi hetkessä pelaajan edustamaan stimulukseen. Tekoälyn käyttäytymisen taustalla ei kuitenkaan mitään pitkäkestoista suunnitelmaa. Käytännössä: mies miestä vastaan -kamppailulajipelien tekoälyt (vrt. Street Fighter) Tactical Reasoning Strategic 1980-luvun puolivälistä nykypäivään Tekoäly reagoi välittömään ympäristöönsä ja osoittaa suunnitelmallisuutta ketjuttamalla erilaisia toimintavaiheita yhteen. Ampumapelin vihollinen, joka hakeutuu reitinhaun avulla suojan taakse (parempaan tuliasemaan) käyttäytyy Tactical Reasoning -paradigman mukaan. Tekoälyagentit eivät kuitenkaan toimi yhteistyössä keskenään. 1990-luvun lopulta nykypäivään Käytännössä kuten Tactical Reasoning, mutta yhdistettynä usean tekoälyagentin välisellä koordinaatiolla (vrt.starcraft 2).
Ongelmanasettelu Jos oletetaan, että tietokonepelin tekoälylle ei ole milloinkaan eduksi, että se pelaa ihmistä paremmin, niin mitkä seikat sitten erottavat hyvän pelitekoälyn huonosta? Mitä voimme oppia menneisyyden pelitekoälytekniikoista?
Tutkielman hahmotelma 1. Pelitekoälyn ikuisuusongelman esittely: Good AI vs Fun AI. 2. Käsitteitä. Tekoälyn historiaa ja historiallinen kahtiajako akateemisen tekoälyn ja pelitekoälyn välillä. 3. Tekoälyn kehitysvaiheet (AI Game Programmers Guildin luokittelua mukaillen). Esimerkkejä eri aikakausien pelitekoälytekniikoista. 4. Huijaavat tekoälyt. Psykologian ja silmänkääntötemppujen merkitys pelitekoälyn onnistumiselle. 5. Synteesi: minkälaisista seikoista muodostuu onnistunut ( hauska ) pelitekoäly. 6. Yhteenveto.
Omaa pohdintaa Isaac Asimov ja Robotiikan lait 1. Robotti ei saa vahingoittaa ihmisolentoa tai laiminlyönnein saattaa tätä vahingoittumaan. 2. Robotin on noudatettava ihmisolentojen sille antamia määräyksiä, paitsi jos ne ovat ristiriidassa Ensimmäisen pääsäännön kanssa. 3. Robotin on suojeltava omaa olemassaoloaan, kuitenkin siten, että sen toimet eivät ole ristiriidassa Ensimmäisen ja Toisen pääsäännön kanssa. Asimovia mukaillen, Pelitekoälyn lait : 1. Tekoäly ei saa vahingoittaa pelaajan viihtymistä tai laiminlyönnein heikentää viihtymistä. 2. Tekoälyn on noudatettava pelaajan sille antamia määräyksiä, paitsi jos ne ovat ristiriidassa Ensimmäisen pääsäännön kanssa. 3. Tekoälyn on suojeltava omaa olemassaoloaan, kuitenkin siten, että sen toimet eivät ole ristiriidassa Ensimmäisen ja Toisen pääsäännön kanssa.
Sekalaisia aiheita, joita haluaisin myös käsitellä... - Pelien merkitys varhaiselle tekoälytutkimukselle? - Ensimmäinset tekoälyt kirjoitettiin pelien pelaamiseen - Tietokoneshakki ja minimax-teoreema ( parhaan mahdollisen siirron laskeminen ) - Tosiaikaiset strategiapelit ja täydellisesti pelaava tekoäly. - Tekoäly ja pelaajien vinksahtanut käsitys omasta taitotasostaan. Kun pelaaja voittaa, hän pitää sitä omana ansionaan, kun pelaaja häviää, se on huijaavan tekoälyn syytä. (Sid Meier, Designer/Programmer, Civilization) - Tekoälyn modernit sovellusalueet peleissä (dynaaminen vaikeusaste, AI Director -kuvakulmat, moninpeleissä huijaamisen tunnistaminen koneoppimisen avulla).
Lähteitä Soren Johnson: Playing to Lose (Game Developers Conference -luento vuodelta 2008) Yannakis & Togelius: Artificial Intelligence and Games (tuore!) http://gameaibook.org/book.pdf AI Game Programmers Guikd: History of Game AI wiki http://gameai.com/wiki/index.php?title=history_of_game_ai DaGraca: Practical Game AI Programming Miyake: The History and Fundamental of Digital Game AI http://igda.sakura.ne.jp/sblo_files/ai-igdajp/kgc/ymiyake_kgc_2009_10_8.pdf Kurenkov: A Brief History of Game AI Up to AlphaGo http://www.andreykurenkov.com/writing/ai/a-brief-history-of-game-ai/ Dill: What is Game AI ( Tricks and Cheats -luku!) http://www.gameaipro.com/gameaipro/gameaipro_chapter01_what_is_game_ai.pdf Yannakis & Togelius: A Panorama of Artificial and Computational Intelligence in Games https://ieeexplore.ieee.org/document/6855367 Alayaed et al.: Behavioural-based cheating detection in online first person shooters using machine learning techniques https://ieeexplore.ieee.org/document/6633617
Suositeltavia lähteitä Millington, Funge: Artificial Intelligence for Games (Dawsonera, e-kirja) Jos pitäisi tyytyä yhteen ainoaan lähteeseen, niin tyytyisin tähän. Laaja perusteos kaikesta pelien tekoälyyn liittyvästä, ohjelmistotekniikoista teoriaan. Rabin, Steve: AI Game Game Programming Wisdom 4 (Ebsco, e-kirja) Kiehtova kokoelma kirjoituksia pelinkehittäjiltä ja tutkijoilta. Henkilökohtaisesti pidin erittäin mielenkiintoisena lukua Company of Heroes -sotapelin joukkuetason tekoälystä ja reitinhausta joukkueena! Computer Gaming World, numero 115, pääkirjoitus Anekdootti, jossa siteerataan pelisuunnittelija Dani Buntenia (M.U.L.E., Seven Cities of Gold, Modem Wars): Dani Bunten was once asked how to play-balance a game. Her one word answer: Cheat. Asked what to do if the gamers complained, she said: Lie!