Kaksidimensionaalisten luolastojen generointi proseduraalisesti C++ kielellä
Karhunen, Juho (2021)
Karhunen, Juho
2021
Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication 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ä
2021-06-13
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202106216013
https://urn.fi/URN:NBN:fi:tuni-202106216013
Tiivistelmä
Proseduraalinen generointi on tapa luoda tietoa algoritmin avulla. Proseduraalisella generoinnilla on monia käyttötarkoituksia. Yleisimmin sitä käytetään sisällön, esimerkiksi karttojen, tekstuurien tai äänien tuottamiseen tietokonepeleissä. Proseduraalisella generoinnilla on myös mahdollista säästää muistitilaa antamalla käyttäjälle vain lähtöarvot ja algoritmi. Tällöin generoinnin tulosta ei tarvitse tallentaa muistiin.
Tässä työssä tutkitaan parametrien ja reunaehtojen vaikutusta proseduraalisessa generoinnissa ja pyritään muodostamaan kattava kokonaiskuva proseduraalisen generoinnin toimintaperiaatteista. Proseduraalisessa generoinnissa annetaan algoritmille jokin alkuarvo eli siemenluku ja saatu lopputulos on aina sama, kun siemenluku on sama. Proseduraalisen generoinnin menetelmiä on useita. Tämä työ keskittyy pääasiassa kaksi-dimensionaaliseen proseduraaliseen generointiin.
Työssä on kaksi osaa. Ensimmäisessä osassa tehtiin proseduraaliseen generointiin kirjallisuuskatsaus, jossa tutkittiin yleisimpiä proseduraalisen generoinnin käyttötarkoituksia ja menetelmiä. Lisäksi selvitettiin proseduraalisen generoinnin hyviä ja huonoja puolia sekä sitä, mikä tekee pelikartasta hyvän. Proseduraalisella generoinnilla on mahdollista säästää pelin valmistukseen kuluvaa aikaa ja lisätä pelin uudelleenpelattavuutta, sillä kartta generoituu erilaiseksi, kun siemenluku on eri. Toisaalta liian yksinkertaisella algoritmilla lopputulos voi tuntua pelaajasta itseään toistavalta. Lisäksi kaikkia mahdollisia generoinnin lopputuloksia on mahdotonta testata niiden lähes äärettömän määrän vuoksi.
Työn toisessa osassa tutkittiin proseduraalista generointia kirjoitetun ohjelman avulla. Ohjelmalla voidaan proseduraalisesti generoida kaksidimensionaalinen luolasto. Ohjelma tehtiin soluautomaattimallilla, ja sen sisällä voi muuttaa generoinnin parametrejä ja tarkastella niiden vaikutusta generoituun tulokseen. Tutkimuksesta esitellään prosessi, jossa luolasto generoituu alkuarvoista, sekä kuvia eri parametreillä tehdyistä generoinneista.
Tutkimus osoittaa, että pelimekaniikkojen suunnitteleminen ennen proseduraalisen generaattorin tekemistä on tärkeää, sillä parametrit vaikuttavat generoituun karttaan vahvasti. Pelikokemus riippuu esimerkiksi siitä, onko kartta mahdollista läpäistä. Lopuksi työssä esitellään kehitysideoita kirjoitettuun ohjelmaan.
Tässä työssä tutkitaan parametrien ja reunaehtojen vaikutusta proseduraalisessa generoinnissa ja pyritään muodostamaan kattava kokonaiskuva proseduraalisen generoinnin toimintaperiaatteista. Proseduraalisessa generoinnissa annetaan algoritmille jokin alkuarvo eli siemenluku ja saatu lopputulos on aina sama, kun siemenluku on sama. Proseduraalisen generoinnin menetelmiä on useita. Tämä työ keskittyy pääasiassa kaksi-dimensionaaliseen proseduraaliseen generointiin.
Työssä on kaksi osaa. Ensimmäisessä osassa tehtiin proseduraaliseen generointiin kirjallisuuskatsaus, jossa tutkittiin yleisimpiä proseduraalisen generoinnin käyttötarkoituksia ja menetelmiä. Lisäksi selvitettiin proseduraalisen generoinnin hyviä ja huonoja puolia sekä sitä, mikä tekee pelikartasta hyvän. Proseduraalisella generoinnilla on mahdollista säästää pelin valmistukseen kuluvaa aikaa ja lisätä pelin uudelleenpelattavuutta, sillä kartta generoituu erilaiseksi, kun siemenluku on eri. Toisaalta liian yksinkertaisella algoritmilla lopputulos voi tuntua pelaajasta itseään toistavalta. Lisäksi kaikkia mahdollisia generoinnin lopputuloksia on mahdotonta testata niiden lähes äärettömän määrän vuoksi.
Työn toisessa osassa tutkittiin proseduraalista generointia kirjoitetun ohjelman avulla. Ohjelmalla voidaan proseduraalisesti generoida kaksidimensionaalinen luolasto. Ohjelma tehtiin soluautomaattimallilla, ja sen sisällä voi muuttaa generoinnin parametrejä ja tarkastella niiden vaikutusta generoituun tulokseen. Tutkimuksesta esitellään prosessi, jossa luolasto generoituu alkuarvoista, sekä kuvia eri parametreillä tehdyistä generoinneista.
Tutkimus osoittaa, että pelimekaniikkojen suunnitteleminen ennen proseduraalisen generaattorin tekemistä on tärkeää, sillä parametrit vaikuttavat generoituun karttaan vahvasti. Pelikokemus riippuu esimerkiksi siitä, onko kartta mahdollista läpäistä. Lopuksi työssä esitellään kehitysideoita kirjoitettuun ohjelmaan.
Kokoelmat
- Kandidaatintutkielmat [8453]