C++:n ja Blueprintin yhteiskäyttö Unreal-pelimoottorissa
Salminen, Miro (2019)
Salminen, Miro
2019
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-2019112221969
https://urn.fi/URN:NBN:fi:amk-2019112221969
Tiivistelmä
Opinnäytetyön tavoitteena oli selkeyttää, miten C++-koodi ja Blueprintit toimivat yhdessä Unreal-pelimoottorissa ja miten valinta erilaisissa tilanteissa näiden välillä tehdään. Yhteiskäytön avulla voidaan saavuttaa sujuva rinnakkain tekeminen, jotta jokainen tiimin jäsen voisi keskittyä omaan osaamisalueeseensa.
Unrealin koodikielien yhteiskäytöstä on vain vähän selkeästi koottua tietoa. Opinnäytetyön tarkoituksena oli selvittää, miten saadaan koko tiimin työpanos pelin logiikoiden tekoon vaikkei tiimissä olisikaan montaa koodaustaitoista. Jos tiimi olisikin täynnä koodaustaitoisia, onko silti järkevää tehdä kaikki pelkkään C++-koodiin?
Blueprintien suoritusteho on heikompi C++-koodiin verrattuna, mutta suorituskyky ei ole kaikki kaikessa. Blueprintien muokattavuuden helppous on monikertaisesti parempi C++-koodiin verrattuna. Tämä mahdollistaa kaikkien tiimin jäsenten osallistumisen projektin tekoon. Kummalla koodikielellä projekti tehdään, ei ole merkitystä, kunhan se soveltuu tekijöiden osaamiseen.
Opinnäytetyössä tuotiin esille kaksi vaihtoehtoista työtapaa yhdistää C++-koodi ja Blueprintit. Esimerkkityön avulla havainnollistettiin, miten voidaan yhdistää C++-koodin suorituskyky ja Blueprintien muokattavuus. Ensimmäisessä versiossa painotettiin enemmän C++:aa ja toisessa Blueprintejä. Molemmissa esimerkkiversioissa käytettiin hyväksi C++:n perinnöllisyyttä. Lopuksi näitä työtapoja pohdittiin tehokkuuden, suoritus-kyvyn ja työryhmän näkökulmasta.
Prosessin aikana todettiin C++-painotteisen version olevan ihannetilanne Unreal-pelimoottorin käyttämisestä. Ohjelmoijat saavat keskittyä luomaan koodia, kun taas artisti tai suunnittelija voivat keskittyä visuaaliseen tekemiseen. C++-painotteinen versio yhdistää erinomaisesti C++:n suorituskyvyn ja Blueprintien muokattavuuden. C++:n ja Blueprintien tehokas yhteiskäyttö vaatii laajan tietämyksen Unreal-pelimoottorista ja sen toiminnasta.
Tarkoituksena oli selvittää, miten käyttää C++-koodia ja Blueprinttejä yhdessä. Selkeää vastausta tähän kysymykseen ei ole vaan kysymykseen pitää aina vastata tiimin sisällä, sillä jokainen projekti ja tiimi on erilainen. Työn tuloksena voidaan todeta, että projektia ei kannata tehdä pelkästään joko C++-koodilla tai Blueprinteillä. Jos projektia ei saada valmiiksi osaamattomuuden vuoksi tai jos puolet tiimistä odottaa asian lisäämistä C++-koodiin, silloin työtavan valinta on ollut väärä suhteessa tiimin kokoonpanoon.
Unrealin koodikielien yhteiskäytöstä on vain vähän selkeästi koottua tietoa. Opinnäytetyön tarkoituksena oli selvittää, miten saadaan koko tiimin työpanos pelin logiikoiden tekoon vaikkei tiimissä olisikaan montaa koodaustaitoista. Jos tiimi olisikin täynnä koodaustaitoisia, onko silti järkevää tehdä kaikki pelkkään C++-koodiin?
Blueprintien suoritusteho on heikompi C++-koodiin verrattuna, mutta suorituskyky ei ole kaikki kaikessa. Blueprintien muokattavuuden helppous on monikertaisesti parempi C++-koodiin verrattuna. Tämä mahdollistaa kaikkien tiimin jäsenten osallistumisen projektin tekoon. Kummalla koodikielellä projekti tehdään, ei ole merkitystä, kunhan se soveltuu tekijöiden osaamiseen.
Opinnäytetyössä tuotiin esille kaksi vaihtoehtoista työtapaa yhdistää C++-koodi ja Blueprintit. Esimerkkityön avulla havainnollistettiin, miten voidaan yhdistää C++-koodin suorituskyky ja Blueprintien muokattavuus. Ensimmäisessä versiossa painotettiin enemmän C++:aa ja toisessa Blueprintejä. Molemmissa esimerkkiversioissa käytettiin hyväksi C++:n perinnöllisyyttä. Lopuksi näitä työtapoja pohdittiin tehokkuuden, suoritus-kyvyn ja työryhmän näkökulmasta.
Prosessin aikana todettiin C++-painotteisen version olevan ihannetilanne Unreal-pelimoottorin käyttämisestä. Ohjelmoijat saavat keskittyä luomaan koodia, kun taas artisti tai suunnittelija voivat keskittyä visuaaliseen tekemiseen. C++-painotteinen versio yhdistää erinomaisesti C++:n suorituskyvyn ja Blueprintien muokattavuuden. C++:n ja Blueprintien tehokas yhteiskäyttö vaatii laajan tietämyksen Unreal-pelimoottorista ja sen toiminnasta.
Tarkoituksena oli selvittää, miten käyttää C++-koodia ja Blueprinttejä yhdessä. Selkeää vastausta tähän kysymykseen ei ole vaan kysymykseen pitää aina vastata tiimin sisällä, sillä jokainen projekti ja tiimi on erilainen. Työn tuloksena voidaan todeta, että projektia ei kannata tehdä pelkästään joko C++-koodilla tai Blueprinteillä. Jos projektia ei saada valmiiksi osaamattomuuden vuoksi tai jos puolet tiimistä odottaa asian lisäämistä C++-koodiin, silloin työtavan valinta on ollut väärä suhteessa tiimin kokoonpanoon.