Koneoppiminen videopelien NPC-hahmojen kehityksessä
Paloranta, Wilma (2024)
Paloranta, Wilma
2024
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024053018383
https://urn.fi/URN:NBN:fi:amk-2024053018383
Tiivistelmä
Isinöörityön tarkoituksena oli tutkia tekoälyn ja koneoppimisen hyödyntämistä NPC-hahmojen (ei-pelattavien hahmojen) kehittämisessä. Työn tavoitteena oli tutkia, voiko pienen projektin kautta luoda älykkään ja järkevän tekoälyn, jonka toiminnot vastaavat haluttua lopputulosta. Lopputuloksena haluttiin tekoälymalli, joka pärjää erilaisia vihollisia vastaan.
Projekti tehtiin Unity-pelimoottorissa ja sen pohjalla käytettiin ML-Agents- sekä TensorBoard-kirjastoja. Tekoäly saatiin luotua ML-Agentsien avulla ja koulutusta pystytään seuramaan Tensorboardin kaavojen avulla. Ohjelmoinnissa käytettiin C#-ohjelmointikieltä.
Työn lopuksi todettiin, että ML-Agents toimii hyvin erilaisten yksinkertaisten tekoäly mallien kehittämisessä. Koulutuksessa meni hetki aikaa, mutta haluttu lopputulos saatiin kuitenkin. Koneoppimisen käyttäminen yksinkertaisen NPC:n luomiseen saattaa viedä enemmän aikaa kuin manuaalisesti halutun käytöksen ohjelmointi, mutta koneoppiminen on hyvä työkalu monimutkaisille tapauksille.
Yksi suurimmista haasteista projektin aikana oli koulutuksen kesto. Alussa liian lyhyettekoälymallin johtivat siihen, ettei malli ehtinyt tutkia erilaisia ratkaisuja parhaiden tuloksien saamiseksi. Hyperparametrit aiheuttivat jonkin verran ongelmia, mutta ne ratkaistiin pitkäjänteisen hienosäädön jälkeen.
Insinöörityössä onnistuttiin tekemään pieni ampumasimulaatio, jossa agentti osaa ampua kohti tulevia vihollisia tarkasti ja oikeassa järjestyksessä.
Projekti tehtiin Unity-pelimoottorissa ja sen pohjalla käytettiin ML-Agents- sekä TensorBoard-kirjastoja. Tekoäly saatiin luotua ML-Agentsien avulla ja koulutusta pystytään seuramaan Tensorboardin kaavojen avulla. Ohjelmoinnissa käytettiin C#-ohjelmointikieltä.
Työn lopuksi todettiin, että ML-Agents toimii hyvin erilaisten yksinkertaisten tekoäly mallien kehittämisessä. Koulutuksessa meni hetki aikaa, mutta haluttu lopputulos saatiin kuitenkin. Koneoppimisen käyttäminen yksinkertaisen NPC:n luomiseen saattaa viedä enemmän aikaa kuin manuaalisesti halutun käytöksen ohjelmointi, mutta koneoppiminen on hyvä työkalu monimutkaisille tapauksille.
Yksi suurimmista haasteista projektin aikana oli koulutuksen kesto. Alussa liian lyhyettekoälymallin johtivat siihen, ettei malli ehtinyt tutkia erilaisia ratkaisuja parhaiden tuloksien saamiseksi. Hyperparametrit aiheuttivat jonkin verran ongelmia, mutta ne ratkaistiin pitkäjänteisen hienosäädön jälkeen.
Insinöörityössä onnistuttiin tekemään pieni ampumasimulaatio, jossa agentti osaa ampua kohti tulevia vihollisia tarkasti ja oikeassa järjestyksessä.