AI for warplanes in a 2D side-scroller
Rantanen, Sallamari (2017)
Rantanen, Sallamari
Turun ammattikorkeakoulu
2017
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2017091815174
https://urn.fi/URN:NBN:fi:amk-2017091815174
Tiivistelmä
Työn tarkoituksena oli kehittää tekoäly peliprojektin lentokoneille. Päätavoitteena oli löytää sopivimmat algoritmit, jotka mahdollistaisivat tekoälyltä odotetut reaktiot. Lentokoneen tuli osata nousta ilmaan, etsiä ja seurata vihollista, ampua, pommittaa ja laskeutua. Lisäksi algoritmien piti olla mahdollisimman tehokkaita noudattaen samalla flow-teorian perusteita sekä täyttäen pelaajan odotukset älykkäästä käytöksestä. Työ on osa peliyritys MansikkaMarmeladi.io:n kehitteillä olevaa peliprojektia.
Työ tehtiin GameMaker 1.4 -pelimoottorilla ja siihen sisäänrakennetulla ohjelmointikielellä (GML). Teoriaosuus käsitteli flow-teoriaa, polunetsintää, äärellisiä tilakoneita sekä Big O -notaatiota. Teoriaa hyödynnettiin niin suunnittelu-, ohjelmointi- kuin arvointivaiheessakin.
Työn lopputulosta arvioitiin sekä vaikeustason että koodin skaalautuvuuden kannalta. Pelitestin tulokset osoittivat, että tekoäly loi sopivasti haastetta yksinpelikampanjan ensimmäiselle tasolle. Koska koko kampanja ei ole vielä valmis, tarvitaan lisää pelitestejä sen valmistuttua. Tällöin varmistetaan vaikeustason kasvu sopivassa tahdissa. Koodin skaalautuvuus osoittautui erittäin hyväksi, sillä funktioiden huonoin skaalautuvuusarvo oli O(n). Koska funktioiden parametrit eivät kasva suuriksi, skaalautuvuuden ei pitäisi aiheuttaa ongelmia tulevaisuudessa.
Työn lopputuloksena saatiin tekoäly, joka täytti alkuperäiset vaatimukset. Asiakas hyödyntää työn tulosta peliprojektin jatkokehityksessä.
Työ tehtiin GameMaker 1.4 -pelimoottorilla ja siihen sisäänrakennetulla ohjelmointikielellä (GML). Teoriaosuus käsitteli flow-teoriaa, polunetsintää, äärellisiä tilakoneita sekä Big O -notaatiota. Teoriaa hyödynnettiin niin suunnittelu-, ohjelmointi- kuin arvointivaiheessakin.
Työn lopputulosta arvioitiin sekä vaikeustason että koodin skaalautuvuuden kannalta. Pelitestin tulokset osoittivat, että tekoäly loi sopivasti haastetta yksinpelikampanjan ensimmäiselle tasolle. Koska koko kampanja ei ole vielä valmis, tarvitaan lisää pelitestejä sen valmistuttua. Tällöin varmistetaan vaikeustason kasvu sopivassa tahdissa. Koodin skaalautuvuus osoittautui erittäin hyväksi, sillä funktioiden huonoin skaalautuvuusarvo oli O(n). Koska funktioiden parametrit eivät kasva suuriksi, skaalautuvuuden ei pitäisi aiheuttaa ongelmia tulevaisuudessa.
Työn lopputuloksena saatiin tekoäly, joka täytti alkuperäiset vaatimukset. Asiakas hyödyntää työn tulosta peliprojektin jatkokehityksessä.