Fysiikkasimulaatiot videopeleissä
Hyvärinen, Arna (2017)
Kandidaatintyö
Hyvärinen, Arna
2017
School of Engineering Science, Laskennallinen tekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2019040110750
https://urn.fi/URN:NBN:fi-fe2019040110750
Tiivistelmä
Työssä kartoitetaan saatavilla olevaa tietoa fysiikkamoottoreista, ja miten niitä käytetään videopeleissä. Aihe on rajattu mekaanisen liikkeen ja virtauksen simuloimiseen.
Fysiikkamoottori on videopelikontekstissa pelimoottorin osaohjelma, joka laskee pelissä tapahtuvia fysikaalisia ilmiöitä numeerisesti. Esimerkiksi kappaleiden yhteentörmäys ja sen seurakset lasketaan fysiikkamoottorilla. Pelimoottorin täytyy pystyä reagoimaan pelaajan toimintaan realliajassa. Tämän takia laskenta täytyy tehdä numeerisesti, ja suunnitella mahdollisimman kevyeksi suorittaa. Se, kuinka tarkkaan simulaatio vastaa todellisuutta, on suunniteltava pelin tarpeiden kohtaisesti.
Työtä varten koodataan kaksi omaa simulaatiota. Ensimmäinen on yksinkertainen mekaniikkasimulaattori, jossa joukko palloja kimpoilee laatikossa. Toinen simulaatio kuvaa virtausta, simuloimalla nestettä partikkelijoukkona. Simulaation vaikeuksia on törmäyksestä irtautuminen, ja etenkin virtaussimulaation laskentateho. Hyvä partikkelisimulaatio vaatii niin suuren määrän palloja, että tämän ohjelman ajaminen tavanomaisella tietokoneella on epämiellyttävän hidasta. Raskaudesta johtunee se, että peleissä nestettä harvoin simuloidaan realistisesti.
Fysiikkamoottori on videopelikontekstissa pelimoottorin osaohjelma, joka laskee pelissä tapahtuvia fysikaalisia ilmiöitä numeerisesti. Esimerkiksi kappaleiden yhteentörmäys ja sen seurakset lasketaan fysiikkamoottorilla. Pelimoottorin täytyy pystyä reagoimaan pelaajan toimintaan realliajassa. Tämän takia laskenta täytyy tehdä numeerisesti, ja suunnitella mahdollisimman kevyeksi suorittaa. Se, kuinka tarkkaan simulaatio vastaa todellisuutta, on suunniteltava pelin tarpeiden kohtaisesti.
Työtä varten koodataan kaksi omaa simulaatiota. Ensimmäinen on yksinkertainen mekaniikkasimulaattori, jossa joukko palloja kimpoilee laatikossa. Toinen simulaatio kuvaa virtausta, simuloimalla nestettä partikkelijoukkona. Simulaation vaikeuksia on törmäyksestä irtautuminen, ja etenkin virtaussimulaation laskentateho. Hyvä partikkelisimulaatio vaatii niin suuren määrän palloja, että tämän ohjelman ajaminen tavanomaisella tietokoneella on epämiellyttävän hidasta. Raskaudesta johtunee se, että peleissä nestettä harvoin simuloidaan realistisesti.