Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi informaatika didaktika töörühm
< eelmine | 5. OSA sisukord | järgmine > |
5.3 Silmaring. Arvutimängud
Arvutimängud on mitmekülgne valdkond, mis pakub nii programmeerijatele kui ka mängude arendajatele põnevat väljakutset ja loomingulist vabadust. Kindlasti on programmeerijate seas neid, kes hakkasid IT-valdkonna vastu huvi tundma just arvutimängude armastuse kaudu.
Arvutimängud on sageli väga keerukad süsteemid, mis hõlmavad mitmeid erinevaid komponente nagu graafika, füüsika, tehisintellekt, kasutajaliides jne. Nende komponentide integreerimine ja kooskõlastamine nõuab põhjalikke teadmisi mitmesugustest valdkondadest. Arvutimängude arendamise raskusi saate näha järgmises videos:
MÄNGU ARENDAMISE ETAPID
Mänguarendus on veidi kaootiline. Videomänguprojekti tõhusamaks ja õigeaegsemaks lõpuleviimiseks on vaja mõelda põhikomponentidele, mis on järgmised:
Allikas: https://it-s.com/key-stages-of-game-development/
Arvutimänge loodi varasemalt tihti täiesti nullist, ehk kogu kood, mis oli mängu jooksutamiseks vajalik, kirjutati ise. See oli vajalik, sest tolleaegsed arvutid ja mängukonsoolid ei olnud väga võimsad ning mängude arendajad vajasid täielikku kontrolli mängu iga detaili üle, et loodav mäng mahuks seadme mällu ning jookseks sellel sujuvalt. Näiteks kirjutas Chris Sawyer aastal 1999 arvutimängu RollerCoaster Tycoon üksinda assembler-keeles. Tänu sellele oli mängu võimalik mängida tavaarvutitel. Kuid kuna arendus on muutunud keerukamaks, on muutunud tavaliseks, et ettevõtted ja sõltumatud arendajad kasutavad valmis mootoreid nagu Unity või Unreal Engine.
Tüüpilised programmeerimiskeeled, mida kasutatakse mängude loomisel, on C++, C#, Java, JavaScript ja isegi Python.
NÄITEID MÄNGUDEST JA KEELTEST
Väga tähtis samm arvutimängu loomisel on sobiva programmeerimiskeele valimine vastavalt mängu vajadustele, platvormile ja arendusmeeskonna oskustele. Sõltuvalt mängu tüübist võib programmeerimiskeel olla otsustav tegur graafika jõudluse, füüsikamootori keerukuse, võrgutoe ja platvormide ühilduvuse seisukohalt.
Siin on mõned näited erinevat tüüpi mängudest ja nendes kasutatud programmeerimiskeeltest:
- Nintendo poolt 1985. aastal loodud Super Mario Bros oli kirjutatud assembleris, mis on madaltasemeline keel, mis võimaldas täpset kontrolli NES (Nintendo Entertainment System) riistvara üle. Väärib mainimist, et arvutimängude algusaastate mängud on riistvaraliste piirangute tõttu ülimalt optimeeritud. Näiteks Super Mario Bros mäng võttis seadmel ruumi vaid 31KB. See on umbes 100 korda vähem kui üks pilt tänapäevase nutitelefoni kaameraga.
- Minecrafti looja Markus "Notch" Persson valis Java, et hõlbustada mängu ühilduvust erinevate platvormidega (nt arvutid, konsoolid, mobiiliseadmed). Hiljem sai Minecraftist kõigi aegade enimmüüdud videomäng.
- Kuigi tootja Rovio Entertainmentt loodud Angry Birds on tuntud mobiilimäng, on selle alus loodud C++ keeles, mis pakub suuremat kontrolli mängu jõudluse ja ressursside haldamise üle.
- Candy Crush Saga on veebipõhine mäng, mille alus loodi JavaScriptis (koos HTML5 ja CSS-ga), võimaldades mängu mängimist veebibrauserites.
- Riot Gamesi poolt 2009. aastal loodud League of Legends on suuremahuline mitmikmäng, mille süda on kirjutatud C++ keeles, võimaldades tõhusat jõudlust ja optimeerimist.
- Üks tuntumaid mänge, mis on kirjutatud peamiselt Pythonis, on Battle for Wesnoth. See kasutab ka teisi tehnoloogiaid nagu Lua (skriptimiskeel).
Üldiselt võib öelda, et arvutimängude arendamine on keeruline, kuid samas põnev ja loominguline protsess, mis nõuab mitmekülgset oskusteavet ja tiimitööd. See valdkond pakub programmeerijatele erinevaid väljakutseid. Lisaks tüüpilistele funktsionaalsust puudutavatele ülesannetele tegelevad arvutimängude arendajad tihti ka graafilise disainiga mängu karakterite ja maailma loomise näol.
ALLIKAD
- https://it-s.com/key-stages-of-game-development/
- https://en.wikipedia.org/wiki/Video_game_development
- https://et.wikipedia.org/wiki/Unity
- https://et.wikipedia.org/wiki/Unreal_Engine
Materjali koostas Karolina Samasev. Kohendatud kursuse korraldajate poolt.
< eelmine | 5. OSA sisukord | järgmine > |