Mobiili-ohjattavan tietokonepelin toteuttaminen Unity-pelimoottorilla Rest API:a hyödyntäen
Fager, Nico (2023)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023052313138
https://urn.fi/URN:NBN:fi:amk-2023052313138
Tiivistelmä
Tämän opinnäytetyön tarkoituksena on selvittää pelikehityksen prosessi pelissä, jossa peli suoritetaan tietokoneella älypuhelinta ohjaimena käyttäen. Peli koostuu kolmesta eri osatekijästä: Unity-pelimoottorilla tehtävästä tietokonepelistä, kännykällä ohjattavasta React kehityskehyksellä tehdystä frontend sovelluksesta, sekä backendissä suoritettavasta express kehityskehystä käyttävästä Node.js sovelluksesta. Backendissä suoritettava sovellus yhdistää muut kaksi osatekijää toisiinsa REST API:a hyväkseen käyttäen. Opinnäytetyö on suunnattu henkilölle, jolla on asiantuntemusta sovelluskehittämisestä, mutta joka ei välttämättä ole kokenut Unity ohjelmoimisessa.
Opinnäytetyön tavoite on luoda pohja varsinaisen pelin jatkokehitystä varten. Tämä tehdään luomalla teknologinen prototyyppi, jossa tarvittavat teknologiat toimivat, mutta kaikki osat eivät ole tarkoituksella loppuun hiottuja. Tarkoitus on vain saada peli teknologisesti toimimaan. Opinnäytetyö on onnistunut, kun siinä voidaan pelata matkapuhelinta simuloivaa tietokoneella käytettävää neljää selainta hyväksikäyttäen pelissä yksi kierros niin, että jokainen pelissä oleva pelaaja pääsee olemaan vuorossa kerran. Koska projekti on luotu jatkokehitystä silmällä pitäen, on sen teknologioita valittaessa pohdittu niiden skaalautuvuutta hieman normaalia prototyyppiä enemmän, sillä usein prototyypeissä menee kaikki teknologia vaihtoon, kun siinä siirrytään jatko-tuotantoon.
Opinnäytetyön teoriaosuudessa käydään läpi teoriassa pelikehityksen vaiheita ja mikä osa prototyyppi on tätä kokonaisuutta. Lisäksi käydään läpi Unity-pelimoottorin keskeisimpiä työkaluja tämän tyyppisessä projektissa. Käytännön osuudessa käydään prototyypin kehitys läpi kartoittaen ensin, miten datan tulee liikkua projektin kolmen eri osa-alueen välillä. Sen jälkeen käydään läpi pelin Unity-osan rakennus, siinä käytettävät osatekijät ja se, miten ne toimivat yhdessä. Tämän jälkeen käydään läpi projektin backend osa, joskin suppeammin kuin pelin Unityosa. Lopuksi vielä käydään läpi pelin frontend osa, jossa ei myöskään tarkkaan paneuduta teknologisiin yksityiskohtiin, vaan esitellään vaan ratkaisut pääpiirteittäin.
Opinnäytetyön lopussa pohditaan lopputulosta ja sitä, että saavutettiinko sille asetetut vaatimukset. Lopuksi pohditaan myös hieman mitä sen tekemisessä olisi voitu tehdä paremmin, miten helppo tuloksen perusteella on lähteä suorittamaan jatkokehitystä ja mitä opittavaa opinnäytetyöprojektin tekemisessä oli sen tekijälle.
Opinnäytetyön tavoite on luoda pohja varsinaisen pelin jatkokehitystä varten. Tämä tehdään luomalla teknologinen prototyyppi, jossa tarvittavat teknologiat toimivat, mutta kaikki osat eivät ole tarkoituksella loppuun hiottuja. Tarkoitus on vain saada peli teknologisesti toimimaan. Opinnäytetyö on onnistunut, kun siinä voidaan pelata matkapuhelinta simuloivaa tietokoneella käytettävää neljää selainta hyväksikäyttäen pelissä yksi kierros niin, että jokainen pelissä oleva pelaaja pääsee olemaan vuorossa kerran. Koska projekti on luotu jatkokehitystä silmällä pitäen, on sen teknologioita valittaessa pohdittu niiden skaalautuvuutta hieman normaalia prototyyppiä enemmän, sillä usein prototyypeissä menee kaikki teknologia vaihtoon, kun siinä siirrytään jatko-tuotantoon.
Opinnäytetyön teoriaosuudessa käydään läpi teoriassa pelikehityksen vaiheita ja mikä osa prototyyppi on tätä kokonaisuutta. Lisäksi käydään läpi Unity-pelimoottorin keskeisimpiä työkaluja tämän tyyppisessä projektissa. Käytännön osuudessa käydään prototyypin kehitys läpi kartoittaen ensin, miten datan tulee liikkua projektin kolmen eri osa-alueen välillä. Sen jälkeen käydään läpi pelin Unity-osan rakennus, siinä käytettävät osatekijät ja se, miten ne toimivat yhdessä. Tämän jälkeen käydään läpi projektin backend osa, joskin suppeammin kuin pelin Unityosa. Lopuksi vielä käydään läpi pelin frontend osa, jossa ei myöskään tarkkaan paneuduta teknologisiin yksityiskohtiin, vaan esitellään vaan ratkaisut pääpiirteittäin.
Opinnäytetyön lopussa pohditaan lopputulosta ja sitä, että saavutettiinko sille asetetut vaatimukset. Lopuksi pohditaan myös hieman mitä sen tekemisessä olisi voitu tehdä paremmin, miten helppo tuloksen perusteella on lähteä suorittamaan jatkokehitystä ja mitä opittavaa opinnäytetyöprojektin tekemisessä oli sen tekijälle.