Vertaileva tutkimus olio- ja logiikkaohjelmoinnin soveltuvuudesta tietokonepelien reitinhaun toteutukseen
MUTANEN, JOUNI (2010)
MUTANEN, JOUNI
2010
Tietojenkäsittelyoppi - Computer Science
Informaatiotieteiden tiedekunta - Faculty of Information Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2010-06-16
Julkaisun pysyvä osoite on
https://urn.fi/urn:nbn:fi:uta-1-20776
https://urn.fi/urn:nbn:fi:uta-1-20776
Tiivistelmä
Tutkielmassa vertaillaan, kuinka hyvin olio- ja logiikkaohjelmointi soveltuvat tietokonepelien reitinhaun toteutukseen. Olio- ja logiikkaohjelmointia vertaillaan ohjelmoimalla niitä edustavilla ohjelmointikielillä eri pelityyppien reitinhakujen toteutukset, joita voidaan vertailla keskenään. Tutkielmassa vertaillaan olio- ja logiikkaohjelmointia, koska niiden toimintaperiaatteet ovat hyvin erilaiset, minkä takia reitinhakutoteutuksien väliset erot voidaan todennäköisesti havaita helposti. Olio-ohjelmointia edustavana ohjelmointikielenä käytetään C++-ohjelmointikieltä. Logiikkaohjelmointia edustava ohjelmointikieli on Prolog.
Tutkielmassa tutkitaan pelityyppejä, joissa reitinhaku on keskeisessä asemassa. Roguen kaltaisten pelien ja vuoropohjaisten taktiikkapelien reitinhaut toimivat kaksiulotteisesti. Kaupunginrakennuspelien reitinhaku toimii kolmiulotteisesti. Reitinhakujen toteuttamiseen käytetään kolmea erilaista reitinhakualgoritmia. Kaikkien tutkittavien pelityyppien reitinhauista ohjelmoidaan kaksi toteutusta, jotka edustavat vertailtavia ohjelmointiparadigmoja.
Reitinhakujen oliototeutukset osoittautuivat logiikkaohjelmointiin perustuvia toteutuksia tehokkaammiksi, mutta reitinhakualgoritmien toteutukset sisälsivät logiikkaohjelmointiin perustuvissa toteutuksissa huomattavasti oliototeutuksia vähemmän koodirivejä. Vertailtavia ohjelmointiparadigmoja ei kuitenkaan voida asettaa paremmuusjärjestykseen, koska reitinhakujen Prolog-toteutukset ovat optimoimattomia, minkä vuoksi logiikkaohjelmoinnin todellista tehokkuutta ei voida arvioida.
Asiasanat:olio-ohjelmointi, logiikkaohjelmointi, reitinhaku, tietokonepelit
Tutkielmassa tutkitaan pelityyppejä, joissa reitinhaku on keskeisessä asemassa. Roguen kaltaisten pelien ja vuoropohjaisten taktiikkapelien reitinhaut toimivat kaksiulotteisesti. Kaupunginrakennuspelien reitinhaku toimii kolmiulotteisesti. Reitinhakujen toteuttamiseen käytetään kolmea erilaista reitinhakualgoritmia. Kaikkien tutkittavien pelityyppien reitinhauista ohjelmoidaan kaksi toteutusta, jotka edustavat vertailtavia ohjelmointiparadigmoja.
Reitinhakujen oliototeutukset osoittautuivat logiikkaohjelmointiin perustuvia toteutuksia tehokkaammiksi, mutta reitinhakualgoritmien toteutukset sisälsivät logiikkaohjelmointiin perustuvissa toteutuksissa huomattavasti oliototeutuksia vähemmän koodirivejä. Vertailtavia ohjelmointiparadigmoja ei kuitenkaan voida asettaa paremmuusjärjestykseen, koska reitinhakujen Prolog-toteutukset ovat optimoimattomia, minkä vuoksi logiikkaohjelmoinnin todellista tehokkuutta ei voida arvioida.
Asiasanat:olio-ohjelmointi, logiikkaohjelmointi, reitinhaku, tietokonepelit