| dc.contributor.author | Nampajärvi, Eelis | |
| dc.date.accessioned | 2022-05-30T06:54:09Z | |
| dc.date.available | 2022-05-30T06:54:09Z | |
| dc.date.issued | 2022 | - |
| dc.identifier.uri | http://www.theseus.fi/handle/10024/750975 | |
| dc.description.abstract | Insinöörityön tarkoituksena oli selvittää Unity-pelimoottorin rinnakkaislaskentaa varten tarkoitettujen työkalujen soveltuvuus pelien monisäikeistämiseen ja muiden prosessoriominaisuuksien, kuten vektoriyksiköiden, hyödyntämiseen pelikehityksessä. Työn oli tarkoitus toimia käytännön esimerkkinä työkalujen käytöstä Unityllä kehitettävissä sovelluksissa ja niiden tarjoamista suorituskykyeduista.
Insinöörityössä kehitettiin testisovellus, joka optimoitiin käyttämällä Unityn tarjoamia rinnakkaislaskennan työkaluja. Testisovellus monisäikeistettiin käyttämällä Unityn Job Systemiä, jolloin sovellus pystyi hyödyntämään kaikkia käytössä olevia prosessoriytimiä. Lisäksi hyödynnettiin Unityn Burst-kääntäjää, joka onnistui vektorisoimaan osan testisovelluksesta ja tarjosi myös muita optimointeja.
Työssä selvisi, että työkalujen käyttö oli testisovelluksen tapauksessa helppoa ja tehokasta, ilman että aikaisempaa kokemusta pelien rinnakkaistamisesta juurikaan oli. Testisovelluksella tehtiin suorituskykymittauksia, joista selvisivät työkalujen tarjoamat, usein hyvinkin suuret suorituskykyedut. Lisäksi huomattiin Unityn kahden vakiona tarjoaman käännöstavan, Monon ja IL2CPP:n, joissain tapauksissa suuretkin suorituskykyerot.
Työn tulokset osoittivat, että käytetyt työkalut tarjoavat pelikehittäjille tehokkaan tavan optimoida ainakin joitakin osia peleistä. Työn tulosten yleiskelpoisuutta rajoitti kehitetyn testisovelluksen suppeus, ja työkalujen laajempi testaus käytännön peleissä todettiin tarpeelliseksi. | fi |
| dc.description.abstract | The purpose of the Bachelor’s thesis was to investigate the suitability of parallel computing tools offered by Unity game engine, for multithreading and vectorization of game applications. The thesis was meant to act as a practical example on how to use these tools and what performance benefits they can bring to games.
A test application was developed and then optimized with parallel computing tools offered by Unity. The test application was multithreaded using Unity Job System which enabled the application to utilize all available cores. Additionally, Unity Burst compiler was used, which enabled vectorization and other optimizations.
It was found out that the usage of these tools was easy and efficient, even without much prior experience in writing multithreaded game code. Benchmarks were performed on the developed test application, and they showed often very large performance gains offered by the used tools. In addition, it was noticed that the performance difference between Mono and IL2CPP, the two scripting backends offered by default by Unity, can be significant. The thesis’s results showed that the tools used, offer an efficient way for game developers to optimize at least some parts of developed games. General applicability of the thesis’s results were thought to be limited, caused by the test applications narrow focus and further testing performed on actual games was recommended. | en |
| dc.language.iso | fin | - |
| dc.rights | fi=All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.|sv=All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.|en=All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.| | - |
| dc.title | Rinnakkaislaskennan työkalut pelimoottorissa | - |
| dc.type.ontasot | fi=AMK-opinnäytetyö|sv=YH-examensarbete|en=Bachelor's thesis| | - |
| dc.identifier.urn | URN:NBN:fi:amk-2022052712596 | - |
| dc.subject.specialization | Pelisovellukset | - |
| dc.subject.degreeprogram | fi=Tieto- ja viestintätekniikka|sv=Informations- och kommunikationsteknik|en=Information and Communications Technology| | - |
| dc.subject.yso | ohjelmointi | - |
| dc.subject.yso | pelit | - |
| dc.subject.yso | peliohjelmointi | - |
| dc.subject.yso | rinnakkaiskäsittely | - |
| dc.subject.yso | tietotekniikka | - |
| dc.subject.yso | suorituskyky | - |
| dc.subject.yso | optimointi | - |
| dc.subject.discipline | Tieto- ja viestintätekniikan tutkinto-ohjelma | - |
| annif.suggestions.links | http://www.yso.fi/onto/yso/p4887|http://www.yso.fi/onto/yso/p6062|http://www.yso.fi/onto/yso/p4230|http://www.yso.fi/onto/yso/p25355|http://www.yso.fi/onto/yso/p4786|http://www.yso.fi/onto/yso/p12682|http://www.yso.fi/onto/yso/p5462|http://www.yso.fi/onto/yso/p14041|http://www.yso.fi/onto/yso/p20743|http://www.yso.fi/onto/yso/p4787 | fi |