PELIKENTTIEN PROSEDURAALINEN GENEROINTI UNITY-PELIMOOTTORISSA
Gunnar, Jan-Erik (2023)
Gunnar, Jan-Erik
2023
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023052313078
https://urn.fi/URN:NBN:fi:amk-2023052313078
Tiivistelmä
Opinnäytetyön tavoitteena on luoda työkalu proseduraalisten kenttien luomiseksi Unity-pelimoottorissa. Tämä toteutetaan kolmivaiheisena kokonaisuutena, joka koostuu tutkimuksesta, suunnitellusta ja toteutuksesta.
Opinnäytetyön toimiantajana toimii Kaakkois-Suomen ammattikorkeakoulun (Xamk) Gamelab. Kotkan kampuksella sijaitseva Gamelab on peliohjelmoinnin insinööriopiskelijoille suunnattu oppimisympäristö. Opinnäytetyön tarkoituksena on toteuttaa proseduraalisen kenttägeneroinnin työkalu seuraten akateemisia ja eettisiä odotuksia opinnäytetyön toteutuksen ja tulosten kannalta.
Tutkimus tehdään laadullisella tutkimuksella tarkastelemalla kolmea valittua peliä, joiden toteutuksessa on käytetty proseduraalista generointia. Nämä tutkimuspelit ovat Binding of Isaac, No Man’s Sky ja Dwarf Fortress. Tutkimuksessa yritetään myös saada selville proseduraalisen generoinnin käyttämistapoja, siitä muodostuvia ongelmia sekä mahdollisia ratkaisuja ongelmiin, joita proseduraalisen generoinnin käytössä voi olla. Laadullisen tutkimuksen perusteella tarkastellaan Unity-pelimoottoria ja C#-ohjelmointikieltä, jotta voidaan muodostaa selvä käsitys työkaluista, joita hyödynnetään opinnäytetyön toteutuksessa. Tutkimusosion jälkeen rakennetaan geneerinen suunnitelma, jota hyödynnetään Unity-pelimoottorille tarkoitetun työkalun suunnittelemiseen. Tämän toteuttamiseksi luodaan ensin työkalu suunnitelmaa hyödyntämällä ja työkalun toimivuutta testataan luomalla kaksi erilaista proseduraalista generointiprojektia.
Opinnäytetyön lopputuloksena valmistui työkalu, jota käytettiin 2D- ja 3D-pelikenttien generoimiseen. Työkalu toimii hyödyntämällä generoinnin yleisiä standardeja, kuten modulaarista suunnittelua, loogisia sekä matemaattisia sääntöjä, ja kolmivaiheista proseduraalisen generoinnin käytäntöä, joka on ”generoi, tarkista ja etene”. Kolmivaiheinen toteutusmalli toimii ratkaisuna ongelmiin, joita voi muodostua proseduraalisen generoinnin käyttämisessä. Työkalu on pohja, jota voidaan hyödyntää yleisesti sellaisiin projekteihin, jotka tarvitsevat proseduraalista generointia.
Opinnäytetyön toimiantajana toimii Kaakkois-Suomen ammattikorkeakoulun (Xamk) Gamelab. Kotkan kampuksella sijaitseva Gamelab on peliohjelmoinnin insinööriopiskelijoille suunnattu oppimisympäristö. Opinnäytetyön tarkoituksena on toteuttaa proseduraalisen kenttägeneroinnin työkalu seuraten akateemisia ja eettisiä odotuksia opinnäytetyön toteutuksen ja tulosten kannalta.
Tutkimus tehdään laadullisella tutkimuksella tarkastelemalla kolmea valittua peliä, joiden toteutuksessa on käytetty proseduraalista generointia. Nämä tutkimuspelit ovat Binding of Isaac, No Man’s Sky ja Dwarf Fortress. Tutkimuksessa yritetään myös saada selville proseduraalisen generoinnin käyttämistapoja, siitä muodostuvia ongelmia sekä mahdollisia ratkaisuja ongelmiin, joita proseduraalisen generoinnin käytössä voi olla. Laadullisen tutkimuksen perusteella tarkastellaan Unity-pelimoottoria ja C#-ohjelmointikieltä, jotta voidaan muodostaa selvä käsitys työkaluista, joita hyödynnetään opinnäytetyön toteutuksessa. Tutkimusosion jälkeen rakennetaan geneerinen suunnitelma, jota hyödynnetään Unity-pelimoottorille tarkoitetun työkalun suunnittelemiseen. Tämän toteuttamiseksi luodaan ensin työkalu suunnitelmaa hyödyntämällä ja työkalun toimivuutta testataan luomalla kaksi erilaista proseduraalista generointiprojektia.
Opinnäytetyön lopputuloksena valmistui työkalu, jota käytettiin 2D- ja 3D-pelikenttien generoimiseen. Työkalu toimii hyödyntämällä generoinnin yleisiä standardeja, kuten modulaarista suunnittelua, loogisia sekä matemaattisia sääntöjä, ja kolmivaiheista proseduraalisen generoinnin käytäntöä, joka on ”generoi, tarkista ja etene”. Kolmivaiheinen toteutusmalli toimii ratkaisuna ongelmiin, joita voi muodostua proseduraalisen generoinnin käyttämisessä. Työkalu on pohja, jota voidaan hyödyntää yleisesti sellaisiin projekteihin, jotka tarvitsevat proseduraalista generointia.