Hyppää sisältöön
    • Suomeksi
    • På svenska
    • In English
  • Suomi
  • Svenska
  • English
  • Kirjaudu
Hakuohjeet
JavaScript is disabled for your browser. Some features of this site may not work without it.
Näytä viite 
  •   Ammattikorkeakoulut
  • Hämeen ammattikorkeakoulu
  • Opinnäytetyöt
  • Näytä viite
  •   Ammattikorkeakoulut
  • Hämeen ammattikorkeakoulu
  • Opinnäytetyöt
  • Näytä viite

Unitylla kehitetty pelin suorituskykyongelmien ratkominen ja parantaminen

Tran, Johnny (2021)

 
Avaa tiedosto
Tran_Johnny.pdf (2.774Mt)
Lataukset: 


Tran, Johnny
2021
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202104276069
Tiivistelmä
Opinnäytetyön tavoitteena oli selvitellä Unitylla kehitetyn pelin suorituskykyongelmien aiheuttajia ja löytää niille ratkaisuja, kun pelin suorituskykyongelman sattuessa ei oikein tiedetä sen todellista aiheuttajaa ja syytä. Pelin yleiset suorituskykyongelmien ilmiöt ovat dramaattinen hidastuminen ja hetkellisiä pysähtymisiä pelaamisen aikana. Parantamalla pelin suorituskykyä ei anna pelkästään pelaajille sulavan pelikokemuksen. Hyvä suorituskykyinen peli kykenee pyörimään heikoimmissa pelijärjestelmien laitteistoissakin, joka mahdollistaa pelaajayleisön kasvun pelillesi.
Tähän työhön luotiin raskaasti suoriutuvaa peliä törmätäkseen suorituskykyongelmaan. Peliä rasitettiin kaikkia mahdollisia osastoja, joita ovat fysiikat, äänet, erikoisefektit, tekoälyt ja animaatiot. Työssä tutustuttiin pelisuorituskyvyn profilointimenetelmiin helpottaakseen suorituskykyongelman aiheuttajan paikantamisen.
Suorituskykyongelmaan ratkaisuksi löydettiin kahta menetelmää, jotka ovat kohdistettu enimmäkseen pelifysiikkaan. Ensimmäinen suorituskykyongelman ratkaisumenetelmässä oli korvata suorituskykyongelmaista koodia vähäisellä kuormittavalla koodilla tai poistamalla muutamia toiminnan ominaisuuksia. Toisessa suorituskykyongelman ratkaisumenetelmässä oli käyttää DOTS(Data Oriented Technology Stack) kehitystapaa sijaan Unityn klassista Monobehaviouriä. DOTS on dataa suuntautuvaa ohjelmointia, joka keskittyy pelidatan järjestäytymisen keskusmuistiin (RAM). Huomattiin testissä DOTSin antoivan pelille merkittävän suorituskykyparannuksen verrattuna ensimmäisessä ratkaisumenetelmässä ja ei tarvittu ollenkaan uhrata toimintojen yksityiskohtia. DOTSin hyvän datan järjestelyn ansiosta aiheutettiin vähäisen määrän välimuistihuteja prosessorille (CPU), joka oli yksi suurista suorituskykyongelmien syistä. Huomattiin Monobehaviourin kehitysmenetelmällä kärsitään useita välimuistihuteja oletuksena juuri sen huonon datamuistihallinnan takia.
DOTSilla pystyttiin antamaan pelille helposti suuren suorituskykyparannuksen verrattuna klassisella Monobehaviour kehitysmenetelmällä. DOTSin dataan suuntautunut ohjelmointityylisen vuoksi vaadittiin erilaisen kehitysajattelutavan kuin Monobehaviourissa, joka voi olla hankala aluksi olio-ohjelmointityyliin tottuneille koodajille. Testissä huomattiin myös DOTSin huonoja puolia. DOTSin olevan vielä kehitysvaiheessa Unityssa, joten sillä puuttuu paljon käteviä työkaluja, joita Monobehaviourissa on tarjolla. DOTSissa puuttuvat työkalujen tekeminen voi viedä paljon aikaa ja tuottaa hankaluuksia. DOTSiin liittyvät koodivirheilmoitukset ovat huomattavasti hankalampi löytää ratkaisuja verrattuna Monobehaviourillä.
Kokoelmat
  • Opinnäytetyöt
Ammattikorkeakoulujen opinnäytetyöt ja julkaisut
Yhteydenotto | Tietoa käyttöoikeuksista | Tietosuojailmoitus | Saavutettavuusseloste
 

Selaa kokoelmaa

NimekkeetTekijätJulkaisuajatKoulutusalatAsiasanatUusimmatKokoelmat

Henkilökunnalle

Ammattikorkeakoulujen opinnäytetyöt ja julkaisut
Yhteydenotto | Tietoa käyttöoikeuksista | Tietosuojailmoitus | Saavutettavuusseloste