Contextual dependency injection container in third-party game engine
Jokinen, Roni (2018)
Avaa tiedosto
Lataukset:
Jokinen, Roni
Metropolia Ammattikorkeakoulu
2018

Creative Commons Attribution 1.0 Suomi
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201805107574
https://urn.fi/URN:NBN:fi:amk-201805107574
Tiivistelmä
Insinöörityön tarkoitus oli perehtyä kontekstipohjaisen riippuvuusinjektion perusperiaatteisiin ja toteuttaa riippuvuusinjektiosäiliö (Dependency Injection Tool), joka toimii Unity-pelimoottorissa. Kontekstipohjaisen riippuvuusinjektion lisäksi tämän säiliön tarkoitus oli toteuttaa erilaisia kehitystyökaluja ja malli–näkymä–ohjain-arkkitehtuurityyppi, joka auttaa kontestipohjaisen riippuvuusinjektion hyödyntämisessä.
Kehityksen aikana esiintyi suunnitteluongelmia liittyen tyyppivarmuuteen, alustusjärjestykseen ja uusien instanssien luomiseen, ja ne onnistuttiin ratkaisemaan käyttämällä erilaisia valmiita luokkakirjastoja.
Työssä huomattiin että hierarkkinen kontekstipohjainen riippuvuusinjektio mahdollistaa komponenttikokoelmien käytöksen muuttamisen kontekstista riippuen. Malli–näkymä–ohjain-arkkitehtuurityyli loi tiukasti määritellyt laajennettavat rajapinnat, jotka vähentävät kompleksisten olioiden suunnitteluun kuluvaa aikaa. Malli–näkymä–ohjain-arkkitehtuurityylin eri osien väliset suhteet olivat selkeitä ja joustavia, mikä mahdollisti ohjelman suunnittelun aloittamisen komponenttien tietomallin määrittelystä. Ohjain muuttaa mallin tietoja käyttäen tehtäviä, jotka perustuvat komento-suunnittelumalliin, ja näkymä muuttuu mallissa tapahtuvien muutosten mukaisesti.
Insinöörityön yhteydessä ohjelmoitu kontekstipohjainen riippuvuusinjektiosäiliö auttaa ohjelman modularisoimisessa, testattavuudessa ja toteutuksien nopeassa muuttamisessa. Säiliötä voidaan pidemmälle kehitettynä hyödyntää missä tahansa Unity-pelimoottorilla tehdyssä pelissä.
Kehityksen aikana esiintyi suunnitteluongelmia liittyen tyyppivarmuuteen, alustusjärjestykseen ja uusien instanssien luomiseen, ja ne onnistuttiin ratkaisemaan käyttämällä erilaisia valmiita luokkakirjastoja.
Työssä huomattiin että hierarkkinen kontekstipohjainen riippuvuusinjektio mahdollistaa komponenttikokoelmien käytöksen muuttamisen kontekstista riippuen. Malli–näkymä–ohjain-arkkitehtuurityyli loi tiukasti määritellyt laajennettavat rajapinnat, jotka vähentävät kompleksisten olioiden suunnitteluun kuluvaa aikaa. Malli–näkymä–ohjain-arkkitehtuurityylin eri osien väliset suhteet olivat selkeitä ja joustavia, mikä mahdollisti ohjelman suunnittelun aloittamisen komponenttien tietomallin määrittelystä. Ohjain muuttaa mallin tietoja käyttäen tehtäviä, jotka perustuvat komento-suunnittelumalliin, ja näkymä muuttuu mallissa tapahtuvien muutosten mukaisesti.
Insinöörityön yhteydessä ohjelmoitu kontekstipohjainen riippuvuusinjektiosäiliö auttaa ohjelman modularisoimisessa, testattavuudessa ja toteutuksien nopeassa muuttamisessa. Säiliötä voidaan pidemmälle kehitettynä hyödyntää missä tahansa Unity-pelimoottorilla tehdyssä pelissä.