Tekoäly strategiapeleissä

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

Hyvä tekoäly reaaliaikaisissa strategiapeleissä

Board Game Lab. 7 Pelimekaniikat ja -systeemit. Materiaalit CC-BY 4.0 Mikko Lampi

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Johdatus go-peliin. 25. joulukuuta 2011

Peliteoria luento 1. May 25, Peliteoria luento 1

Impedanssitomografia-peli

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

Nollasummapelit ja bayesilaiset pelit

SAMI HYYPIÄ ACADEMY FOOTBALL CAMP , EERIKKILÄ LEIRIN HARJOITTEET YHTEENVETO: KIMMO KANTOLA

Pelaajat siirtävät nappuloitaan vastakkaisiin suuntiin pelilaudalla. Peli alkaa näin. Tuplauskuutio asetetaan yhtä kauas kummastakin pelaajasta.

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

Tilastotiede ottaa aivoon

Pelisuunnittelu Ronja 2014

Peliteoria Strategiapelit ja Nashin tasapaino. Sebastian Siikavirta

SPTL:N HALLITUKSEN SÄÄNTÖMUUTOSEHDOTUKSET KAUDELLE

Selainpelien pelimoottorit

Tilastotiede ottaa aivoon

JOHDATUS TEKOÄLYYN TEEMU ROOS


JOHDATUS TEKOÄLYYN TEEMU ROOS

SOTE-AKATEMIA TEKNOLOGISEN MURROKSEN JOHTAMINEN SOTE-ALALLA

SEKASTRATEGIAT PELITEORIASSA

KOKO PERHEEN HAUSKA STRATEGIAPELI OHJEET

Opettaminen ja oppiminen

1 PÖYDÄT JA PALLOT 1. Kilpailuissa tulee käyttää Suomen Biljardiliiton hyväksymiä pöytiä ja palloja.

Harjoitussuunnitelma viikko 14 Potkaiseminen II

ATLAS-kartan esittely - Peli palveluiden yhteiskehittämisen menetelmistä Päivi Pöyry-Lassila, Aalto-yliopisto

Tekoäly ja alustatalous. Miten voit hyödyntää niitä omassa liiketoiminnassasi

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Harjoitussuunnitelma viikko 15 Sisäsyrjäpotku I

Harjoitussuunnitelma viikko 17 Kärkipotku I

JOHDATUS TEKOÄLYYN TEEMU ROOS

1 2 2/1 3/1 4/1 4/2 5/2 5/2/1 5/3/1 6/3/1 6/4/1 6/4/2 6/4/2/1 6/5/2/1 6/5/ 6/5/ 6/5/ 6/5/ 6/5/ 6/5/ d6 3/1 3/2 3/2/1 4/2/1 4/3/1 4/3/2

Ohjeet ovat työn alla ja kirjaan niitä päivittäen ja edes takaisin lukien pari viikkoa.

Säännöt & Asetukset. Säännöt & Asetukset. Versio 1.00 /

Harjoitussuunnitelma viikko 18 Kärkipotku II

Näkökulmia taidon oppimiseen: Kaaos kotoisaksi. Nuorisovalmennusseminaari, Susi Training Center

Trafficars - Ruuhkaara

Viimeisimpänä aloitteenaan Peimari United haluaa esitellä maalivahdeille kohdennetun uuden turnausmuodon ensimmäisenä Suomessa: Goalkeeper Combat I

Ohjelmistojen mallintaminen, mallintaminen ja UML

Salasuhteita. esimerkiksi espanjaksi nimi tarkoittaa pientä pusua.

Sisällysluettelo. 1. Johdanto

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

Board Game Lab. 4 Teema. Materiaalit CC-BY 4.0 Mikko Lampi

xbox pelit need for speed underground 2 half life 2 luettelo xbox peleista grand theft auto san andreas run like hell max payne

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

MS-C2105 Optimoinnin perusteet Malliratkaisut 5

Laskut käyvät hermoille

A/B Lohkojärjestelmä

Reaaliaikainen yli 2 pelaajan moninpeli mobiilille!

Tietorakenteet, laskuharjoitus 7, ratkaisuja

JOHDATUS TEKOÄLYYN TEEMU ROOS

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Evolutiivisesti stabiilin strategian oppiminen

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

CHERMUG-pelien käyttö opiskelijoiden keskuudessa vaihtoehtoisen tutkimustavan oppimiseksi

Pelin kautta oppiminen

CSC:N SHAKKIKOULU. esittää: Taktinen pelitapa ja kuningashyökkäykset

Mitä mahdollisuuksia pelillisyys avaa vakavahenkisessä toiminnassa?

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

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Tenniksen pistelaskusäännöt, lukio/ammatilliset oppilaitokset

11/20: Konepelti auki

Σ!3674. Advanced Test Automation for Complex Software-Intensive Systems

Tee-se-itse -tekoäly

PELIOHJEET (suomeksi) Koira. Peli on kaksivaiheinen: Vaihe 1:

TURNAUSOHJEET. Turnauksen tavoite. Ennen aloitusta. Taistelukierroksen Pelaaminen.

Matematiikan tukikurssi, kurssikerta 3

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

OHJ-2710 Peliohjelmointi. Syksy 2012 Timo Kellomäki

Kommunikaatio Visa Linkiö. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

JOHDATUS TEKOÄLYYN TEEMU ROOS

Johdatus tekoälyn taustalla olevaan matematiikkaan

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

Koululentistä ikäluokittain

Blackjack on korttipeli, jossa pelaajan tavoitteena on voittaa pelinhoitaja.

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus

SKENAARION ERIKOISSÄÄNNÖT Deep Strike

Tekoäly ja tietoturva Professori, laitosjohtaja Sasu Tarkoma Tietojenkäsittelytieteen laitos Helsingin yliopisto

Tekoäly ja koneoppiminen metsävaratiedon apuna

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

Hallisarjan uudistaminen

Tietotekniikan valintakoe

Tekoäly muuttaa arvoketjuja

Z O K E R OHJEET REGLER PÅ SVENSKA XL 3 XL 3 M4 1 L4 1 XL 3 M 23 XL 1 XL 4 ML 4 M 41 L4 3 L 1 S4 1 XL 2 XL M 14 M 4 XL 3 LS 4 XL 3 L 3 S L3

PANA RY LIIGASA A NNÖ T

Kombinatorinen optimointi

Yhteistyötä sisältämätön peliteoria

Pelivaihtoehtoja. Enemmän vaihtelua peliin saa käyttämällä erikoislaattoja. Jännittävimmillään Alfapet on, kun miinusruudut ovat mukana pelissä!

JOHDATUS TEKOÄLYYN TEEMU ROOS

Yhteistyötä sisältämätön peliteoria jatkuu

Pikaopas. ALOITA TÄSTÄ! Pelin tavoite: Valmistaudu taisteluun!! Riko kaikki vastustajasi kilvet ja hyökkää vielä kerran voittaaksesi

Tekoäly tänään , Vadim Kulikov (Helsingin Yliopisto)

18 Komponentit, ulkoasu ja visuaalisuus. Materiaalit CC-BY 4.0 Mikko Lampi

Integrointialgoritmit molekyylidynamiikassa

- 4 aloituslaattaa pelaajien väreissä molemmille puolille on kuvattu vesialtaat, joista lähtee eri määrä akvedukteja.

KODU. Lumijoen peruskoulu

Algoritmit 1. Luento 1 Ti Timo Männikkö

Transkriptio:

Tekoäly strategiapeleissä Miika Mäkinen Pro gradu tutkielma Tietojenkäsittelytieteen laitos Tietojenkäsittelytiede Maaliskuu 2019

ITÄ-SUOMEN YLIOPISTO, Luonnontieteiden ja metsätieteiden tiedekunta, Kuopio Tietojenkäsittelytieteen laitos Tietojenkäsittelytiede Miika Mäkinen: Tekoäly strategiapeleissä Pro gradu tutkielma, 51s. Pro gradu tutkielman ohjaaja: FT Virpi Hotti Maaliskuu 2019 Tässä tutkielmassa esitetään erilaisia strategiapelejä, strategiapeleissä käytettyjä tekoälymenetelmiä sekä tekoälytyökaluja, joilla tekoälyt on toteutettu tai muokattu. Kirjallisuuskatsauksessa selvitettiin millaisia tekoälyratkaisuja strategiapelien tekoälyjen kehityksessä ja parantamisessa on käytetty ja mitä niillä on saavutettu. Tutkielmassa myös pyrittiin selvittämään mitä eroja reaaliaikaisten ja vuoropohjaisten strategiapelien välillä on ja miksi strategiapeleissä tarvitaan tekoälyä. Strategiapelien tekoälyjen kehityksessä on käytetty useita koneoppimisen algoritmeja, neuroverkkoja ja niiden eri muunnoksia, tiedonlouhintaa, syväoppimista, vahvistusoppimista, evolutionäärisiä menetelmiä sekä Bayeslaista ohjelmointia. Näitä työkaluja hyödyntämällä on kyetty parantamaan pelien olemassa olevien hierarkkisien, heuristiikkoja hyödyntävien ja ehtorakenteisiin pohjautuvien tekoälyjen toimintaa niin suorituskyvyn, luotettavuuden kuin ominaisuuksien osalta. Reaaliaikaisten ja vuoropohjaisten strategiapelien erot syntyvät pääasiassa vain ajan käsityksestä ja toimintojen määrästä. Reaaliaikaisissa strategiapeleissä pelaaja voi tehdä kymmeniä tai satoja päätöksiä jokaisella ajankohdalla, kun useimmissa vuoropohjaisissa strategiapeleissä pelaajalla on yhdestä kymmeneen vaihtoehtoa per vuoro. Lisäksi vuoropohjaisissa peleissä pelaajien toiminnot tapahtuvat ennalta määritetyissä vuoroissa, jolloin pelaajalla on paljon enemmän aikaa reagoida vastustajan toimintoihin ja pohtia omaa strategiaansa verrattuna reaaliaikaisiin strategiapeleihin. Tutkielmassa esitetään tekoälyn tarpeeksi mikro- ja makromanageroinnin hallinta, strategian tunnistaminen, parhaan siirron löytäminen, vastustajan mallintaminen, automaattinen sisällön generointi sekä itseoppivuus. Strategiapeleissä tarvitaan tekoälyä myös, koska se toimii vastustajana, avustajana ja osana pelimaailmaa ja on siksi yhä tärkeämmässä roolissa pelattavuutta. Avainsanat: strategiapeli, tekoäly, neuroverkko, koneoppiminen, tiedonlouhinta ACM-luokat (ACM Computing Classification System, 2012 version): Artificial intelligence, Neural networks, Machine learning, Data mining i

UNIVERSITY OF EASTERN FINLAND, Faculty of Science and Forestry, Kuopio School of Computing Computer Science Miika Mäkinen: Artificial Intelligence in Strategy Games Master s Thesis, 51p. Supervisors of the Master s Thesis: PhD Virpi Hotti March 2019 Abstract: This thesis presents different strategy games, AI-methods used in strategy games and AI tools that have been used to create or modify game AIs. The literature review discovers what kind of AI solutions have been used in strategy game AI development and improvement and what has been achieved with them. This thesis also aims to clarify the differences between real-time and turn-based strategy games and why AI is needed in them. Many machine learning algorithms, neural networks and their variants, data mining, deep learning, reinforcement learning, evolutionary methods and Bayesian programming have been used in the development and improvement of strategy game AI. The performance, reliability and features of hierarchical, condition-based AIs that use heuristics have been improved by using these AI tools. The differences between real-time and turs-based strategy games are mainly due to the concept of time and possible actions. In real-time strategy games the player may perform tens to hundreds of actions at any given time where as in turn-based strategy games the player may only perform one to ten actions in one turn. Additionally in turnbased strategy games the actions performed by players happen in predetermined turns so that players have much more time to react to the actions performed by the opponent and thus have more time to plan their own strategy compared to real-time strategy games. This thesis presents the need for AI in micro- and micromanagement, strategy recognition, finding the optimal move or action, opponent modeling, automatic content generation and self learning. Artificial intelligence is needed in strategy games because it functions as an opponent and helper and is part of the game world which makes its role increasingly important considering gameplay. Keywords: strategy game, artificial intelligence, neural network, machine learning, data mining CR Categories (ACM Computing Classification System, 2012 version): Artificial intelligence, Neural networks, Machine learning, Data mining ii

Esipuhe Tämä tutkielma on tehty Itä-Suomen yliopiston Tietojenkäsittelytieteen laitokselle keväällä 2019. Haluan kiittää ohjaajaani Virpi Hottia opintojeni aikaisesta tuesta ja opastuksesta sekä tutkielman teon ohjeistuksesta. Kiitän myös avopuolisoani, perhettäni ja ystäviäni tuesta ja avusta opintojeni aikana. iii

Lyhenneluettelo RTS TBS RL MLP NN NPC Real-Time Strategy; reaaliaikainen strategia Turn-Based Strategy; vuoropohjainen strategia Reinforcement Learning; vahvistusoppiminen Multi-Layer Perceptron; monikerroksinen neuroverkko Neural Network; neuroverkko Non-Player Character; tietokoneen ohjaama hahmo iv

Sisällysluettelo 1 Johdanto... 6 2 Strategiapelit ja tekoälyn tarve... 9 2.1 Balanced Annihilation... 11 2.2 Boundary... 12 2.3 Conqueror... 14 2.4 GLest... 14 2.5 Go... 16 2.6 StarCraft... 18 2.7 Planet Wars... 22 2.8 Warcraft III... 23 2.9 Wizard... 24 3 Tekoälyratkaisut strategiapeleissä... 26 3.1 Balanced Annihilation... 26 3.2 Boundary... 28 3.3 Conqueror... 29 3.4 GLest... 30 3.5 Go... 32 3.6 Planet Wars... 34 3.7 StarCraft... 35 3.7.1 Bayeslaisten yksiköiden ratkaisu... 35 3.7.2 Piirrevektorien louhintaratkaisu... 37 3.7.3 Syväoppimisen ratkaisu... 39 3.8 WarCraft III... 40 3.9 Wizard... 41 4 Pohdinta... 43 5 Johtopäätökset... 46 Viitteet... 48 v

1 Johdanto Strategiapelit ovat esiintyneet eri muodoissaan jo tuhansia vuosia. Nykypäivän elektroniset strategiapelit saivat alkunsa 1980-luvulla ja juontavat juurensa perinteisistä strategiapeleistä kuten Go ja shakki. Strategiapelit ovat viihde -ja opetus käyttöön tarkoitettuja aktiviteetteja, jotka haastavat pelaajan älyllisen kapasiteetin ja kehittävät strategista päättelykykyä. Perinteisesti strategiapeleissä kaksi tai useampi ihminen asettuu vastakkain jonkin teeman ja säännöstön mukaisesti riippuen pelattavasta pelistä. Nykypäivänä strategiapeleissä vastustajana voi toimia myös tietokone tekoälyn kehityksen ansiosta. Tekoäly (IBM Deep Blue) voitti shakin maailmanmestarin ensimmäistä kertaa vuonna 1996. Tietokoneiden laskentatehon kasvettua tutkijat ovat kyenneet kehittämään yhä tehokkaampia tekoälymenetelmiä. Tästä osoitus on vuonna 2015 Deep Mind tekoälyn saavuttama voitto Go-pelissä ammattilaispelaajaa vastaan. Saavutus on siksi merkittävä, että vaikka shakissa kyettiin toteuttamaan tehokas tekoälyratkaisu raakaa laskentatehoa ja heuristiikkoja käyttäen ei samaa pystytty hyödyntämään Go-peliin sen monimutkaisuuden ja valtavan tila-avaruuden takia. Deep Mind hyödyntikin toiminnassaan itseoppivuutta syväoppimisen, neuroverkkojen, kuvan- ja hahmontunnistuksen ja vahvistusoppimisen muodossa. Strategiapelit voidaan jakaa reaaliaikaisiin ja vuoropohjaisiin strategiapeleihin. Nämä voidaan taas puolestaan jakaa pelityyppeihin kuten korttipelit, lautapelit ja videopelit. Vuoropohjaiset strategiapelit noudattavat yleisesti samaa periaatetta kuin shakki, jossa pelaajat suorittavat siirtonsa vuorotellen. Reaaliaikaisissa strategiapeleissä pelaajat voivat suorittaa toimintoja ja antaa käskyjä samanaikaisesti, mikä korostaa strategisen päättelyn lisäksi. Etenkin reaaliaikaiset strategiapelit ovat huomion kohteena kahdesta merkittävästä syystä. Ensimmäinen syy on se, että reaaliaikaisista strategiapeleistä pidetään suuria yleisöitä tavoittavia e-sports kilpailuita, joissa ammattipelaajat kilpailevat toisiaan vastaan. Toinen merkittävä syy on se, että reaaliaikaiset strategiapelit toi- 6

mivat hyvänä testikenttänä reaalimaailman ongelmille. Pelejä varten kehitettyjä tekoäly-, reitinhaku- ja koneoppimisalgoritmeja voidaan hyödyntää monissa reaalimaailman ongelmissa. Tekoälyn kehitys ja sen tarve strategiapeleissä on tärkeää myös pelinkehittäjien näkökulmasta. Tekoälystä on tullut yksi tärkeimmistä osista strategiapelien pelattavuutta (Synnaeve & Bessière, 2011). Pelinkehittäjät ovat huomanneet, että pelin tekoäly on ratkaiseva tekijä siinä, että mistä pelistä tulee bestseller (Nogueira-Collazo ym., 2016). Tässä tutkielmassa pyritään selvittämään tekoälyn merkitystä strategiapeleissä, kuinka tekoälyn suoriutumista voidaan parantaa ja mitä parannuksilla voidaan saada aikaan. Tutkielma on kirjallisuuskatsaus ja sen tutkimuskysymykset ovat seuraavat: 1. Mitä eroa on reaaliaikaisella ja vuoropohjaisella strategiapelityylillä? (Luku 2) 2. Miksi strategiapeleissä tarvitaan tekoälyä? (Luku 2) 3. Mitä tekoälyratkaisuja strategiapeleissä on käytetty? (Luku 3) Tutkimuskysymykset ohjaavat kirjallisuuskatsausta vaikuttamalla suoraan tiedonhakuprosessiin, jonka on tunnistettava keskeisiä tutkimuksia, jotka vastaavat tutkimuskysymyksiin. Lisäksi ne ohjaavat sitä, että kerätty tieto syntetisoidaan niin, että tutkimuskysymykset tulevat kunnollisesti vastatuiksi. (Garousi ym., 2019) Tiedonhakuprosessissa Scopus-hakulausekkeella TITLE-ABS-KEY (("AI" OR "artificial intelligence") AND "strategy games")) löydettiin 438 osumaa. Artikkeleiden sisällyttämisen tai poissulkemisen perusteina voidaan käyttää esimerkiksi artikkelissa käytettyä metodologiaa, julkaisuajankohtaa tai siinä käytettyjen lähteiden määrää (Garousi ym., 2019). Tämän menetelmän etuna on, että mitä useampi lähde voidaan sulkea pois varmuudella näitä kriteereitä hyödyntäen, sitä vähemmän vaivaa joudutaan näkemään tutkimuksen laadun arviointiin (Garousi ym., 2019). Artikkeleiden valintaperusteena käytettiin niiden kykyä vastata asetettuihin tutkimuskysymyksiin sekä niiden julkaisuajankohtaa. Hakulausekkeella löydetyistä artikkeleista rajattiin vuonna 2009 ja sitä uudemmat artikkelit. Vuosirajauksen rajaamasta 343 7

artikkelista valittiin artikkelit, jotka vastasivat parhaiten tutkimuskysymyksiin (Taulukko 1). Taulukko 1. Keskeiset lähteet tutkimuskysymyksiin Artikkeli Strategiapelit? Tekoälytarve? Tekoälyratkaisut? Ghoneim & Essam, 2012 x Farouk ym., 2017 x x x Ontañón ym., 2013 x Weber & Mateas, 2009 x x x Brown & Guinn, 2014 x x x Li & Du, 2018 x Tong ym., 2012 x x x Backhus ym., 2013 x x x Jang ym., 2009 x x Nogueira-Collazo ym., 2016 x x Synnaeve & Bessière, 2011 x x Justensen & Risi, 2017 x x Rogers & Skabar, 2014 x x Zhao ym., 2018 x x 8

2 Strategiapelit ja tekoälyn tarve Pelit voidaan karkeasti määritellä aktiviteeteiksi kahden tai useamman yksittäisen päätöksentekijän välillä, jotka pyrkivät saavuttamaan päämääränsä tietyssä rajatussa kontekstissa. Strategiapeleissä lopputulos on vahvasti riippuvainen pelaajien älyllisestä kapasiteetista. Strategiapeleissä pelaajien täytyy käyttää abstraktiota, käsitteellistämistä, päättelyä ja päätöksentekoa. (Ghoneim & Essam, 2012) Strategiapeleille ominaisia piirteitä ovat mikro- ja makromanagerointi. Mikromanageroinnilla tarkoitetaan pelin yksiköiden kontrolloimista ja kontrolloitujen yksiköiden tehokkuuden maksimointia, esimerkiksi tuotetun ja vastaanotetun vahingon määrän suhteen (Synnaeve & Bessièrem 2011). Mikromanagerointi on tyypillinen osa reaaliaikaisia strategiapelejä. Makromanageroinnilla tarkoitetaan strategiapeleissä korkean tason strategiaa (Justensen & Risi, 2017). Makromanagerointi on tyypillinen osa sekä reaaliaikaisia, että vuoropohjaisia strategiapelejä. Makromanagerointi käsittää toimintoja, kuten mitä objekteja pelissä aiotaan tuottaa seuraavaksi tai mikä on paras siirto pelin missäkin tilanteessa (Justensen & Risi, 2017). Strategiapelit voidaan jakaa kahteen pelityyppiin: reaaliaikainen strategia (Real-Time Strategy, RTS) ja vuoropohjainen strategia (Turn-Based Strategy, TBS). Reaaliaikaiset strategiapelit ovat yleisesti strategisia sotapelejä, jotka simuloivat oikean maailman sotia. RTS-peleissä pelaajat kontrolloivat yksiköitään reaaliajassa päämäärän, kuten esimerkiksi vihollisen joukkojen tuhoamisen, saavuttamiseksi. Yleensä RTS-peleissä kontrolloitavilla joukoilla on erilaisia vahvuuksia ja heikkouksia - pelin voittaminen on vahvasti riippuvainen pelaajan kyvystä valita ja asettaa joukkonsa oikein, toisin sanoen hänen käyttämästään strategiasta. (Farouk ym., 2017.) RTS-peleissä pelaajan täytyy tavanomaisesti rakentaa ekonomia (kerätä resursseja ja rakentaa tukikohta) ja sotavoima (kouluttaa yksiköitä ja tutkia teknologioita) voittaakseen vastustajansa. Vuoropohjaisissa strategiapeleissä pelaajat tekevät toimintoja joko vuorotellen tai yhtäaikaisesti siten, että toiminnot tapahtuvat vasta kun molemmat pelaajat ovat valinneet toimintonsa (Brown & Guinn, 2014). Tästä syystä pelaajilla on pelin säännöissä 9

asetetun vuoron verran aikaa vastata vastustajan toimintoihin, toisin sanoen oman strategiansa pohtimiseen. Vuoropohjaisissa strategiapeleissä korostuu pelaajan taito ennakoida vastustajan reaktioita (Brown & Guinn, 2014). Vuoropohjaisuudesta johtuen TBS-pelit keskittyvät pääasiassa makromanagerointiin. RTS-pelien ja TBS-pelien välillä on eroja kuten yhtäaikainen liike ja reaaliaikaisuus. RTS-pelit ovat yhtäaikaisten liikkeiden pelejä, jossa useampi kuin yksi pelaaja voi suorittaa toimintoja samaan aikaan. Lisäksi nämä toiminnot eivät ole välittömiä, vaan vievät aikaa tapahtua. Reaaliaikaisuus tarkoittaa sitä, että pelaajilla on RTS-peleissä hyvin vähän aikaa päättää seuraava liike verrattuna esimerkiksi shakkiin, jossa pelaajalla voi olla useita minuutteja seuraavan liikkeen päättämiseksi. Esimerkiksi StarCraft RTS-pelissä peli suorittaa 24 ruutua sekunnissa, joka tarkoittaa, että pelaajat voivat suorittaa toimintoja 42ms välein ennen kuin pelin tila muuttuu uudelleen. Lisäksi useimmat RTS-pelit ovat osittain havainnoituja, eli pelaajat voivat nähdä pelikartasta vain tutkitun alueen. Monessa reaaliaikaisessa strategiapelissä on mukana lisäksi epädeterministisiä piirteitä, eli joidenkin toimintojen onnistuminen on sattumasta riippuvaisia. RTS-pelien kompleksisuus niin tila-avaruuden kuin valittavissa olevien toimintojen määrä sykliä kohden ovat hyvin suuria. TBS-pelien, kuten shakin, tila-avaruus on arvioitu olevan noin 10 50, texas hold em pokerin noin 10 80 ja Gon noin 10 170 verrattuna esimerkiksi StarCraft RTS-pelin tila-avaruuteen, jonka on arvioitu olevan tyypillisessä kartassa noin 10 1685 tai vieläkin suurempi, riippuen mitkä kaikki tekijät huomioidaan mukaan. Näistä syistä johtuen RTS-peleihin ei voida niiden ratkaisemiseksi soveltaa samoja tekniikoita kuin klassisiin vuoropohjaisiin peleihin, kuten shakkiin, ilman jonkin asteista abstraktiota tai pelkistystä. (Ontañón ym. 2013) Tekoäly on jatkuvasti yhä keskeisempi osa videopelien pelattavuutta. Tekoäly toimii vastustajana jokaisessa yksinpelattavassa videopelissä, mutta myös avustavana osana tiimejä ensimmäisen persoonan räiskintäpeleissä (FPS, first person shooters), neutraaleina ja avustavina ei-pelaaja hahmoina (NPC, non-playing character) roolipeleissä (RPG, role playing games, tai MMORPG, massive multiplayer online RPG) sekä yksiköiden autonomiana reaaliaikaisissa strategiapeleissä, jos pelaaja voi keskittyä 10

enemmän strategiaan yksittäisten yksiköiden kontrolloimisien sijaan. (Synnaeve & Bessière 2011) Kirjallisuudessa tekoälyn kehityksessä kohteena olleita strategiapelejä on esitelty omissa luvuissaan (Luvut 2.1 2.9). RTS-pelejä ovat Balanced Annihilation, Conqueror, Planet Wars, StarCraft, GLest ja Warcraft III. TBS-pelejä ovat, Boundary, Go ja Wizard. 2.1 Balanced Annihilation Balanced Annihilation on ilmainen ja avoimen lähdekoodin moninpeli. Peli luokitellaan RTS-peliksi, koska pelaajat suorittavat toimintoja yhtäaikaisesti ja pelin tapahtumat päivittyvät reaaliajassa. Pelissä käydään massiivisia taisteluita maalla, merellä ja ilmassa kahden eri kyberneettisen ryhmän välillä. Pelissä voi kontrolloida maksimissaan 5000 erillistä yksikköä. Taisteluita voi käydä sadoissa eri kartoissa, joissa on laaja kirjo erilaisia maanmuotoja ja täten useita eri hyödynnettäviä strategioita. (Balanced Annihilation kotisivu) Balanced Annihilation hyödyntää Spring Engine RTS-pelimoottoria, joka mahdollistaa suuren valikoiman kustomointimahdollisuuksia sekä kompleksien pelien luonnin. Pelissä jokaista yksikköä hallinnoi oma fyysinen mekanismi, jonka ansiosta jokainen tankki, alus tai lentokone valitsee omat kohteensa. Tästä syystä Balanced Annihilation tarjoaa suuren määrän mahdollisia taktiikoita sekä tasapainon mikro- ja makromanageroinnin välille. (Balanced Annihilation kotisivu) Merkittävä ongelma RTS-pelien mikromanageroinnissa on monien yksiköiden tilallinen päättely niiden ollessa pelin tekoälyn hallinnassa liittyen yksiköiden törmäyksien vähentämiseen, vihollisten kimppuun hyökkäämiseen ja hyökkäysten väistämiseen. Ryhmätason mikromanagerointi voidaan esittää monitoimija (multiagent) tehtävänjako-ongelmana (task allocation problem), koska missä tahansa hetkessä pelissä sillä hetkellä suoritettavina olevat erilaiset toiminnot, jotka voidaan asettaa pelin objekteille, voidaan käsittää tehtävinä. Riippuen pelin objektin kyvyistä nämä tehtävät voi- 11

vat olla esimerkiksi vihollisen kimppuun hyökkääminen, omien joukkojen parantaminen, rakennusten rakentaminen, uuteen kohteeseen liikkuminen, uusien yksiköiden tuottaminen ja monia muita. Esimerkiksi vihollisen kimppuun hyökkäämisestä tulee hyökkäys tehtävä, jossa kohde on vihollisen yksikkö. Haasteena on kehittää systeemi, joka jakaa näitä tehtäviä vapaille toimijoille (yksiköt ja rakennukset) siten, että ryhmä saavuttaa sille strategia tason tekoälyltä asetetut tavoitteet. (Rogers & Skabar, 2014) Kuvassa 3 esitetty tyypillinen RTS-pelien armeijoiden kontrollointiin liittyvä hierarkia. Hierarkia koostuu armeijasta, joka koostuu yksiköistä koostuvista ryhmistä. Strategiatason päätökset koskevat usein armeijaa kokonaisuutena, kun taas mikromanagerointi käsittää ryhmä- ja yksikkötason kontrolloinnin. Kuva 1. Tyypillinen RTS pelien armeijahierarkia (mukaillen Rogers & Skabar, 2014) 2.2 Boundary Boundary luokitellaan TBS-peliksi, koska pelitapahtumat koostuvat vuoroista, joiden aikana pelaaja suorittaa valitsemansa toiminnot näkemättä vastustajansa toimia ennen kuin vuoro on päättynyt. Boundary kehitettiin testikentäksi mukautuville tekoälyille. Boundary on web-valmiudella varustettu vuoropohjainen strategiapeli, joka perustuu 12

sen kehittäneiden tutkijoiden alkuperäisiin ideoihin. Boundary pelissä jokainen pelaaja aloittaa pelin tietyllä määrällä paloja, jotka on sijoitettu satunnaisesti pelikentälle. Palat luovat vaikutuksen alueen ympärilleen, joka esitetään pelaajan värinä. Samalle pelaajalle kuuluvat palat, jotka ovat tarpeeksi lähellä toisiaan, yhdistävät alueensa yhdeksi isoksi vaikutuksen alueeksi. Palat voivat liikkua matkan, joka on suhteutettu niiden muodostaman alueen sisältämien palojen lukumäärään. Mikäli isoon alueeseen kuuluvat palat levittäytyvät liikaa vaikutuksen alue niiden ympärillä pienenee, kunnes ne irtautuvat alueesta. (Brown & Guinn, 2014) Pelin tarkoituksena on kerätä pisteitä joko valtaamalla aarteita, jotka on sijoitettu satunnaisesti pelikentälle, tai valtaamalla vastustajan paloja saartamalla ne pelaajan värillä. Jokaisella vuorolla pelaajilla on tietty määrä aikaa suunnitella liikkeensä yhtäaikaisesti. Pelaajat voivat liikuttaa vuorossa niin montaa omaa palaansa kuin haluavat. Pelaaja ei voi nähdä vastustajan suunnittelemia liikkeitä - ennakoimalla vastustajan liikkeet oikein, niin saa etua pelissä. Suunnitteluvaiheen jälkeen palat liikkuvat yhtäaikaisesti, vaikutusalueet muuttuvat palojen mukana, aarteet tai palat saattavat joutua vallatuiksi sekä palat saattavat jakautua erillisiin alueisiin tai yhdistyä uusiksi alueiksi. (Brown & Guinn, 2014) Peli päättyy, kun joko kaikki aarteet on vallattu tai kun yhdellä pelaajalla ei ole enää paloja jäljellä. Pelin sääntöjen kehittämisen päämääränä oli sallia useita strategioita. Pelaajat voivat keskittyä aarteisiin tai vihollisen palojen valtaamiseen (aarteet ovat helpompia vallata, mutta vihollisen paloista saa enemmän pisteitä ja asettaa vihollisen heikompaan asemaan) ja palojen liikkumismekaniikat mahdollistavat sekä agressiivisen että defensiivisen pelityylin. Defensiivinen pelaaja on alussa heikommassa asemassa, koska hänen täytyy käyttää vuoroja palojensa yhteen kasaamiseen muodostaakseen isoja alueita, mutta loppupelissä siitä saa etua kasvaneen liikkumismatkan ja valtaamispotentiaalin muodossa. Aggressiivinen pelaaja levittää palansa yhden tai kahden ryhmiin ja pyrkii päättämään pelin nopeasti joko valtaamalla kaikki aarteet tai saamalla ylivoimaisen valtaus ylivoiman ennen kuin defensiivisen pelaajan strategia alkaa toimimaan. Boundary on yksinkertainen alusta, jossa tekoälyalgoritmeja voi testata strategisen liikkumisen suhteen. (Brown & Guinn, 2014) 13

Pelaajan strategiaan mukautuva tekoäly parantaa pelaajan kokemusta niin pelattavuuden kuin nautinnon kannalta verrattuna tekoälyvastustajaan, joka hyödyntää staattista strategiaa. (Brown & Guinn, 2014) 2.3 Conqueror Conqueror on tutkimusta varten kehitetty reaaliaikainen simulaatiopeli, jossa kaksi kansaa pyrkii laajentamaan aluettaan ja samalla viemään sitä toiselta. Peli luokitellaan RTS-peliksi, koska pelitapahtumat päivittyvät reaaliajassa ja koska pelaajat voivat tehdä toimintoja yhtäaikaisesti. Kummallakin kansalla on sotilaita, jotka yksilöllisesti rakentavat kyliä ja taistelevat vihollisia vastaan. Kylät tuottavat sotilaita tietyn ajan verran. Pelin tarkoituksena on tutkia multiagenttien käyttäytymistä ja esitellä pelien tekoälyä sekä evolutionääristen ratkaisuiden käyttökelpoisuutta. (Jang ym., 2009) Resurssit, joilla kansa aloittaa pelin, ovat yksi kylä ja yksi sotilas. Kylän energia kasvaa ajan kuluessa ja kun energia saavuttaa arvon 100, niin kylä tuottaa yhden sotilaan, ja energia putoaa taas nollaan. Tuotetut sotilaat voivat luoda uusia kyliä, tuhota vihollisen kyliä tai taistella vihollisen sotilaita vastaan. Sotilaiden energia kasvaa samaan tapaan kuin kylien, mutta kuluu taistellessa tai kylää rakentaessa. Sotilaat voivat taistella joukoissa, jolloin joukon energia on sotilaiden yhteenlaskettujen energioiden summa. Lisäksi erilaiset rakennukset voivat vähentää vihollisen hyökkäysvoimaa. (Jang ym., 2009) Tekoälyn menestyminen pelissä riippuu sen kyvystä tehdä päätöksiä tehokkaasti. Tekoäly kykenee parhaisiin ratkaisuihin, jos päätöksentekoprosessi jakautuu usean toimijan kesken yhden monoliittisen päätöksentekijän sijaan. (Jang ym., 2009) 2.4 GLest GLest on ilmainen 3D RTS-peli, jossa pelaaja voi hallita kahden eri kansan, Tech ja Magic, armeijoita. Peli luokitellaan RTS-peliksi, koska pelitapahtumat päivittyvät reaaliajassa ja koska pelaajat voivat tehdä toimintoja yhtäaikaisesti. Tech-kansa koostuu 14

pääasiassa sotilaista ja mekaanisista laitteista. Magic-kansa koostuu maageista ja heidän luomistaan olioista. Pelin tarkoituksena on tuottaa ja käyttää joukkoja sekä rakennuksia päihittääkseen vastustajan armeija reaaliaikaisessa taistelussa. (Farouk ym., 2017) GLest ei ole vain peli, mutta myös monialustainen ja täysin muokattava pelimoottori strategiapelien luomista varten XML-kieltä käyttäen. GLestissä käytetty teknologia pitää sisällään useita pelaamisen joustavuutta ja käyttäjäystävällisyyttä koskevia piirteitä. Se mahdollistaa esimerkiksi siirrettävyyden, alustariippumattomuuden ja yksinja moninpelimahdollisuuden. (Farouk ym., 2017) On olemassa tarve vastustajan mallinnukselle, jonka tehtävänä on esittää malli pelaajasta tekoälylle, jotta se kykenisi sopeuttamaan pelityyliään pelaajan vahvuuksien ja heikkouksien mukaisesti. Vastustajan mallintaminen on erittäin haastavaa etenkin videopeleissä, koska se täytyy suorittaa reaaliaikaisesti ja samanaikaisesti muiden vaativien laskutoimitusten, kuten pelin grafiikoiden renderöinnin, kanssa. (Farouk ym. 2017) Farouk ym. (2017) esittävät vastustajan mallintamiseen kehitetyn tekoälyn koostuvan kahdesta osasta: mallin muodostus ja mallin toteutus. Mallin muodostus (model formation) on vastuussa vastustajien mallien suunnittelusta ja rakentamisesta. Se pureutuu siihen, mitä informaatiota mallissa kuuluisi olla. Vaihe hyödyntää historiallista dataa pelitallenteista oppiakseen vastustajien malleja. Mallin muodostusvaiheessa on kolme ketjutettua moduulia: mallin piirteiden valinta, mallin piirteiden painotus ja vastustajan mallin generointi. Mallin piirteiden valinta moduulin funktio on oppia hyvin kuvaavat piirteet, jotka parhaiten erottelevat vastustajatyypit toisistaan. Kun tämä on opittu, niin mallin piirteiden painotus vaihetta kutsutaan, jotta jokaiselle piirteelle saadaan asetettu painoarvo. Tämä painoarvo peilaa sitä, miksi juuri kyseinen piirre on tärkeä kyseisen mallin määrittelyssä. Tämän jälkeen vastustajan mallin generointi moduulia käytetään klusteroimaan vastustajamallit mallikantaan säilöttäväksi. Mallin toteutus (model execution) hyödyntää piirteitä tilannepohjaisesta päättelystä (CBR, Case-Based Reasoning) efektiivisenä metodina älykkäälle reaaliaikaiselle päättelylle ja suunnittelulle RTS-peleissä. Tässä vaiheessa nykyinen vastustajamalli luokitellaan 15

yhdeksi opituista malleista. Luokitellusta vastustajasta ja tekoälyn nykyisestä suoriutumisesta riippuen pelin tekoäly sopeuttaa itsensä uudelleen vaihtamalla strategiaa. Tekoälymenetelmään on sisällytetty suoriutumisen arviointi moduuli, joka arvioi tekoälyn suoriutumista jatkuvasti. Havaitun suoriutumisen perusteella systeemi päättää, mikäli sopeutumista tarvitaan vai ei. Jatkuva suoriutumisen arviointi vahvistaa systeemin jykevyyttä ja vahvistaa pelin tekoälyn sopeutumisen luotettavuutta. Tietokoneen laskentatehosta arviolta 20% on tekoälyn käytettävissä. Tästä 20%:sta suuri osa kuluu yksinkertaisiin tekoälytoimintoihin kuten yksiköiden liikuttamiseen peliympäristössä. Vastustajan mallien käsittely on erittäin monimutkainen prosessi, jossa mallit täytyy tuottaa kompleksissa peliympäristössä (vähän aikaa havainnoinnille ja tila-avaruuden korkea dimensionaalisuus). Nämä olosuhteet johtavat vain muutamiin laskennallisesti kevyisiin vastustajan mallinnus lähestymistapoihin, jotka voidaan integroida pelin tekoälyyn. (Farouk ym. 2017) 2.5 Go Go, toiselta nimeltään Weiqi tai Baduk, on strateginen lautapeli, joka on lähtöisin kiinasta yli 2500 vuotta sitten. Peli luokitellaan TBS-peliksi, koska pelaajat toteuttavat siirtonsa vuorotellen. Peli on ollut suosittu Itä-Aasian maissa ja kiinnostus peliä kohtaan on kasvussa Euroopassa ja Pohjois-Amerikassa etenkin tietojenkäsittelyn ja matematiikan saralla. Peli pelataan kahden pelaajan kesken vuorotellen laittamalla vaaleita ja mustia kiviä 19x19 ruudukon sisältävälle laudalle. Tehtävänä on ympäröidä isompaa aluetta kuin vastustaja. Vaikka pelin säännöt ovat helpot, on Go erittäin monimutkainen, sillä sen tila-avaruus on luokkaa 10 170 ja pelipuun koko on 250 150 verrattuna shakin vastaaviin, jotka ovat 10 47 ja 35 80. (Li & Du, 2018) Peliä voi pelata erikokoisilla laudoilla, esimerkiksi 9x9 ja 13x13. Pelissä musta aloittaa aina ja peli päättyy kahteen ja kolmeen perättäiseen passaukseen tai luovutukseen. Osa Go pelin perussäännöistä on esitetty seuraavasti (Zhao ym. 2018): Vapaudet (liberties). Tyhjät leikkauskohdat kivien vieressä. 16

Kytkentä (atari). Liike vähentää kiven tai kivijonon yhteen vapauteen. Kiviä, joilla on vain yksi vapaus, kutsutaan kytketyiksi. Valtaus. Kivien joukko vähentyy nollaan vapauteen vastustajan toimesta ja tämän jälkeen poistetaan laudalta. Itsemurha. Gon säännöissä ei ole sallittua pelata kiveä, jonka pelaamisen seurauksena pelaajan oman kivijoukon vapaudet menisivät nollaan ilman, että valtaa samalla vastustajaa. Silmä. Yksittäistä tyhjää leikkauskohtaa ryhmän sisällä sanotaan silmäksi. Yksi avain teemoista Gossa on silmien luominen omiin kiviryhmiin ja yrittää estää vastustajaa luomasta silmiä. Ko. Pelaajat eivät saa tehdä siirtoa, joka palauttaisi pelin edelliseen tilanteeseen. Ko estää loputtomien valtausten mahdollisuuden. Avustus. Kompensaatiokivien lukumäärä, jotka musta saa pelata ennen valkoisen vuoroa. Avustuksen tarkoituksena on mahdollistaa eritasoisten pelaajien kilpailullisuus. Komi. Musta aloittaa aina, joka antaa pelaajalle edun. Tästä syystä valkoinen saa kompensaatiota, jota kutsutaan nimellä komi. Kiinalaisissa säännöissä komi on 7,5 pistettä ja korealaisissa ja japanilaisissa se on 6,5 pistettä. Pisteytys. Pelin voi päättää perättäisillä passauksilla tai luovutuksella. Kiinalaisissa säännöissä, kun peli päättyy, niin pisteisiin lasketaan hallittu alue, vallatut kivet ja komi. Tyypillinen Go peli kestää 150-300 siirtoa. Tekoälyä tarvitaan siirron ennustamiseen. Go on vaikea peli tietokoneohjelmille kahdesta syystä. Ensimmäinen syy on sen kombinatoriikallinen kompleksisuus. Go-pelissä on arviolta 200 mahdollista siirtoa jokaisella vuorolla. Tämä saa aikaan sen, että pelin piirteitä on vaikea hankkia keinotekoisesti. Toisen syyn aiheuttaa siirtojen pitkäaikaisvaikutukset. Yksinkertaiset heuristiikat siirtojen arviointiin, kuten materiaaliedun laskeminen, eivät ole hyödyllisiä Go:ssa. (Zhao ym. 2018) 17

2.6 StarCraft StarCraft on reaaliaikainen strategiapeli, jonka on kehittänyt Blizzard Entertainment vuonna 1998. Peli luokitellaan RTS-peliksi, koska pelaajat voivat toteuttaa reaaliajassa toteutuvia toimintoja yhtäaikaisesti. Peli sijoittuu sci-fi-universumiin, jossa pelaaja valitsee kolmesta eri rodusta (Protoss, Terran, Zerg) haluamansa. Yksi pelin hienoimmista piirteistä on se, että kaikki kolme rotua ovat todella hyvin tasapainossa: Terran kansan yksiköt ovat monipuolisia ja joustavia; Protoss kansan yksiköt ovat hitaita ja kalliita tuottaa, mutta vahvoja ja kestäviä taistelussa; Zerg kansan yksiköt ovat halpoja ja heikkoja ja niiden tuottaminen on nopeaa. (Ontañón ym., 2013) Voittaakseen StarCraft pelin, pelaajan täytyy ensin kerätä resursseja (mineraaleja ja Vespene-kaasua). Kun resursseja on saatavilla, tulee pelaajien allokoida niitä uusiin rakennuksiin (jotka vahvistavat pelaajan ekonomiaa ja mahdollistavat voimakkaampien yksikköjen rakentamisen), uusien teknologioiden tutkimiseen (jotka avaavat uusia kykyjä ja vahvuuksia yksiköille) ja hyökkäysyksiköiden kouluttamiseen. Yksiköitä täytyy jakaa eri tehtäviin kuten tiedusteluun, puolustukseen ja hyökkäykseen. Näiden tehtävien ohella pelaajien täytyy samanaikaisesti strategisesti ymmärtää kartan geometriaa päättääkseen minne rakentaa uusia rakennuksia. (Ontañón ym. 2013) Kun kahden pelaajan hyökkäysyksiköt kohtaavat, täytyy molempien pelaajien nopeasti ohjata joukkojaan taistelussa, joka vaatii nopeaa ja reaktiivista yksiköiden hallintaa. Voittaja on se, kumpi tuhoaa vastustajan tukikohdan ensimmäisenä. Tyypillinen StarCraft-kartta on määritelty suorakulmaisena ruudukkona, jossa leveys ja korkeus on mitattu 32x32 pikselistä koostuvien neliöiden, toiselta nimeltään rakennustiilien, lukumääränä. Karttojen mitat vaihtelevat 64x64 rakennustiilen kokoisista aina 256x256 kokoisiin. Jokainen pelaaja voi kontrolloida maksimissaan 200 yksikköä (plus rajaton määrä rakennuksia). Jokaisella rodulla on 30-35 erilaista yksikkö ja rakennusta, joilla useilla niistä on huomattava määrä erikoistoimintoja. (Ontañón ym., 2013) StarCraft tarjoaa mahdollisuuden tallentaa uusintoja peleistä myöhempää analyysiä varten. StarCraftista pidetään useita maailmanlaajuisia kilpailuita kuten World Cyber 18

Games, BlizzCon ja IeSF Invitational. Pelin suosio ja tallennusmahdollisuus on tuottanut laajan kokoelman pelilogeja, joita voidaan analysoida. Pelissä oleva teknologiapuu on suunnattu graafi ilman syklejä. Se määrittelee yksikkö- ja rakennustyypit, joita pelissä voidaan tuottaa. (Weber ym., 2009) Tärkeä elementti pelin strategiassa on rakennusjärjestys, joka määrittelee sen, missä järjestyksessä pelaaja etenee ja laajentaa teknologiapuutaan. Rakennusjärjestykset liittyvät vahvasti pelattuun strategiaan kuten pikahyökkäykseen tai ajoitettuun hyökkäykseen. Pikahyökkäyksessä pelaaja yrittää murskata vastustajansa halvoilla yksiköillä pelin alkuvaiheessa. Ajoitetuissa hyökkäyksissä hyökkäyksen käynnistäjänä toimii esimerkiksi jonkin parannuksen valmistuminen. (Weber ym., 2009) StarCraft-pelin mikromanagerointiin keskittyvä tekoäly koostuu Bayeslaisista yksiköistä (Bayesian unit). He määrittelevät toteuttamansa tekoälyn siten, että asetetut päämäärät syötetään Bayeslaiselle yksikölle sensorisena sisääntulona, joka vaikuttaa yksikön käyttäytymiseen riippuen tilasta tai tilanteesta, jossa yksikkö on kyseisellä ajanhetkellä. (Synnaeve & Bessière 2011) Bayeslaiset yksiköt ovat yksinkertaisia äärellisiä automaatteja (finite-state machines). Ainut kommunikaatio yksiköiden välillä tapahtuu yksiköiden ryhmätasolla (units group), jonka kautta yksiköt saavat myös päämääränsä (Kuva 1). Bayeslaisen yksikön toiminta koostuu tiloista, jotka ovat tiedustelu, hyökkäys ja liikkuminen. Hyökkäys sisältää lisäksi ampumisen, liikkumisen ja pakenemisen (Kuva 2). Bayeslaista ohjelmointia käytetään vaihtoehtona logiikalle muuntamalla tiedon epätäydellisyydet epävarmuuksiksi. Bayeslainen malli käyttää jakaumia ja päättelee niiden perusteella ennustuksien sijaan. Tämä menetelmä toimii suoraan epävarmuuksien kanssa. (Synnaeve & Bessière 2011) 19

Kuva 2. Bayeslaisia yksiköitä ohjaavan tekoälyn hierarkia (mukaillen Synnaeve & Bessière 2011) Kuva 3. Bayeslaisen yksikön toiminnan eri tilat (mukaillen Synnaeve & Bessière 2011) Mikromanagerointi on kontrolloitujen yksiköiden tehokkuuden maksimoimista, esimerkiksi tuotetun ja vastaanotetun vahingon määrien suhteen. Esimerkkinä vahingoitetun yksikön pelastamisen perääntymällä siten, että vihollisten on joko seurattava sitä ja täten joko voimistaa pelaajan tulivoimaa tai heikentää sitä viholliselta. Yksiköiden 20

hallinnan näkökulmasta mahdollisten toimintojen lukumäärä jokaisessa mikrovuorossa (1/24 sekuntia StarCraftissa) rajoittaa pelin tilasta tehtävän päättelyn eri tasoja sisältävään hierarkkiseen malliin. (Synnaeve & Bessière, 2011) Useimmissa RTS-peleissä yksikkö voi liikkua ainakin sen ympäröiviin 24 tiileen, pysyä paikoillaan, hyökätä tai joissakin tapauksissa käyttää erilaisia taitoja, eli yli 26 erilaista toimintoa jokaiselle mikrovuorolle. Vaikka käsittelyssä olisi vain kahdeksan (8) suuntaa, paikallaan pysyminen ja hyökkäys N yksiköillä, syntyy siitä 10 N erilaista kombinaatiota jokaista mikrovuoroa kohden. StarCraftissa suuret taistelut koostuvat vähintään 20 yksiköstä per pelaaja, joten optimaalinen yksiköiden hallinta muodostaa liian suuren tila-avaruuden, että sitä pystyisi tutkimaan reaaliajassa normaalilla laitteistolla, vaikka käsiteltäisiin vain yksi toiminto per yksikkö. (Synnaeve & Bessière 2011) Yksi merkittävimmistä haasteista pelien kehittäjille on pelaajien toimintoihin reagoivien mukautuvien tekoälyjen luonti. RTS-peleissä älykkään tekoälyvastustajan tulisi kyetä vastaamaan pelaajan strategiaan vastastrategialla, mitä suunnitelman tunnistamisen prosessiksi, jossa toimija tarkkailee toisen toimijan toimintoja tavoitteenaan vaikuttaa tämän tuleviin toimintoihin, aikomuksiin tai päämääriin. (Weber & Mateas, 2009) Strategiapeleissä tarvitaan korkean tason strategiaa eli makromanagerointia. StarCraftissa makromanagerointia on rakennusjärjestys, eli järjestys, jossa pelaaja tuottaa materiaalia pelissä, joka voidaan nähdä strategisena suunnitelmana, jota pelaaja noudattaa. Materiaalia voivat olla niin yksiköt, rakennukset, parannukset kuin teknologiat. Pelin aloituksessa tapahtuvan rakennusjärjestyksen lisäksi on yhtä tärkeää, että pelaaja mukautuu vastustajan strategiaan myöhemmin pelissä. Esimerkiksi, jos pelaaja saa selville, että vastustaja tuottaa lentäviä yksiköitä niin on huono idea tuottaa ainoastaan maahyökkäyksiin rajoittuneita yksiköitä. Pelaajien täytyy pystyä reagoimaan ja mukautumaan erilaisiin vastustajan tekemiin rakennusjärjestyksiin. StarCraftissa makromanagerointi on haastavaa useasta syystä, mutta pääasiassa siksi, että alueita, joissa ei ole pelaajan kontrolloimia yksiköitä ovat havaitsemattomissa. Tätä pelikentän osittain peittävää pelimekaniikkaa kutsutaan termillä fog-of-war. Tämän rajoituksen takia 21

pelaajan täytyy ohjata tiedustelijoina toimivia yksiköitä kartalla löytääkseen vihollisen tukikohtia. Näin kerätystä osittaisesta tiedosta pelaajan täytyy jatkuvasti tulkita vastustajan käyttämää strategiaa. (Justensen & Risi 2017) 2.7 Planet Wars Planet Wars on kahden pelaajan peli. Peli luokitellaan RTS-peliksi, koska pelitapahtumat toteutuvat reaaliaikaisesti ja pelaajat suorittavat toimintoja yhtäaikaisesti. Peli sijoittuu karttaan, joka sisältää useita planeettoja, joista jokaisella on tietty määrä aluksia. Planeetat voivat kuulua joko pelaajalle, vastustajalle tai olla neutraaleja. Jokainen pelaajan omistama planeetta kasvattaa aluksien lukumäärää planeetan omaaman kasvuvauhdin perusteella. Jokaisen vuoron alussa pelaaja saa tietoonsa pelin sen hetkisen tilanteen (esim. tietoja planeetoista ja laivastoista) ja voi tämän jälkeen tehdä yhden tyyppisen toiminnon: lähettää aluksista koostuvia laivastoja toiselle planeetalle. (Nogueira-Collazo ym. 2016) Laivastojen lähettämisen jälkeen jokainen pelaajan omistama planeetta kasvattaa jäljelle jääneiden alusten lukumäärää suhteessa kasvuvauhtiin. Laivastot, jotka lähetettiin edellisessä käskyssä, matkaavat tietyn määrän vuoroja päämääräänsä, joka riippuu planeettojen välisestä etäisyydestä. Jos päämääräplaneetta ja alukset kuuluvat samalle pelaajalle, niin planeetalla olevien alusten määrä saadaan laskemalla siellä valmiiksi olleiden ja sinne saapuneiden alusten summa. Mikäli planeetta, jolle alukset saapuvat on neutraali, niin siellä on kiinteä määrä aluksia (NS) ja pelaajan täytyy lähettää kyseiselle planeetalle NS + 1 alusta saadakseen sen hallintaansa. Jos pelaaja lähettää aluksensa vihollisen planeetalle (hyökkää vihollisen kimppuun) syttyy taistelu, jossa määritetään planeetan omistajuus. Vaikka pelaajat asettavat käskynsä vuoropohjaisesti, tapahtuvat niiden toteutukset silti aina samaan aikaan, joten peliä voidaan käsitellä reaaliaikaisena. Pelaaja, jolla on eniten aluksia pelin lopussa, voittaa. Peli voi loppua myös aiemmin, mikäli toinen pelaajista menettää kaikki aluksensa tai jos pelaaja ylittää aikarajan toteuttamatta käskyjään vuorolla ja täten luovuttaa pelin. Jos molemmat pelaajat omaavat saman määrän aluksia pelin lopussa, on pelin lopputulos tasapeli. (Nogueira-Collazo ym. 2016) 22

Tekoälymenetelmää tarvitaan sekä pelaajan taitoihin sopeutuvan tekoälyvastustajan kuin että pelin sisällön luontiin. Tekoälymenetelmiä hyödyntävää automaattista pelisisällön luontia kutsutaan proseduraaliseksi sisällön generoinniksi (PCG, Procedural Content Generation). Pelisisältö viittaa kaikkiin pelin aspekteihin, lukuun ottamatta tietokonepelaajia (NPC, Non-Player Character), kuten karttoihin, kenttiin, dialogeihin, hahmoihin, sääntöihin ja aseisiin. PCG kuvastaa yhtä kiinnostavinta ongelmaa pelikehityksessä, koska pelin sisältö on merkittävä tekijä pelaajien mielenkiinnon ylläpitämisessä. (Nogueira-Collazo ym. 2016) Pelaajien tyytyväisyyttä on vaikea mitata, koska se riippuu monesta muuttujasta kuten persoonallisuudesta, iästä, kulttuurista, taidoista, taipumuksista ja sukupuolesta. Tästä syystä yleisen mallin luonti, joka tyydyttäisi kaikkien vaatimukset on todella vaikea tehtävä. Peliteollisuudessa on tiedossa, että pelit, jotka ovat liian vaikeita tai liian helppoja, eivät menesty. Vaikeusasteen tasapainotus on vaikea tehtävä pelinkehittäjille, koska pelaajien taidot vaihtelevat aina noviisista eksperttitasolle. Tämän takia tekoälymenetelmä, joka kykenee muokkaamaan pelin vaikeutta niin tekoälyvastustajan kuin myös pelisisällön kannalta, on tärkeä osa tutkimustyötä. (Nogueira-Collazo ym. 2016) 2.8 Warcraft III Warcraft III sijoittuu miekkoja ja taikuutta sisältävään fantasiamaailmaan. Peli luokitellaan RTS-peliksi, koska pelaajat voivat toteuttaa reaaliajassa toteutuvia toimintoja yhtäaikaisesti. Pelissä taistellaan reaaliaikaisia taisteluita armeijoiden välillä 3D-kartassa. Armeijoita kontrolloivat sekä ihmis- että konepelaajat. Voittaja on se, joka tuhoaa vastustajien joukot. Armeijat koostuvat neljän (4) eri rodun yksilöistä, joista jokaisella rodulla on erilaisia vahvuuksia ja heikkouksia. Esimerkiksi Orc-kansan yksiköt kestävät enemmän vahinkoa kuin Night Elf -kansan, mutta jälkimmäisillä on paremmat hyökkäystaidot. (Tong ym. 2012) Pelin tekoäly on kriittinen osa pelattavuutta. Tämän lisäksi kehittäjien näkökulmasta tekoälyä hyödynnetään kontrolloimaan vastustajia ihmispelaajia vastaan. Tämän tehokas toteutuminen on kriittistä niin pelin viihdearvon kuin myös sen myynnillisyyden 23

kannalta. Tarvitaan joustavaa, pelaajan taitotasoon mukautuvaa ja pelin tuotannon kannalta kustannustehokasta tekoälyä. (Tong ym. 2012) Tärkeä ongelmakohta pelin tekoälyn suunnittelussa on se, että tekoälyn tulisi tuottaa vaihtelevia vaikeusasteita pelaajaa vastaan. Pelin täytyy tuntua pelaajalle aluksi haastavalle, mutta ei ylitsepääsemättömältä ja pelaajan taitojen kehittyessä tekoälyn tulisi kyetä paranemaan vastustajana samaa vauhtia. Tähän ongelmaan on peleissä yleisesti tarjolla helppo, keskitaso, vaikea tyyppisiä vaihtoehtoja vaikeusasteelle. Tällaisten tekoälykontrollereiden tuottaminen on kuitenkin haastavaa ja kallista. Tämä ongelmakohta muodostaa tarpeen tekoälykontrollerille, joka on kustannustehokas ja kykenee helpottamaan tätä prosessia. (Tong ym. 2012) 2.9 Wizard Wizard on kilpailullinen korttipeli, jota voi pelata 3-6 pelaajaa yhtäaikaisesti. Peli luokitellaan TBS-peliksi, koska pelaajat suorittavat toimintonsa vuorotellen. Korttipakka koostuu 60 kortista, joista 52 korttia kuuluu neljän perusvärin joukkoon ja joista kahdeksan (8) on erikoiskortteja. Erikoiskortit koostuvat neljästä velhosta, jotka ovat vahvimpia kortteja pelissä, ja neljästä jokerista, jotka ovat pelin heikoimpia kortteja. (Backhus ym. 2013) Yksi peli pelataan kierroksissa, joiden lukumäärä riippuu pelaajien lukumäärästä. Pelaajille jaettujen korttien lukumäärä kasvaa kierrosten edetessä, alkaen yhdestä kortista per pelaaja jatkuen aina siihen asti, että kaikki kortit on jaettu pelaajille. Viimeistä kierrosta lukuun ottamatta jokaisella kierroksella määritetään valttiväri jakamatta jääneistä korteista kääntämällä pakan päällimmäinen kortti auki. Jokaisen vuoron alussa, kun pelaaja on saanut omat korttinsa, tulee hänen ennustaa, kuinka monta temppua hän aikoo tehdä vuorossa. Jokainen pelaaja pelaa yhden kortin kädestään ja vahvimman kortin omistaja voittaa kaikki pelatut kortit. Pelattuja kortteja kutsutaan tempuiksi. Vain pelaajat, jotka täyttävät ennustuksensa voittamalla oikean määrän temppuja saavat positiivisen palkinnon, joka koostuu 20 peruspisteestä ja 10 pisteestä jokaista ennustettua temppua kohden. Esimerkiksi 0 ennustetun tempun tapauksessa pelaaja saa 24

20 pistettä, 1 ennustetun tempun tapauksessa 30 ja niin edelleen. Kaikki muut pelaajat, jotka eivät saaneet ennustettua määrää temppuja, saavat negatiivisen palkinnon, joka lasketaan ennusteen ja voitettujen temppujen lukumäärien erotuksesta. Pelin lopussa kaikki pelikierrosten aikana hankitut pisteet lasketaan yhteen ja pelaaja, jolla on eniten pisteitä voittaa. Täten pelin kulku voidaan jakaa kahteen vaiheeseen, ennustukseen ja pelaamiseen. Pelivaihe on sidoksissa ennustusvaiheeseen, koska pelivaiheessa tavoitteena on ennustuksen täyttäminen voittamalla oikea määrä temppuja positiivisen palkinnon saamiseksi. Tästä syystä pelin voittamiseksi tarvitaan sopiva strategia. (Backhus ym. 2013) Korttipelit mielletään monimutkaisemmiksi kuin esimerkiksi lautapelit Go tai shakki, koska ne ovat osittaisen informaation pelejä, eli pelaajalla ei ole kaikkea pelin informaatiota nähtävillään. Lisäksi monimutkaisuutta luo se, että niitä pelaa usea pelaaja kerrallaan. Pelin osittaisen informaation luonteen takia tekoälyn täytyy käsitellä tuntemattomia pelitiloja ja useiden pelaajien takia on mahdotonta käyttää hakualgoritmeja, joita käytetään useissa lautapeleissä. Tästä syystä korttipelit ovat ideaalisia testikenttiä mallintamaan oikean maailman tilanteita. (Backhus ym., 2013) Yksi tekoälytutkimuksen päämääristä on itseoppivien algoritmien luonti, jotka mallintavat tapaa, jolla ihmiset oppivat ja jotka voidaan yleistää useisiin muihin sovellutuksiin. Strategiapeleissä, kuten Wizardissa ja monissa muissa korttipeleissä, on tärkeää kehittää strategia, joka mukautuu varsinaiseen pelitilanteeseen - vahvistusoppiminen on sopiva ratkaisu tuottamaan tietokoneelle kyky omatoimiseen strategian oppimiseen ja pelitilan arviointiin. (Backhus ym., 2013) 25

3 Tekoälyratkaisut strategiapeleissä Strategiapelien tekoälyjä voidaan muokata ja tehostaa hyödyntämällä erilaisia tekoälytyökaluja. Työkaluja hyödyntämällä voidaan toteuttaa myös kokonaan uusia tekoälymenetelmiä tai integroida niitä jo olemassa oleviin tekoälyihin. Luvuissa 3.1 3.9 on esitetty käytetyt tekoälytyökalut strategiapeleittäin 3.1 Balanced Annihilation MTAS (Micromanagement Task Allocation System), joka on tarkoitettu RTS-pelien mikromanageroinnin hallitsemiseen, muuntaa pelimaailman ja sen sisältämät päämäärät tehtävien joukoksi. Merkittävin piirre tässä menetelmässä on se, että jokainen yksittäinen tehtävä hallitsee siihen kuuluvia tekoäly-yksiköitä. Tämä tarkoittaa sitä, että hajautetun menetelmän sijaan, jossa jokainen tekoäly-yksikkö päättelisi itse, kuinka sille asetettu tehtävä toteutetaan tehtävä hallinnoi tekoäly-yksiköiden toimintaa keskitetysti. Tämä saa aikaan yhteistoiminnallista käytöstä tekoäly-yksiköiden välille, minimoi tuhoutuneiden yksiköiden vaikutuksia ja tehtävä säilyy, vaikka sille ei olisi asetettuna enää yhtään tekoäly-yksikköä. Tehtävien käyttö tekoälyn pohjana tekee myös implementaatiosta yksinkertaista ja joustavaa. (Rogers & Skabar, 2014) Toteutuksessa käytettiin Spring-pelimoottoria. Spring tukee useita eri RTS-pelejä, jotka kaikki jakavat saman tekoälykäyttöliittymän. Tämä mahdollistaa sen, että kehittäjät voivat luoda tekoälypelaajia usealla eri ohjelmointikielellä (esim. Java, C++, Python, Lua). MTAS integroitiin peliin valmiiksi luotuun E323AI:n hierarkkiseen tekoälyrakenteeseen tarkoituksena korvata tekoälyn alkuperäinen mikromanagerointimoduuli. Alkuperäinen tekoäly oli kirjoitettu avoimen lähdekoodin Spring-pelimoottorille, jota Balanced Annihilation käyttää. Vaikka E323AI-tekoälyn alkuperäinen mikromanagerointimoduuli oli ylivertainen muihin Balanced Annihilation-pelin tekoälyihin verrattuna, se perustui kuitenkin vain monimutkaiseen semi-hierarkkiseen if-thenelse komentojen verkostoon, jotka kehittäjät ovat yksittäin ohjelmoineet. Yhtä poikkeusta lukuun ottamatta integraatio toteutettiin muokkaamatta strategiatason liittymää 26

ryhmätason kanssa. Alkuperäisessä E323AI:n moduulissa yksikköjoukot saivat ohjeet ja jakoivat nämä kaikille ryhmän jäsenille. MTAS-menetelmässä nämä viestit otetaan käsittelyyn ja ryhmämoduuli ei enää anna suoria ohjeita yksiköille. Sen sijaan ohjeiden piirteiden perusteella muodostetaan tehtäviä, jotka asetetaan pääasiallisiksi tehtäviksi ryhmille. Ryhmien tila perustuu tämän tehtävän laatuun. Esimerkiksi, jos ryhmä saa ohjeet hyökätä yksikön X kimppuun, luo MTAS tehtävän yksikön X kimppuun hyökkäämiseksi ja tästä tehdään ryhmien päätehtävä, jolloin ne vaihtavat tilansa hyökkäystilaan. (Rogers & Skabar, 2014) MTAS-menetelmä on joustava, ymmärrettävä ja yleisesti hyödynnettävä malli, joka tarjoaa älykkään tehtävien jakamisen monikirjoisen joukon sisällä saavuttaakseen päämäärät, jotka ryhmälle on annettu strategiatasolta. Pääasiallinen etu, jonka MTAS tuo RTS-pelien tekoälyihin nykyisten tekniikoiden yli, on systeemi, joka voi mikromanageroida yksikköryhmiä, jotka ovat tarpeeksi joustavia voidakseen sisältää useita erilaisia joukkotyyppejä, saavuttaa sille asetettuja strategisia päämääriä, palauttaa arvokasta tietoa päämäärien toteutukseen liittyen ja käyttäytyy hyvin ilman eksplisiittisiä ohjeita. (Rogers & Skabar, 2014) Arvioidakseen MTAS-menetelmän suoriutumista järjestettiin sarja vastakkain taisteluita pelin alkuperäisen E323AI-tekoälyn ja MTAS-menetelmää hyödyntävän E323AI/MTAS-tekoälyn välillä. Taistelut käytiin viidessä eri kartassa, 800 taistelua per kartta ja yhteensä 4000 taistelua. E323AI/MTAS saavutti 4000 taistelun aikana 2469 voittoa. 61,7% voittoprosentin merkittävyys arvoitiin Z-testillä. Testin tuloksena arvoilla p = 0,602 ja Z = 1,96 saatiin 0,025 luotettavuustaso. Tämän testin perusteella voidaan 97,5% varmuudella sanoa, että E323AI/MTAS voittaa pelin alkuperäisen tekoälyn yli 60% ajasta. On hyvä huomioida, että kolmen ensimmäisen ja kahden viimeisen kartan välillä oli huomattava ero voittoprosenteissa. Tämä johtuu mitä todennäköisimmin siitä, että implementaatiossa käytettävä yksinkertainen tilallinen päättely ottaa huomioon matkan, mutta ei maaston jyrkkyyttä. Kolmessa ensimmäisessä kartassa on monia jyrkkiä rinteitä, jotka ovat kuljettavia, mutta hidastavat yksiköiden nopeutta huomattavasti. Viimeisessä kahdessa kartassa on paljon enemmän selkeitä mäkiä ja tasankoja, joilla ei ole mitään vaikutusta yksiköiden nopeuteen tai sulkevat reitin 27

kokonaan. Tämän huomion takia voidaan päätellä, että vaikka voidaan löytää joukko painotuksia, jotka parantavat suoriutumista kaikissa kartoissa niin yhdessä kartassa toimiva asetus ei saata toimia toisessa yhtä hyvin. (Rogers & Skabar, 2014) Vertailtaessa E323AI/MTAS- ja E323AI-tekoälyjen eroja voittotyyppien ja voiton syiden osalta voidaan huomata, että E323AI/MTAS-tekoälyllä oli enemmän puhtaasti sotajoukkoihin perustuvia voittoja, kun E323AI-tekoälyllä voitot perustuivat enimmäkseen tuotantopohjaisiin voittoihin. Tärkeä huomio tässä on se, että koska syy voittoon voi olla kumpi tahansa, saavuttamalla sotajoukkovoiton tarkoittaa, että häviäjällä oli itseasiassa parempi tuotanto ja toisinpäin. Tästä voidaan päätellä, että nykyiset tehtävät ja painotukset MTAS-menetelmässä osoittavat toimivansa parhaiten taisteluihin liittyvissä mikromanagerointitehtävissä. Riippumatta voittojen tyypeistä tai syistä MTAS osoitti paremmuutensa suoriutumisessaan, koska se tarjoaa ryhmille kyvyn suoriutua monesta asiasta yhtäaikaisesti. (Rogers & Skabar, 2014) Koska MTAS-menetelmä kyettiin implementoimaan suoraan Balanced Annihilationpelin E323AI-tekoälyyn muuttamatta strategian ja ryhmätason yhteyttä todistaa se, että se voidaan integroida tekoälyyn, joka noudattaa hierarkkista rakennetta. Siispä MTAS-menetelmää pitäisi pystyä käyttämään minkä tahansa strategiatason päättelykomponentin yhteydessä parantamaan RTS-pelin tekoälyn yleistä tehokkuutta riippumatta strategiatason sisäisistä implementaatioista. Nämä tulokset esittävät, että RTSpelien tekoälyn mikromanagerointia kehittämällä voidaan saavuttaa parannuksia ja että MTAS on tähän tarkoitukseen soveltuva malli. (Rogers & Skabar, 2014) 3.2 Boundary Suoraa simulaatiota hyödyntäessään tekoäly simuloi läpi kaikki kuusi strategiavaihtoehtoa ja päättelee mihin vastustaja liikkuisi, jos se käyttäisi jotakin näistä kuudesta strategiavaihtoehdosta. Tämän jälkeen se vertaa tuloksia siihen, mihin vastustaja todellisuudessa liikkui edellisellä vuorolla hyödyntäen pienimmän etäisyyden funktiota (minimum distance function). Lopuksi tekoäly valitsee vastustajan strategiamalliksi suurimman todennäköisyyden saaneen strategiavaihtoehdon. (Brown & Guinn, 2014) 28