Mängumootor
Mängumootor on tarkvararaamistik arvutimängude loomiseks. Harilik mängumootor pakub võimalusi kasutaja sisendi saamiseks, failide laadimiseks, graafika renderdamiseks, helide esitamiseks, füüsika simuleerimiseks, animatsioonideks, võrgunduseks, lihtsa graafilise kasutajaliidese loomiseks ja skriptimiseks. [1] [2]
EesmärkRedigeeri
Mängumootori eesmärk on pakkuda mänguarendajale tarkvara arendamise tööriistu, tehes sellega mängu loomise protsess lihtsamaks. Samuti muudab see kogu mänguarenduse kiiremaks ja ökonoomsemaks: kasutatakse juba varem valmis digitaalvara, et teha midagi uut. [3]
Mängumootori mõiste tekkimineRedigeeri
Mängumootori mõiste tekkis 1990ndate keskel, viidates populaarsele arvutimängule "Doom". Mängu "Doom" struktuur loodi hästi määratletud kihtidest: põhitarkvarakiht (kolmemõõtmeline graafika renderdamise süsteem, kokkupõrgete avastamise süsteem, helisüsteem), kunstivarad, mängumaailmad ja mängureeglid. Selline struktuur sai mänguarendajatele väga oluliseks, sest sai luua uusi kunstivarasid, mängumaailmaid ja mängureegleid ilma, et oleks pidanud looma uut põhitarkvara. See andis võimaluse väikestele iseseisvatele arendajatele luua mänge, muutes juba valmisolevaid mänge originaalmängu loojate tööriistu kasutades. 1990ndate lõpus disainiti mängud "Quake III Arena" ja "Unreal" just sellisel taaskasutuse põhimõttel. Nende mootorid olid väga hästi kohandatavad tänu skriptimiskeeltele nagu Quake C. Sellega tekkis ka originaalloojatele uus tuluallikas, litsentseerides oma loodud tarkvara teistele. [4]
Mängumootor ja mängRedigeeri
Mängumootorit ja mängu on vahel raske üksteisest eristada. Neil saab vahet teha andmepõhise arhitektuuri olemasolu järgi: loeme tarkvara mängumootoriks, kui see on laiendatav ja kasutatav mängude loomiseks ilma suurte muudatusteta. Sellegipoolest ei saa ka selle eristusviisiga väga täpselt otsustada, kas tegu on mängu või mängumootoriga, sest igal mängul ja mängumootoril on oma kindel taaskasutamise ulatus. [4]
Mängumootor ja mängužanrRedigeeri
Erinevad mängužanrid nõuavad erinevaid komponente, mis muudab mängumootorid pisut žanripõhiseks. Siiski saab mõne mängumootoriga teha vägagi erinevatest žanritest arvutimänge. [4]
Mängumootori komponendidRedigeeri
Mängumootor koosneb tavaliselt tööriistade komplektist ja käituskeskkonnast. Mängumootori arhitektuur koosneb kihtidest. [4]
KäituskeskkondRedigeeri
Sihtriistvara kihtRedigeeri
Kõige madalamal kihil asub sihtriistvara, mis esitab riistvara, millel mäng töötab. Mõned näited on Microsoft Windowsi ja Linuxi baasil töötavad personaalarvutid, Apple'i iPhone ja Macintosh, Microsoft Xboxi tootepere, Sony Playstationi tootepere ja Nintendo mängukonsoolide pere. [4]
Seadmete driaverite kihtRedigeeri
Järgmisel kihil on seadmete draiverid, mille ülesanne on hallata riistvara ressursse ning kaitsta operatsioonisüsteemi ja mängumootori ülemisi kihte, et need saaksid andmeid ainult vajalikelt riistvara seadmetelt õigesti. [4]
Operatsioonisüsteemi kihtRedigeeri
Kolmandal kihil on operatsioonisüsteem, mis korraldab kõikide protsesside täitmist. Kuna mäng ise on protsess süsteemis, siis see peab arvestama operatsioonisüsteemide eripäradega (kuidas jagatakse jooksvatele protsessidele tööaega). [4]
Kolmandate poolte arendustarkvara ja muu vahetarkvara kihtRedigeeri
Järgmine kiht on kolmandate poolte arendustarkvara ja muu vahetarkvara, kuna paljud mängumootorid kasutavad mängu tegemiseks juba valmistatud tehnoloogiaid. Graafika renderdamine, põrked ja füüsika, animatsioonid, tehisintellekt on näited kolmandate poolte arendustarkvaradest, mis on kasutusel mängumootorite juures. [4]
Platvormist sõltumatu kihtRedigeeri
Paljud mängud peavad töötama erinevatel platvormidel: see annab turul rohkem võimalusi. Seepärast on enamikul mängumootoritel platvormist sõltumatu kiht, mis hoolitseb selle eest, et mäng töötaks sarnaselt eri platvormidel. [4]
Põhisüsteemi kihtRedigeeri
Põhisüsteemi kiht kujutab endast kasulikke tarkvarakomponente: matemaatika teek, mäluhaldus, juhuarvude tekitaja jne. [4]
Ressursihalduri kihtRedigeeri
Ressursihalduri kiht on vajalik, sest tagab ühtse liidese juurdepääsuks kõikidele mänguvaradele ja mootori muudele sisendandemetele. Erinevad mängumootorid realiseerivad ressursihalduse erinevalt: mõnel on selle jaoks kindel keskne süsteem (varad pakitud ühtsesse arhiivi, klassi), teised aga lubavad programmeerijal kasutada tooreid faile ilma lisasüsteemita. [4]
Renderdamise mootori kihtRedigeeri
Renderdamise mootor on mängumootori juures mängu visualiseerimiseks suurim ja keerulisim süsteem. Seda saab ehitada üles eri viisidel – ühtset viisi ei ole, kuid paljud modernsed renderdamise mootorid jagavad sarnaseid disaini põhimõtteid. [4]
Profileerimis- ja silumistööriistade kihtRedigeeri
Mänguarendajatel peab olema võimalus profileerida ja siluda oma mängu, sest mängu jõudlus ja töökindlus on väga tähtsad. [4]
Põrgete ja füüsikasimulatsiooni kihtRedigeeri
Ilma põrgeteta oleks mängumaailma võimatu mõjutada ning kaoks mängu mõte. Mõned mängud pakuvad ka reaalset või osaliselt reaalset füüsikasimulatsiooni, et mängu paremaks muuta. Väga vähesed mänguarendajad loovad enda põrgete ja füüsikasimulatsiooni süsteemi. [4]
Animatsioonide kihtRedigeeri
Mängu tegelaste või muude objektide animeerimiseks on mängumootoril samuti vaja vastavat süsteemi, mida paljud mängumootorid pakuvad. [4]
Inimliidese seadmete kihtRedigeeri
Mängu mängimiseks on vaja saada kasutajapoolne sisend. Mõnikord võib mäng anda ka inimliideste seadmetele väljundi, mis on näiteks mängukontrolleri puhul vibreerimine. [4]
HelikihtRedigeeri
Helid on mängule sama tähtis nagu graafika, kuid tihtilugu ei pöörata sellele nii palju tähelepanu kui graafikale. Sellegipoolest on see mängumootori seisukohalt hädavajalik komponent. [4]
VõrgundusRedigeeri
Võrgunduse kiht on väga tähtis mitmikmängudele, mis tähendab, et samas mängumaailmas saavad mängida mängijad mitmekesi. [4]
Mängu mängimise alussüsteemide kihtRedigeeri
Mängu mängimine tähendab neid tegevusi, reegleid ja mehaanikaid mängumaailmas, mis on tavaliselt implementeeritud kas programmeerimiskeeles, milles on kirjutatud mängumootor, mõnes muus kõrgtaseme keeles või mõlemas. [4]
Mänguspetsiifiliste alamsüsteemide kihtRedigeeri
Kõige kõrgem kiht mängumootori juures on mänguspetsiifiliste alamsüsteemide kiht, sest see hõlmab mängu loogikat ja funktsioone. [4]
Tööriistad ja digitaalvarade konveierRedigeeri
Mängumootor peab suutma ja oskama kasutada väga palju andmeid mänguvara, konfiguratsioonifailide, helifailide, skriptide jms kujul. Samuti on vajalik, et mängumootor võimaldaks mänguarendajal ehitada mängumaailma ja seda ka meeles pidada. [4]
ViitedRedigeeri
- ↑ Michael Enger (20.06.2013). "Game Engines: How do they work?". Vaadatud 03.11.2018.
- ↑ "Game engines — how do they work?". Originaali arhiivikoopia seisuga 20.07.2019. Vaadatud 03.11.2018.
- ↑ Cory Hampshire (15.09.2014). "Purpose of Game Engines". Vaadatud 03.11.2018.
- ↑ 4,00 4,01 4,02 4,03 4,04 4,05 4,06 4,07 4,08 4,09 4,10 4,11 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 Jason Gregory (2009). Game Engine Architecture. 6000 Broken Sound Parkway NW, Suite 300: A K Peters/CRC Press. Lk 11 – 54.
{{raamatuviide}}
: CS1 hooldus: koht sisaldab numbrit (link)