2D-kenttäeditorin kehittäminen Unity-pelimoottorille
Hienonen, Santeri (2017)
Hienonen, Santeri
Metropolia Ammattikorkeakoulu
2017
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2017120119321
https://urn.fi/URN:NBN:fi:amk-2017120119321
Tiivistelmä
Työn tavoitteena oli kehittää työkalu 2D-pelikenttien luomiseen Unity-pelimoottorille. Tarkoituksena oli rakentaa työkalu olemassa olevan peliprojektin tarpeisiin, ja samalla perehtyä työkalun toiminnallisuuden taustalla olevaan teoriaan ja käsitteisiin, kuten myös Unityn editorin laajentamiseen.
Työssä tutkittiin marching squares -algoritmin soveltuvuutta 2D-kenttien rakentamiseen, sekä sitä, miten lineaarista interpolointia voitaisiin hyödyntää sen tuottamien muotojen parantamiseen. Tämän jälkeen tutkittiin, miten algoritmin luomaa kolmiointia voitaisiin optimoida Delaunay-kolmiointia hyväksikäyttäen. Sopivien algoritmien löydyttyä työkalu toteutettiin käytännön tasolla, ja pohdittiin, miten työkalua voitaisiin hyödyntää paloista koostuvien pelitasojen rakentamisessa tai mahdollisessa tasojen automaattisessa generoinnissa. Työssä tarkasteltiin myös lopullisen toteutuksen järkevyyttä ja kehityskohteita.
Työkalun toiminnallisuutta käsiteltiin työssä yleisellä tasolla syventymättä tarkemmin sen koodiin tai luokkarakenteeseen, kun taas toteutuksen Unity-pelimoottoriin liittyviä yksityiskohtia tarkasteltiin hieman seikkaperäisemmällä tasolla.
Työn tuloksena saatiin aikaan toimiva kenttäeditori, jota on tarkoitus käyttää jatkossa projektissa, jota varten työkalua lähdettiin alun perin kehittämään.
Työssä tutkittiin marching squares -algoritmin soveltuvuutta 2D-kenttien rakentamiseen, sekä sitä, miten lineaarista interpolointia voitaisiin hyödyntää sen tuottamien muotojen parantamiseen. Tämän jälkeen tutkittiin, miten algoritmin luomaa kolmiointia voitaisiin optimoida Delaunay-kolmiointia hyväksikäyttäen. Sopivien algoritmien löydyttyä työkalu toteutettiin käytännön tasolla, ja pohdittiin, miten työkalua voitaisiin hyödyntää paloista koostuvien pelitasojen rakentamisessa tai mahdollisessa tasojen automaattisessa generoinnissa. Työssä tarkasteltiin myös lopullisen toteutuksen järkevyyttä ja kehityskohteita.
Työkalun toiminnallisuutta käsiteltiin työssä yleisellä tasolla syventymättä tarkemmin sen koodiin tai luokkarakenteeseen, kun taas toteutuksen Unity-pelimoottoriin liittyviä yksityiskohtia tarkasteltiin hieman seikkaperäisemmällä tasolla.
Työn tuloksena saatiin aikaan toimiva kenttäeditori, jota on tarkoitus käyttää jatkossa projektissa, jota varten työkalua lähdettiin alun perin kehittämään.