Proseduraalisten karttojen generointi OpenStreetMap-datan avulla
Hautala, Jali (2020)
Hautala, Jali
2020
Tietotekniikan DI-tutkinto-ohjelma - Degree Programme in Information Technology, MSc (Tech)
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ä
2020-04-27
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202003312989
https://urn.fi/URN:NBN:fi:tuni-202003312989
Tiivistelmä
Karttojen luominen videopeleihin on usein työlästä ja aikaa vievää. Tässä työssä tavoitteena oli tutkia proseduraalisen generoinnin ja avoimen karttatiedon hyödyntämistä karttojen tuottamisessa videopelikäyttöön. Kehitystyön pohjana käytettiin BeamNG.drive -ajoneuvosimulaattoria. Videopelien karttojen tyypilliseen rakenteeseen tutustuttiin yleisesti sekä perehdyttiin tarkemmin BeamNG.drive:n käyttämien karttojen rakenteisiin. Motivaationa työlle toimi karttojen luomiseen artisteilta kuluvan työmäärän helpottaminen sekä mahdollisesti lisääntyvä uudelleenpelattavuus.
Työ aloitettiin tutustumalla videopelien karttoihin sekä perehtymällä tarkemmin BeamNG.drive:n käyttämien karttojen rakenteisiin. Projektin kehitystä varten luotiin suunnitelma sekä toiminnallinen ja tekninen määrittely. Suunnitelman pohjalta kehitettiin ohjelmallinen toteutus BeamNG.drive -ajoneuvosimulaattoriin ja siinä hyödynnettiin OpenStreetMap-karttapalvelun tarjoamaa tietoa. Projekti tehtiin osaksi pelin pelimoottoria ja se kirjoitettiin C++ -ohjelmointikielellä. Toteutus vaati useiden algoritmien luomista maaston, rakennusten ja teiden proseduraalista generointia varten. Toteutukseen liittyi myös OpenStreetMap-tiedon käyttämän koordinaatiston projisointia pelille sopivaan avaruuteen.
Kun arvioitiin, minkälaisia karttoja toteutuksen avulla pystyttiin tuottamaan ja kuinka hyvin generoidut kartat vastasivat oikeita versioitaan, havaittiin lopputuloksen täyttävän projektin alkuvaiheessa luodut vaatimusmäärittelyt suurimmilta osin. Sopivissa olosuhteissa generaattori loi uskottavia ja pelattavia karttoja, mutta kaikkiin tilanteisiin ei toteutus sopinut. Nykyisen toteutuksen havaittiin jättävän paljon potentiaalia jatkokehitykselle.
Työ aloitettiin tutustumalla videopelien karttoihin sekä perehtymällä tarkemmin BeamNG.drive:n käyttämien karttojen rakenteisiin. Projektin kehitystä varten luotiin suunnitelma sekä toiminnallinen ja tekninen määrittely. Suunnitelman pohjalta kehitettiin ohjelmallinen toteutus BeamNG.drive -ajoneuvosimulaattoriin ja siinä hyödynnettiin OpenStreetMap-karttapalvelun tarjoamaa tietoa. Projekti tehtiin osaksi pelin pelimoottoria ja se kirjoitettiin C++ -ohjelmointikielellä. Toteutus vaati useiden algoritmien luomista maaston, rakennusten ja teiden proseduraalista generointia varten. Toteutukseen liittyi myös OpenStreetMap-tiedon käyttämän koordinaatiston projisointia pelille sopivaan avaruuteen.
Kun arvioitiin, minkälaisia karttoja toteutuksen avulla pystyttiin tuottamaan ja kuinka hyvin generoidut kartat vastasivat oikeita versioitaan, havaittiin lopputuloksen täyttävän projektin alkuvaiheessa luodut vaatimusmäärittelyt suurimmilta osin. Sopivissa olosuhteissa generaattori loi uskottavia ja pelattavia karttoja, mutta kaikkiin tilanteisiin ei toteutus sopinut. Nykyisen toteutuksen havaittiin jättävän paljon potentiaalia jatkokehitykselle.