Object-oriented programming with Unity : Inheritance versus composition
Holopainen, Timo (2016)
Holopainen, Timo
Jyväskylän ammattikorkeakoulu
2016
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201605096698
https://urn.fi/URN:NBN:fi:amk-201605096698
Tiivistelmä
Opinnäytetyön päämäärä oli tutkia erilaisia oliokeskeisiä menetelmiä peliohjelmoinnissa Unity pelimoottorilla käyttäen apuna olioiden perinnöllisyyttä ja entiteetti-komponentti-systeemiä, joka perustuu olioiden ominaisuuksista ja toiminnallisuudesta rakennettuihin komponentteihin.
Ratkaisut toteutettiin ja testattiin Unityllä ja C# ohjelmointikilellä rakennetun Quantum Knight peliprototyypin kehittämisen yhteydessä. Ratkaisuissa keskityttiin prototyypin pelihahmojen ja –mekaniikkojen suunnitteluun ja toteuttamiseen, erityisesti prototyypin vuoropohjaisen taistelusysteemin toimintaan. Opinnäytetyö käsittelee myös muiden pelimekaniikkojen, kuten dialogien ja tapahtumien, toteutuksen.
Peliprototyyppiin toteutettiin kaksi erilaista ratkaisua pelin hahmoja varten, joista ensimmäinen käyttää entiteetti-komponentti-systeemiä erottamalla pelaajahahmon muista pelin hahmoista yksinkertaisesti käyttämällä erilaisia komponentteja niiden luomisessa. Toista ratkaisua käytetään pelin taistelusysteemissä, jossa samanlaisia hahmoentiteettejä ohjaa erillinen hallintaentiteetti. Taistelussa käytettäviä hahmojen kykyjä varten käytettiin kolmantena tapana luokkien perinnöllisyyttä komponenttien kanssa perimällä uusia komponentteja omatekoisista komponenttiskripteistä.
Ratkaisuja tarkasteltiin niiden käytettävyyden ja monipuolisuuden osalta. Opinnäytetyö ei siltä osin ota kantaa ratkaisujen tehokkuuteen, joka vaatisi oman tutkimuksensa.
Ratkaisut toteutettiin ja testattiin Unityllä ja C# ohjelmointikilellä rakennetun Quantum Knight peliprototyypin kehittämisen yhteydessä. Ratkaisuissa keskityttiin prototyypin pelihahmojen ja –mekaniikkojen suunnitteluun ja toteuttamiseen, erityisesti prototyypin vuoropohjaisen taistelusysteemin toimintaan. Opinnäytetyö käsittelee myös muiden pelimekaniikkojen, kuten dialogien ja tapahtumien, toteutuksen.
Peliprototyyppiin toteutettiin kaksi erilaista ratkaisua pelin hahmoja varten, joista ensimmäinen käyttää entiteetti-komponentti-systeemiä erottamalla pelaajahahmon muista pelin hahmoista yksinkertaisesti käyttämällä erilaisia komponentteja niiden luomisessa. Toista ratkaisua käytetään pelin taistelusysteemissä, jossa samanlaisia hahmoentiteettejä ohjaa erillinen hallintaentiteetti. Taistelussa käytettäviä hahmojen kykyjä varten käytettiin kolmantena tapana luokkien perinnöllisyyttä komponenttien kanssa perimällä uusia komponentteja omatekoisista komponenttiskripteistä.
Ratkaisuja tarkasteltiin niiden käytettävyyden ja monipuolisuuden osalta. Opinnäytetyö ei siltä osin ota kantaa ratkaisujen tehokkuuteen, joka vaatisi oman tutkimuksensa.