Koneoppimisen hyödyntäminen pelikehityksessä
Leinonen, Antti (2020)
Leinonen, Antti
2020
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202005087949
https://urn.fi/URN:NBN:fi:amk-202005087949
Tiivistelmä
Koneoppiminen on viimevuosina noussut yhdeksi kysytyimmistä osa-alueista tietotekniikan parissa. Opinnäytetyössäni käsittelen mahdollisuuksia pelikehityksen tiimoilta. Työn tavoite oli selvittää, onko Unityn Machine Learning Agents -paketilla järkevää rakentaa strategiapainiotteisen RPG-pelin tekoäly.
Työn teoriaosuudessa kerron pelikehityksen perusteista sekä sen parissa tarvittavia käsit-teitä ja konsepteja. Käsittelen tarkemmin AI:n osuutta peleissä, mitä järjestelmiä se vaatii vuorovaikutukseen pelimaailman kanssa sekä millaisia menetelmiä ja konsepteja sen luomisessa normaalisti käytetään.
Käytännönosuudessa selostan vaiheita, jotka koneoppimisen ympäristön asentaminen, sekä sen implementointi Unityllä luotuun peliin vaati. Testien yhteydessä pohdin, mitä hyötyjä ja haittoja koneoppimisesta on kyseistä peliä varten sekä minkä tyyppisiin peleihin koneoppiminen voisi parhaiten soveltua.
Työn tuloksena on toimiva koneoppimisympäristö, jossa python ympäristössä ajettava Machine Learning Agents voi vuorovaikuttaa aiemmin Unitylla luomamme pelin kanssa. Ympäristön avulla koulutusta voisi jatkaa pelikehityksen edetessä. Testailun perusteella kävi kuitenkin ilmi, että muutaman tapaustamme varten kriittisen rajoituksen sekä teknisen epävakauden takia paketin hyödyntäminen kyseisessä projektissa ei ole järkevää.
Koneoppiminen voi vielä mullistaa pelialan ja nykyiseltäänkin se soveltuu tiettyihin ta-pauksiin todella hyvin. On kuitenkin vielä matkaa ennen kuin kaikki peleissä tarvittavat tekoälytapaukset on järkevää kouluttaa koneoppimisella, eikä luoda perinteisin menetelmin.
Työn teoriaosuudessa kerron pelikehityksen perusteista sekä sen parissa tarvittavia käsit-teitä ja konsepteja. Käsittelen tarkemmin AI:n osuutta peleissä, mitä järjestelmiä se vaatii vuorovaikutukseen pelimaailman kanssa sekä millaisia menetelmiä ja konsepteja sen luomisessa normaalisti käytetään.
Käytännönosuudessa selostan vaiheita, jotka koneoppimisen ympäristön asentaminen, sekä sen implementointi Unityllä luotuun peliin vaati. Testien yhteydessä pohdin, mitä hyötyjä ja haittoja koneoppimisesta on kyseistä peliä varten sekä minkä tyyppisiin peleihin koneoppiminen voisi parhaiten soveltua.
Työn tuloksena on toimiva koneoppimisympäristö, jossa python ympäristössä ajettava Machine Learning Agents voi vuorovaikuttaa aiemmin Unitylla luomamme pelin kanssa. Ympäristön avulla koulutusta voisi jatkaa pelikehityksen edetessä. Testailun perusteella kävi kuitenkin ilmi, että muutaman tapaustamme varten kriittisen rajoituksen sekä teknisen epävakauden takia paketin hyödyntäminen kyseisessä projektissa ei ole järkevää.
Koneoppiminen voi vielä mullistaa pelialan ja nykyiseltäänkin se soveltuu tiettyihin ta-pauksiin todella hyvin. On kuitenkin vielä matkaa ennen kuin kaikki peleissä tarvittavat tekoälytapaukset on järkevää kouluttaa koneoppimisella, eikä luoda perinteisin menetelmin.