Igralni pogon

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje

Igralni pogon (angl. Game engine) je sistem ki olajša izgradnjo računalniških iger. Pogon skrbi za osnovne funkcije igre, kot so upodabljanje grafike, predvajanje zvoka, podpora fiziki, podpora animacijam, umetna inteligenca, vnos, podpora za krajevno prilagoditev (večjezičnost).

Tako razvijalcem ni treba skrbeti za osnovne funkcionalnosti in se lahko posvetijo težjim ter bolj unikatnim delom svoje igre.[1]

Namen[uredi | uredi kodo]

Igralni pogon ni pogoj za razvoj iger. Ob razvoju iger, pa opazimo, da se določene funkcionalnosti ponavljajo. Opazimo, da bi bilo dobro določene funkcionalnosti predpripraviti, ker bi jih lahko kasneje, ali v novi igri ponovno uporabili. Igralni pogon služi prav temu, da so osnovne funkcionalnosti vnaprej pripravljene in so na voljo za uporabo. Prav tako pa so funkcionalnosti, ki so večkrat uporabljene bile tudi večkrat testirane in s tem so bolj robustne. [2]

Z vsemi funkcionalnistmi, ki so pripravljene za uporabo, razvijalcem pogoni dovoljujejo izgradnjo iger na višjem nivoju, saj jim ni treba skrbeti za nižje funkcionalnosti, kot npr. upodabljanje objektov na zaslonu, ampak lahko takoj začnejo z razvojem bolj unikatnih delov iger, kot npr. logika uporabe nekega objekta v igri.

Funkcionalnosti sodobnih pogonov[uredi | uredi kodo]

Obstaja ogromno igralnih pogonov in vsak pogon ima svoje funkcionalnosti. A vendar se večina funkcionalnosti ponavlja med vsemi pogoni. Glavne funkcionalnosti sodobnih pogonov so: upodabljanje, animiranje, podpora okolju, fizika, zvočna podpora, omrežna podpora, podpora posebnim efektom, uporabniški vmesnik, podpora za vhodne naprave.

Upodabljanje[uredi | uredi kodo]

Primer upodabljanja v 3D igrah

Na osnovi se sistemi za upodabljanje ločijo na 2D in 3D sisteme. Upodabljanje je proces generiranja slike na zaslonu iz računalniško ustvarjenih modelov. Modeli so pogosto povezani v scenske strukture. Upodabljevalnik mora skrbeti za prikaz geometrije, teksture, osvetlitve, senčenja scene. [3] V osnovi pa poskrbi, da razvijalci iger ne rabijo skrbeti, kako se bodo elementi igre prikazovali na zaslonu. Za pogone, ki podpirajo 3D upodabljanje, je pogosto potrebno modele uvoziti iz programov za 3D modeliranje.

Animiranje[uredi | uredi kodo]

Animacije v igrah pomeni premikanje elementov v virtualnem svetu, kar daje občutek da svet živi. V osnovi gre za cikle vnaprej pripravljenih animacij, ki se ob določenih pogojih predvajajo npr. ob premikanju avtomobila se vrtijo kolesa. [4]

Okolje[uredi | uredi kodo]

Pogoni skrbijo tudi za emuliranje okolja. K okolju spada kreiranje tal, kar je pogosto doseženo s pomočjo različnih map, preko katerih pogon generira podatke o višinah in teksturah za določen del tal.

Primer urejevalnika okolja za Cafu igralni pogon.

Fizika[uredi | uredi kodo]

Fizika v igrah je sistem, ki izračunava premikanje predmetov po virtualnem svetu preko fizikalnih zakonov. Običajno pa gre v pogonih zgolj za simulacijo fizike do takšne mere da deluje navidezno realno. V igralnih pogonih pa je pomemben tudi mehanizem trka, ki preračunava razdalje med elementi v virtualnem svetu in razvijalcem ponuja programerski prostor, da se odzovejo na določene trke elementov.

Zvok[uredi | uredi kodo]

Pod sistem za zvok v pogonu ja zbirka funkcij, ki programerjem olajsajo delo z zvočnimi datotekami. Podsistem olajša programerju predvajanje zvokov v igrah. Naprednejši sistemi ponujajo tudi funkcije, ki povezujejo zvoke z objekti v virtualnem svetu in tako predvajajo zvoke na različnih razdaljah.

Omrežje[uredi | uredi kodo]

Igralni pogoni z podporo za omrežje omogočajo programerjem enostavno prilagoditev njihovih iger za igranje v omrežnih skupnostih. Nekateri pogoni imajo vgrajeno tudi podporo za MMORPG igre.

Posebni efekti[uredi | uredi kodo]

Primer posebnih efektov v igrah

Posebni efekti so sestavni del vseh igralnih pogonov. Gre za sistem poimenovan “sistem delcev” (angl. particle system). To je sistem, ki vsebuje neviden element v virtualnem svetu, iz katerega izhajajo delci in tako kreirajo animacijo oz. poseben efekt. Delci, ki izhajajo iz začetnega elementa so večinoma sličice stopenj animacije, ki se izmenjujejo in tako tvorijo iluzijo efekta.[5]

Uporabniški vmesnik[uredi | uredi kodo]

Uporabniški vmesniki v igrah so vizualni vmesniki, ki skrbijo za osnovno navigacijo po igri (torej meniji), in tudi deli, ki prikazujejo statuse igralcu (npr. števec hitrosti). Ti deli iger se prikazujejo ločeno od virtualnega sveta in so že predpripravljeni v modernih pogonih.

Razvojni paketi[uredi | uredi kodo]

Razvojni paketi so zbirke programja, s pomočjo katerih se olajša razvoj iger. Mnogi moderni igralni pogoni ponujajo svoje razvojne pakete, ki pa se razlikujejo v številu funkcionalnosti. V osnovi pa vsi paketi vsebujejo razvojno okolje za pisanje programske kode in nadzorom nad viri (slikami, zvoki, 3D modeli,...). Pogosto pa ponujajo tudi urejevalnike virtualnih svetov in urejevalnike posebnih efektov.[6]

Primeri pogonov[uredi | uredi kodo]

CryEngine 3[uredi | uredi kodo]

Crytek logo

Igralni pogon, razvit pri podjetju Crytek, podpira različne platforme: PlayStation 3, Xbox 360, Microsoft Windows in bi naj bil pripravljen za MMO igre. S pomočjo tega pogona so bile razvite naslednje popularne igre: Crysis, Crysis Warhead, Aion.[7]

Unity 3D[uredi | uredi kodo]

Igralni pogon Unity je razvilo podjetje Unity Technologies, podpira pa veliko platform: Microsoft Windows, Mac OS X, brskalnike, Nintendo Wii, iPhone/iPad, Android, Xbox 360, PlayStation 3.[8] Nekatere igre, ki so bile razvite s pomočjo tega pogona so: Samurai II: Vengence(Android, iOS), Crasher, Unearthed: Trail of Ibn Battuta (iOS, Android, Web, Desktop, PS3, Xbox360, Wii) [9]

Unreal Engine 3[uredi | uredi kodo]

Pogon, razvit pri podjetju Epic Games, podpira platforme: Adobe Flash, iOS, Android, Mac OS, Xbox 360, PlayStation 3, PlayStation Vita, Microsoft Windows. [10] Popularne igre razvite s pogonom Unreal engine so: Gears of War 3, Tera online, Batman: Arkham City, Global Agenda.[11]

jMonkeyEngine3[uredi | uredi kodo]

Odprtokodni igralni pogon, ki ga je razvila spletna skupnost. Pogon je v celoti napisan v programskem jeziku Java. Popularnih iger napisanih s pomočjo tega pogona ni, obstaja pa dosti projektov, kjer jih razvijajo.[12]

Viri[uredi | uredi kodo]