You are on page 1of 21

Gimnazija Leskovac

Leskovac, Koste Stamenkovica 15

Maturski rad iz informatike


PROGRAMIRANJE VIDEO IGARA

Profesor: Učenik:
Bojan Aleksić, prof. Milan Ernjaković, IV-1

Leskovac, jun 2018. god.


naslov SADŽAJ strana
1. OSNOVE PROGRAMIRANJA ............................................................................................. 3
2. Razvojni proces dobijanja video igre ..................................................................................... 4
Pravljenje prototipa ................................................................................................................ 4
Dizajn video igre .................................................................................................................... 5
Produkcija ............................................................................................................................... 5
Testiranje ................................................................................................................................ 6
Završni radovi ......................................................................................................................... 7
Održavanje .............................................................................................................................. 7
Tok radova .............................................................................................................................. 7
3. Alati za izradu video igara ...................................................................................................... 8
Source kod ............................................................................................................................ 14
4. Programski jezici .................................................................................................................. 15
Programski jezik : C ............................................................................................................ 16
Programski jezik : C++ ......................................................................................................... 17
Programski jezik : C# .......................................................................................................... 17
Programski jezik : Java ......................................................................................................... 18
5. Закључак .............................................................................................................................. 19
Литература .............................................................................................................................. 20

2
Назив матурског рада Име и презиме ученика, IV-1

1. OSNOVE PROGRAMIRANJA
Programiranje video igara , samo podskup ukupnog procesa dobijanja video igre , to jest
razvoja video igara , je razvoj softverskog dela video igre. Programiranje igara zahteva
značajno poznavanje softverskog inženjeringa , kao i stručno poznavanje jedne ili više od
sledećih oblasti :

1. Simulacija
2.Kompijuterska grafika
3.Veštačka inteligencija
4. Fizika
5.Audio programiranje
6.Unos podataka

Za mmo igre (masively multiplayer online games) koristi se još i mrežno programiranje i
programiranje baza podataka.Iako ozbiljne igre programiraju profesionalni programeri neki
početnici takođe mogu da iz hobija programiraju jednostavnije video igre.

3
Назив матурског рада Име и презиме ученика, IV-1

2. RAZVOJNI PROCES DOBIJANJA VIDEO IGRE


Stručno razvijanje video igara obično počinje dizajnom video igre , koji sam po sebi ima
nekoliko mogućih porekla. Povremeno proces razvijanja video igre počinje bez jasne ideje o
video igri na umu , već sa nizom ekperimentalnih pokušaja . Na primer , dizajner igre The
Sims Will Wright је započeo razvoj tako što je programere zadužio da eksperimentišu sa
nekoliko ideja.

Pravljenje prototipa
Programeri često moraju da naprave prototip ideje i karakteristika video igre. Veliki deo
pravljenja protipa se odvijau preprodukciji , pre nego što se napravi dizajn igre , i može da
pomogne u određivanju koje će karakteristike dizajn da opisuje . Prototip se razvija veoma
brzo sa vrlo malo vremena za razvoj dizajna i uglavnom služi kao dokaz koncepta ili za
testiranje ideja . Od prototipova se ne očekuje da rade besprekorno već su razvijeni da se na
njima isprobaju nove , ponekad egzotične ideje.

4
Назив матурског рада Име и презиме ученика, IV-1

Dizajn video igre


Isko programerov glani posao nije dizajn video igre , programeri često doprinose dizajnu , kao
i umetnici koji rade sam dizajn. Dizajner će od
programerskog vođe ( lead programmer) ,
umetnika i proizvođača tražiti ideje i strategije za
dizajn izgleda video igre. Takođe , često
programeri na ne vodećim ulogama dosta
doprinose dizajniranju , takvi su “copywriters“
(ljudi zaduženi za proveravanje autorskih prava
na sve elemente koji se mogu pojaviti u dizajnu
igre) i drugi programeri i umetnici.Programeri
moraju pomno da prate promene dokumenta sa
dizajnom igre . Kako se odvija proces
dizajniranja igre tako se ovaj dokument menja i tako se programerima ppometaju granice i
otkrivaju nove mogućnosti za doprinos boljem izgledu igre

Produkcija
Tokom proizvodnje programeri mogu stvoriti veliki deo izvornog ( source ) koda opisanog u
dokumentu sa dizajnom određene igre. Usput dokument sa dizajnom je modifikovan da kako
bi zadovočljio ograničenja postavljena od strane programeta ili prođiren kako bi se iskoristile
nove funkcije koje nde dizajneri. Dokument sa dizajnom je ono što nazivamo
“živi dokument“ čiji se život prvenstveno zasniva na rasporedu , talentu i snalažljivosti
programera. Iako mnogi programeri imaju određenu reč u donošenju odluke o sadržaju igre ,
većina proizvođača traži informacije o statusu razvoja igre od glavnog programera.. Glavni
programer je odgovoran za poznavanje svih aspekata razvoja igre i za isticanje ograničenja.
Vodeći programer mora takođe da prenese predloge u vezi mogućih karakteristika koje bi
želeli da implementiraju od običnih programera do tima zaduženog za dizajn. Sa današnjim
vizuelno bogatim sadršažajem programer mora da ima konstantan kontakt sa umetničkim
timom. Na primer , programer zadužen za 3D grafiku mora da radi zajedno sa umetnicima
zaduženim za izradnju 3D objekata za video igru , dok AI (artficial inteligence) programer ne
mora da interaguje konstantno . Da bi pomagali umetnicima i dizajnerima nivoa , programeri
mogu da volontiraju ili da budu prozvani da alate. Mnogi od tih alata su raazvijeni sa svrhom i
često su puni bagova zbog vremenskog ograničenja ( vreme za pravljenje ovih alata nije
predviđeno kad se pravi plan za razvoj igre) , kao i zbog toga što su oni samo za trenutnu
upotrebu za tu igru. Mnoge alatke su napravljene u RAD jezicima , namenjene su za brzu
upotrebu i vrlo brzo se odbacuju nakon završavanja igre.

5
Назив матурског рада Име и презиме ученика, IV-1

Veće izdavačke kompanije

Testiranje
Testiranje je formalni postupak ispitivanja kvaliteta , koji sprovode profesionalni testeri igara,
i počinje duboko u razvoju. Visoko budžetne igre započinju testiranje sa alfa verzijom koja je
dostupna široj javnosti , dok nisko budžetne igre mogu da ne počnu sa fazom testiranja dok
igrica ne bude objavljena. Zadatak programera je da poprave greške i bagove koji su
pronađeni od strane
QA timova.

6
Назив матурског рада Име и презиме ученика, IV-1

Završni radovi

Finalni uključuju “poliranje“ igre , kao što je popravljanje povremenih bagova i grešaka , od
malih do katastrofalnih , koji se mogu javiti u poslednjoj fazi testiranja. Developeri mogu da
puste igru u beta testing obliku , ali izgled ovog vida igre zavisi od developera do developera .
Često beta sadrđi sve karakteristike igre , ali ima znatno više bagova ili nezavršenog
sadržaja.Neke igre se puđtaju u beta test da bi se proverila izdržljivost servera. Kad se igra
proglasi završenom kaže se da se pozlatila i šalje se izdavaču. U zavisnosti od okolnosti
izdavač može da podvrgne igru svojim testovima ili da je pusti u prodaju takvu kakvu je
dobio.

Održavanje
Kad igra bude poslata kupcu , faza održavalja otpočinje. Programeri čekaju određeni period
kako bi dobili što više informacija od korisnika o funkcionalnosti igre. Kad programeri
procene da su sakupili dovoljno povratnih informacija , počinju da rade na “patch“-u (zakrpi).
Za izradu patch-a može da bude potrebno nekoliko nedelja čak i mesec dana ali ima važnu
ulogu da popravi sve bagove i greške u igri. Ponekad patch može da uključuje i dodatan
sadržaj ili čak da izmeni izgled igre u potpunosti.

Tok radova

Većina modernih igara zahteva jednu do tri godine da se završi. Dužina trajanja
razvoja video igre zavisi od mnogo faktora ali je programiranje zahtevano u
sklopu svih faza razvijanja igre , osim možda za rane faze dizajniranja.

7
Назив матурског рада Име и презиме ученика, IV-1

3. ALATI ZA IZRADU VIDEO IGARA


Kao i drugi softver , programi za razvoj video igara se generišu od source
( izvornog) koda do stvarnog programa (koji se izvršni) koji se dobija kompajlerom. Izvorni
kod se može rayviti skoro bilo kojim programom za obradu teksta , ali mnogi profesionalni
programeri koriste potpuno integrisano okruženje. Koji IDE (integrated development
environment – integrisano okruženje za razvoj) korise zavisi od ciljane platforme. Pored IDE-
a , mnoge kompanije koriste alate specijalno razvijene u toj kompaniji za uputrebu samo
unutar nje same. Neki od njih uključuju prototipove I alate za konverziju aseta (asset
conversion tools)(programi koji menjaju umetnička dela u format prilagođen igri). Neki od
ovih programa mogu da budu isporučeni sa igrom , takvi sun a primer level editors )
(programi za svojeručnu izmeni I kreaciju nivoa konkretne igre). Kompanije za razvoj i
izdavanje igara često su spremne da plate hiljade dolara kako bi njihovi programeri imali
najbolje moguće alate za razvoj video igara. Programeri opremljeni najboljim alatima mogu
da rade na vise monitora istovremeno i da dominiraju u svom timu.

Lista nekih od najvažnijih alata:

1. Binary compatibility analysis tool

Kompatibilnost binarnog koda (kompatibilan sa binarnim kodom ili sa objekat-


kodom) je osobina računarskih sistema da mogu pokrenuti isti izvršni kod , obično
mašinski kod za kompijutere za opštu namenu . Kompatibilnost source koda sa druge
strane znači da je potrebno tumačenje ili rekompilacija.

2. Bug databases

Sistem praćenaja bagova iliti sistem praćenja devekata je softverska aplikacija koja
prati prijavljene softverske greške u projektima softverskog razvoja. Može se smatrati
sistemom prćenja problema. Mnogi sistemi za praćenje grešaka , kao oni koje koristi
većina open source aplikacija , omogućavaju krajnjim korisnicima da direktno unose
izveštaj o greškama.

Ostali sistemi se koriste samo interno u kompanijama ili organizacijama koje rade na
razvoju softvera. Tipični sistemi za praćenje grešaka su integrisani sa drugim
aplikacijama za upravljanje softverom. Sistem praćenja grešaka je neophodna
komponenta dobre infrastructure za razvoj softvera, a konstanta upotreba sistema za
praćenje greške se smatra jednim od obeležja dobrog softverskog tima.

3. Build tools

Automatizacija izgradnje je process automatizacije stvaranja softvera i sličnih


procesa kao što su kompajlovanje source koda u binarni kod , pakovanje binarnog
koda I pokretanje autmatizovanih testova.

8
Назив матурског рада Име и презиме ученика, IV-1

4. Compilation and linking tools

Kompajler je kompjuterski softver koji transformiše računarski kod napisan na


jednom programskom jeziku (izvorni jezik) u drugi programski jezik (ciljni jezik).
Kompajleri su vrsta prevodilaca prvenstveno za računare. Kompajler imena se
prvenstveno koristi za programe koji prevode izvorni kod iz programskog jezika
visokog nivoa na jezik nižeg nivoa kako bi kreirali funkcionalan program.
Međutim, postoji mnogo različitih vrsta kompajlera. Ako se kompilirani program
može pokrenuti na računaru čiji se CPU ili operativni sistem razlikuje od onog na
kom se izvršava kompajliranje, kompajler je cross-kompajler. Program koji prevodi
sa niskog nivoa na viši nivo je dekompajler. Program koji prevodi između jezičkih
jezika na visokom nivou se obično naziva kompajler source koda ili transpajler.
Prepisivač jezika je obično program koji prevodi oblik izraza bez promene jezika.
Izraz kompajler-kompajler se odnosi na alate koji se koriste za kreiranje razlikovača
koji izvršavaju sintaksnu analizu.
Kompajler će verovatno izvesti mnoge ili sve naredne operacije: pretprocesiranje,
leksička analiza, analiziranje, semantička analiza, pretvaranje ulaznih programa u
intermedijernu predstavu, optimizaciju koda i generisanje koda. Kompajleri
implementiraju ove operacije u fazama koje promovišu efikasan dizajn i ispravne
transformacije izvornog ulaza u ciljni izlaz. Greške kompajlera mogu biti veoma
teške za pronalaženje i ispravljanje ili zaobilaženje , stoga, implementatori
kompajlera ulažu značajne napore kako bi osigurali ispravnost kompajlera.
Kompajleri nisu jedini prevodioci koji se koriste za transformaciju izvornih
programa. Prevodilac je računarski softver koji pretvara i izvršava navedene
operacije. Proces prevođenja utiče na dizajn računarskih jezika koji dovode do
preferencije kompilacije ili tumačenja. U praksi, prevodilac može biti implementiran
za kompajlirane jezike, a kompajleri se mogu implementirati za tumačene jezike.

U računarstvu, linker ili link editor je računarski program koji uzima jednu ili više
objekatnih datoteka koje generiše kompajler i kombinuje ih u jednu izvršnu
datoteku, datoteku biblioteke ili drugu datoteku objekta.Jednostavnija verzija koja
piše svoj izlaz direktno u memoriju naziva se loader, mada se obično smatra
posebnim procesom.

9
Назив матурског рада Име и презиме ученика, IV-1

5. Debuggers
Debager ili alatka za debagovanje je računarski program koji se koristi za testiranje i
debagovanje drugih programa ("ciljanih" programa). Kod koji se može ispitivati
alternativno se može pokrenuti na simulatoru seta instrukcija (ISS), tehniku koja
omogućava veliku snagu u svojoj sposobnosti da se zaustavi kada se sretne sa
određenim uslovima, ali koji će obično biti nešto sporiji od izvršenja koda direktno na
odgovarajućem (ili istom) procesoru. Neki debugeri nude dva načina rada, potpunu ili
parcijalnu simulaciju, da bi se ograničio ovaj uticaj.
"Zamka" se javlja kada se program ne može normalno nastaviti zbog programerske
greške ili nevažećih podataka. Na primer, program je možda pokušao da koristi
instrukciju koja nije dostupna na trenutnoj verziji CPU-a ili je pokušalo pristupiti
nedostupnoj ili zaštićenoj memoriji. Kada program "zaustavi" ili dostigne unapred
podešeno stanje, debager obično prikazuje lokaciju u source kodu ako je source-level
debager ili simbolički debuger, koji se obično sada vidi u integrisanim razvojnim
okruženjima(IDE). Ako je to debager na niskom nivou ili debuger na mašinskom
jeziku, on prikazuje liniju u demontaži (osim ako ima i online pristup originalnom
source kodu i može prikazati odgovarajući odeljak koda iz skupa ili kompilacije)

6. Formal methods

U računarskim naukama, posebno softverskom inženjeringu i hardverskom


inženjeringu, formalne metode su posebna vrsta matematičkih tehnika za specifikaciju,
razvoj i verifikaciju softverskih i hardverskih sistema. Korišćenje formalnih metoda za
dizajn softvera i hardvera motivisano je očekivanjem da, kao i u drugim inženjerskim
disciplinama, izvođenje odgovarajuće matematičke analize može doprinijeti
pouzdanosti i robustnosti dizajna .Formalne metode najbolje se opisuju kao primena
prilično širokog spektra teorijskih osnova računarskih nauka, posebno logičkih
računala, formalnih jezika, teorije automata, dinamičkog sistema diskretnih događaja i
semantike programa, ali i tipova sistema i algebarskih tipova podataka za probleme u
softveru i hardversku specifikaciju i verifikaciju..

10
Назив матурског рада Име и презиме ученика, IV-1

7. GUI interface generators

Grafički konstruktor korisničkog interfejsa (ili GUI builder), takođe poznat kao GUI
dizajner, predstavlja alat za razvoj softvera koji pojednostavljuje kreiranje GUI-a tako
što dozvoljava dizajneru da organizuje grafičke elemente kontrole (često se zovu
vidžeti) korišćenjem WISIWIG urednik. Bez GUI buildera, GUI mora biti izgrađen
ručnim navođenjem parametara svakog vidžeta u izvornom kodu, bez vizuelne
povratne sprege sve dok se program ne pokrene.Korisnički interfejsi se najčešće
programiraju koristeći arhitekturu zasnovanu na događajima, tako da GUI graditelji
takođe pojednostavljuju kreiranje događaja pokretanog koda. Ovaj podržani kod
povezuje vidžete sa odlaznim i dolaznim događajima koji pokreću funkcije koje
pružaju logiku aplikacije.Neki grafički korisnici interfejsa, kao npr. Glade Interface
Designer, automatski generiše sve izvorne kod za grafički element kontrole. Drugi,
kao što je Interface Builder, generišu instance serijale objekata koji zatim učitavaju
aplikacija.

GUI bildere možemo podeliti na osnovu toga na kom se jeziku zasnivaju


pa tako imamo:
1.Zasnovane na C-u
-GTK+
-XForms
-Intrinsics
-Motif
2.Zasnovane na C#-u
-UWP
-Microsoft Visual Studio XAML Editor
-SharpDevelop
-Xarmarin.Forms / .NET Core
-Xarmarin Studio
3.Zasnovane na C++-u
-UWP
-MVS
-MEB
-VCL C++ builder
-Gtkmm
-Qt creator
-FLTK
-wvWidgets
4.Zasnovane na Swift-u
-Cocoa
-GNUstep
-Gorm
5.Zasnovane na HTML-u/Javascript-u
-DreamWeaver
-Apache Cordova

11
Назив матурског рада Име и презиме ученика, IV-1

8. SWIG library interface generators

Simplified Wrapper and Interface Generator(pojednostavljeni generator za omotač i


interfejs ) (SWIG) je open source softverski alat koji se koristi za povezivanje
računarskih programa ili biblioteka napisanih u C-u ili C ++-u sa skriptnim jezicima
kao što su Lua, Perl, PHP, Pithon, R, Rubi, Tcl i drugi jezici kao što su C #, Java,
JavaScript, Go, Modula-3, OCaml, Octave, Scilab i Scheme. Izlaz može biti u obliku
KSML ili Lisp S-izraza.

9. Memory debuggers

Debager memorije koji je poznat i kao izvršni debager je debager za pronalaženje


problema sa softverom, kao što su curenje memorije i prelivanje bafera. Ovo su
posledica grešaka vezanih za dodeljivanje i deaktiviranje dinamičke memorije.
Programi napisani na jezicima koji imaju sakupljanje smeća, poput upravljačkog koda,
možda će biti potrebni debageri memorije, npr. za memorijsko procurivanje zbog
"živih" referenci u kolekcijama.

10. Search tools

Postoje dva sistema za pronalaženje a to su grep i find.


grep je komandna linija za pretraživanje linija podataka sa običnim tekstom za
linije koje odgovaraju regularnom izrazu. Njegovo ime dolazi iz ed komande g / re / p
(globaly search for regular expression and print) (globalno traži regularni izraz i
štampaj), koji ima isti efekat: vrši globalno pretraživanje sa regularnim izrazom i
štampa sve odgovarajuće linije. grep je originalno razvijen za Unix operativni sistem,
ali kasnije dostupan za sve sisteme nalik Unix-u.
find je u Unix-u i nekim drugim operativnim sistemima komandna linija koja
pretražuje jedno ili više direktorijuma stabala datotečnog sistema, locira datoteke na
osnovu nekih kriterijuma specifičnih za korisnika i primenjuje određenu akciju za
svaku odgovarajuću datoteku. Mogući kriterijumi pretraživanja uključuju obrazac koji
odgovara imenu fajla ili vremenskom opsegu koji se poklapa sa vremenom izmene ili
vremenom pristupa datoteci. Po podrazumevanom podešavanju pronađite listu svih
datoteka ispod trenutnog radnog direktorijuma. Srodni programi za lociranje koriste
bazu podataka indeksiranih datoteka dobijenih putem pronalaska (ažuriranih u
redovnim intervalima, obično pomoću cron job-a) kako bi se obezbedio brži način
pretraživanja čitavog datotečnog sistema za datoteke po imenu

12
Назив матурског рада Име и презиме ученика, IV-1

11. Scripting languages

Skriptni jezik ili skriptni jezik je programski jezik koji podržava skripte: programe
napisane za posebnu run-time okruženje koje automatizuje izvršavanje zadataka koji
bi se alternativno mogli izvršiti jedan po jedan od strane čovjeka operatera. Skriptni
jezici se često tumače (umjesto kompilirane). Primitivi su obično osnovni zadaci ili
API pozivi, a jezik dozvoljava njihovu kombinaciju u složenije programe. Okruženja
koja se mogu automatizovati putem skriptiranja uključuju softverske aplikacije, veb
stranice u okviru veb pretraživača, korišćenje školjki operativnih sistema (OS),
ugrađeni sistemi, kao i brojne igre. Skriptni jezik se može posmatrati kao specifični
jezik za određeno okruženje; u slučaju skriptiranja aplikacije, ona je poznata i kao
jezik proširenja. Skriptni jezici se ponekad nazivaju i programski jezici visokog nivoa,
jer rade na visokom nivou apstrakcije ili kao upravljački jezici, posebno za jezike za
upravljanje poslovima na glavnim računarima.
Termin "skriptni jezik" se takođe koristi labavo da se odnosi na dinamičke jezike
opšteg značaja visokog nivoa, kao što su Perl, PoverShell, Pithon i Tcl sa izrazom
"skripta" koji se često koristi za male programe ( do nekoliko hiljada linija koda) na
takvim jezicima, ili na domenima specifičnim jezicima kao što su jezici za obradu
teksta sed i AVK. Neki od ovih jezika su prvobitno bili razvijeni za upotrebu u
određenom okruženju, a kasnije su se razvili u prenosne domene ili jezike opšte
namene. Nasuprot tome, mnogi jezici opšte namjene imaju dijalekte koji se koriste kao
skriptni jezici. Ovaj članak govori jezike pisanja u uskom smislu jezika za određeno
okruženje.

12.Source code editor

Source kod editor je program za modifikaciju teksta dizajniran specifično za


editovanje source koda kompijuterskih programa. Može da bude zasebna aplikacija ili
da bude deo IDE-a ili web browser-a .Source kod editori su najosnovnije alatke koje
programeri korise da bi izvršili svoj najosnovniji posao što je pisanje i editovanje
source koda. Editori za source kod imaju neke karakteristike koje olakšavaju posao
unosa i editovanja source koda kao što su : naglašavanje sintakse , samodovršavanje
reči i sparivanje zagrada. Ovi editori takođe nude vrlo pogodan način da se pokrenu
kompajler , prevodilac , debager i ostali programi bitni za process softveskog razvoja
aplikacije Tako , dok mnogi editori za tekst nude mogućnost unosa i editovanja source
koda , dokle god ne ubrzavaju i ne poboljšavaju unos i editovanje source koda nisu
source kod editori već obični editori za tekst.

13
Назив матурског рада Име и презиме ученика, IV-1

13. Static code analysis

Statička programska analiza je analiza računarskog softvera koji se izvodi bez


stvarnog izvršavanja programa. (Analiza izvršena na izvršavanju programa poznata je
kao dinamička analiza.) U većini slučajeva analiza se vrši na nekoj verziji source
koda, au drugim slučajevima neki oblik objektnog koda. Termin se obično primjenjuje
na analizu koju vrši automatizovano sredstvo, pri čemu se ljudska analiza naziva
razumevanje programa, razumijevanje programa ili pregled kodova. U drugom slučaju
koriste se i inspekcije softvera i softverski koraci.

Source kod
U računarstvu, izvorni kod je svaka kolekcija računarskih instrukcija, moguće sa
komentarima, napisanim pomoću čitljivog programskog jezika, obično kao običan tekst.
Izvorni kod programa je specijalno dizajniran da olakša rad računarskih programera, koji
određuju radnje koje će računar izvršiti uglavnom pišući izvorni kod. Izvorni kod se često
transformiše od strane asemblera ili kompajlera u binarni računarski kod koji razume računar.
Kod mašine se možda kasnije čuva za izvršenje. Alternativno, izvorni kod se može tumačiti i
na taj način odmah izvršiti.
Većina aplikativnog softvera distribuira se u obliku koji uključuje samo izvršne datoteke. Ako
je izvorni kod uključen, bilo bi korisno korisniku, programeru ili administratoru sistema, od
kojih bi svi mogli da proučavaju ili modifikuju program.

Linux Information Project definiše source kod kao:


“Source kod je prva verzija softvera , kako je originalno napisana , u prostom tekstu , od
strane ljudskih programera.”

Source kod se prvenstveno koristi za unos podataka za proces koji proizvodi upotrebljivi
program. Takođe se koristi za komunikaciju algoritama između osoba. Kao osnova svakog
funkcionalnog programa , ne samo igre, ovaj kod igra najvažniju ulogu u stvaranju video
igara i od njega se počinje u razvoju video igre. Programeri imaju jako značajan zadatak kad
je u pitanju kreiranje source koda jer on mora da bude apsolutno nepogrešiv , tačan i precizan
kako bi uz sve ostale nadogradnje moglo da se dođe do funkcionalne igre.

14
Назив матурског рада Име и презиме ученика, IV-1

4. PROGRAMSKI JEZICI

Kada se dogovori početni dizajn igre, mora se odlučiti jezik za razvoj. Izbor zavisi od mnogo
faktora, kao što su poznavanje jezika programskog osoblja, ciljne platforme, zahteva za brzinu
izvršavanja i jezik nekog game engine-a , API-a ili biblioteka koja se koristi.
Za lične računare, izabrani jezik može biti malo više od preference. Veze za jezike za
popularne biblioteke kao što su SDL i Allegro su široko rasprostranjene, i razlika u
performansama između njih i idiomatskog koda napisanog u modernim jezicima je
zanemarljiva. Najpopularniji jezici obično su proceduralni / objektno orijentisani i primenjuju
se pomoću kompajlera; na primer, C, C ++, i Java. Međutim, programeri mogu uzeti u obzir
specifične karakteristike domena, kao što su povezivanje sa operativnim sistemom i otpornost
na obrnuto inženjerstvo za online video igre. Mnoge igre nisu isključivo napisane na jednom
jeziku i mogu kombinovati dva ili više jezika; Na primer, Unity, popularni game engine, ima
razlicite komade napisane u C, C ++ i C #. Za konzole, podrška ciljne platforme je najčešće
najvažniji faktor. U prošlosti su video igrice za konzole bile gotovo isključivo u assembly-ju
zbog ograničenih resursa u smislu brzine skladištenja i obrade. Međutim, pošto tehnologija
napreduje, postoje i opcije za razvoj igara na konzolama. Nintendo, Microsoft i Soni imaju
različite SDK-ove za njihove Wii U, Nintendo Switch, Xbox One i PlayStation 4 konzole.
Jezički za skriptovanje na visokom nivou se sve više koriste kao ugrađene nadogradnje na
osnovnu igricu napisanu na kompiliranom programskom jeziku, kako bi mogao da modifikuje
i izvorni programer i svako ko bi želeo da modifikuje igru. Lua je veoma popularan izbor, jer
je njegov API napisan u ANSI C, a jezik je dizajniran da bude ugrađen u druge aplikacije.
Mnogi programeri stvorili su prilagođene jezike za svoje igre, kao što su id Software’s QakeC
i Epic Games’ UnrealScript.

JEZIK KARAKTERISTIKE
Assembly Potencijalno najmanja upotreba CPU-a
C Široko poznat , brojni API-evi ,
kompajluje se na mašinski
Objektno orijentisan , široko poznat ,
C++ mnogobrojni API-evi, kompajluje se na
mašinski
Objektno orijentisan , poseduje skupljač
Java đubreta ,prenosiv pomoću virtualne
mašine
Objektno orijentisan , poseduje skupljač
C# , Visual Basic .NET đubreta , radi sa Microsoft-ovim
proizvodima
Objektno orijentisan , radi sa Apple-ovim
Objesctive-C , Swift
proizvodima
Poznata sintaksa , lako se prenosi na
Lua , Phyton , JavaScript , Tcl složenije jezike , često se koristi za
skriptovanje
Dodatni jezici za igre , često se vezuju za
Lisp , Pascal , Perl , Smalltalk
popularne biblioteke

15
Назив матурског рада Име и презиме ученика, IV-1

Programski jezik : C

C je opšti i imperativni program za kompjuterski programiranje, podržava strukturno


programiranje, opseg leksičkih varijabli i rekurziju, dok sistem statičkog tipa sprečava mnoge
nenamerne operacije. Dizajniranjem, C pruža konstruktove koji efikasno mapiraju tipične
mašinske instrukcije, i stoga je pronašao trajnu upotrebu u aplikacijama koje su ranije bile
kodirane na jeziku montaže, uključujući operativne sisteme, kao i različiti aplikativni softver
za računare koji se kreću od superkompjutera do ugrađenih sistema .
C je originalno razvio Dennis Ritchie između 1969. i 1973. u Bell Labs, i koristio je za
ponovno implementiranje Unik operativnog sistema. Od tada postaje jedan od najčešće
korišćenih programskih jezika svih vremena, sa C kompajlerima različitih proizvođača
dostupnih za većinu postojećih kompjuterskih arhitektura i operativnih sistema. C je
standardizovan od strane američkog Nacionalnog instituta za standarde (ANSI) od 1989.
godine (vidi ANSI C), a potom Međunarodna organizacija za standardizaciju (ISO).
C je imperativni proceduralni jezik. Dizajniran je tako da se sastavlja koristeći relativno
jednostavan prevodilac, kako bi se obezbedio pristup malom nivou memorije, kako bi se
obezbedili jezički konstrukti koji se efikasno mapiraju da bi uputili instrukcije i zahtevali
minimalnu podršku tokom rada. Uprkos niskim mogućnostima, jezik je dizajniran tako da
podstiče programiranje preko platforme. C-program koji je kompatibilan sa standardima i
prenosivi program C može se sastaviti za veoma raznovrsne računarske platforme i operativne
sisteme sa malo promjena u izvornom kodu. Jezik je postao dostupan na veoma širokom
spektru platformi, od ugrađenih mikrokontrolera do superračunara.

Primer koda u ovom jeziku :


long some_function();
/* int */ other_function();

/* int */ calling_function()
{
long test1;
register /* int */ test2;

test1 = some_function();
if
(test1 > 0) test2 = 0;
else
test2 = other_function();
return test2;
}

16
Назив матурског рада Име и презиме ученика, IV-1

Programski jezik : C++

C ++ je opšti programski jezik. Ima imperativne, objektno-orijentisane i generičke funkcije


programiranja, a takođe obezbeđuje i objekte za manipulaciju sa niskim nivoom memorije.
Dizajniran je sa pristrasnošću prema programiranju sistema i ugrađenim, ograničenim
resursima i velikim sistemima, sa performansama, efikasnošću i fleksibilnošću korišćenja,
kako se njegov dizajn naglašava. C ++ je takođe pronašao korisno u mnogim drugim
kontekstima, a ključne prednosti su softverska infrastruktura i aplikacije ograničene resursima
uključujući desktop aplikacije, servere (npr. Elektronsku trgovinu, veb pretraživanje ili SKL
servere) i kritične aplikacije ( npr. telefonski prekidači ili svemirske sonde). C ++ je
kompajlirani jezik, a implementacije su dostupne na mnogim platformama. Mnogi
proizvođači pružaju C ++ kompilere, uključujući Free Softvare Foundation, Microsoft, Intel i
IBM. C ++ je standardizovana od strane Međunarodne organizacije za standardizaciju (ISO),
sa najnovijom standardnom verzijom koja je ratifikovala i objavila ISO u decembru 2017.
godine kao ISO / IEC 14882: 2017 (neformalno poznata kao C ++ 17). Programski jezik C ++
je inicijalno standardizovan 1998. godine kao ISO / IEC 14882: 1998, koji je tada dopunjen
standardima C ++ 03, C ++ 11 i C ++ 14. Sadašnji C ++ 17 standard zamenjuje ove nove
funkcije i uvećanu standardnu biblioteku. Pre početne standardizacije 1998. godine, C ++ je
razvio Bjarne Stroustrup u Bell Labs od 1979. godine, kao produžetak jezika C, jer je želeo
efikasan i fleksibilan jezik sličan C, koji je takođe obezbedio funkcije visokog nivoa za
organizaciju programa. C ++ 20 je sledeći planirani standard nakon toga.
Na mnoge druge programske jezike uticali su C ++, uključujući C #, D, Java i nove verzije C.

Primer koda za programski jezik C++ :

#include <iostream>
using namespace std;

int main()
{
cout << "Hello, World!";
return 0;
}

Programski jezik : C#

C # je višegodišnji programski jezik koji obuhvata jako tipkanje, imperativ, deklarativno,


funkcionalno, generično, objektno orijentisano (zasnovano na klasi) i komponenti orijentisane
programske discipline. Ona je razvila Microsoft u okviru svoje .NET inicijative, a kasnije je
odobrena kao standard Ecma (ECMA-334) i ISO (ISO / IEC 23270: 2006). C # je jedan od
programskih jezika dizajniranih za Common Language Infrastructure. C # je opšti cilj,
objektno orijentisan programski jezik. Njegov razvojni tim vodi Anders Hejlsberg. Najnovija
verzija je C # 7.2, koja je objavljena 2017. godine zajedno sa Visual Studio 2017 verzijom
15.5.

17
Назив матурског рада Име и презиме ученика, IV-1

Programski jezik : Java

Java je kompjuterski programski jezik opšte namene koji je istovremeni, zasnovan na klasi,
objektno orijentisan, i posebno dizajniran da ima što manje mogučnosti za implementaciju.
Namera je da programerima aplikacija "pišu jednom, pokrenu bilo gde" (VORA) što znači da
kompilirani Java kod može da radi na svim platformama koje podržavaju Java bez potrebe za
rekompilacijom. Java aplikacije obično se sakupljaju na bajtode koji se mogu pokrenuti na
bilo kojoj Java virtuelnoj mašini (JVM) bez obzira na arhitekturu računara. Od 2016. godine
Java je jedan od najpopularnijih programskih jezika koji se koriste, posebno za veb aplikacije
klijent-servera, sa prijavljenim 9 miliona programera. Java je originalno razvio James Gosling
u kompaniji Sun Microsistems (koji je otkupio Oracle Corporation) i objavljen 1995. godine
kao ključna komponenta Sun Microsistems 'Java platforme. Jezik dobiva veliku sintaksu iz C
i C ++, ali ima manje objekata na nižim nivoima od bilo kog od njih. Originalne i referentne
implementacione Java kompilacije, virtuelne mašine i biblioteke klasa prvobitno su Sun
objavili pod vlasničkim licencama. Od maja 2007. godine, u skladu sa specifikacijama Java
Communiti Procesa, Sun je oslanjao većinu svojih Java tehnologija pod GNU General Public
License. Drugi su također razvili alternativne implementacije ovih Sun tehnologija, kao što su
GNU Compiler za Java (bitecode compiler), GNU Classpath (standardne biblioteke) i
IcedTea-Veb (dodatak za pretraživače za aplete). Najnovija verzija je Java 10, objavljena 20.
marta 2018. godine, koja sledi Java 9 nakon samo šest meseci u skladu sa novim rasporedom
izdanja. Java 8 je i dalje podržan ali neće biti više bezbednosnih ispravki za Java 9. Verzije
ranije od Java 8 podržavaju kompanije na komercijalnoj osnovi; na primer. od Oraclea nazad
na Java 6 od oktobra 2017. godine (dok oni još uvek "visoko preporučuju da deinstalirate"
pre-Java 8 sa barem Vindovs računara).

Primer koda za programski jezik Java :

class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Prints the string to the
console.
}
}

18
Назив матурског рада Име и презиме ученика, IV-1

5. ЗАКЉУЧАК

Programiranje video igara je vrlo složen , zahtevan i dugotrajan proces. Od početne ideje i
prvog primerka source koda do završnih stadijuma pred izdavanje igre pa i konstantnog
održavanja video igre kroz period održavanja , programeru moraju da održe isti nivo rada i
napora koji ulažu kako bi do korisnika uvek stizala najbolja moguća verzija video igre. Dakle
programiranje je proces stvaranja i konstantne izmene stvorenog , naročito kod video igara
gde sam izgled video igre ne zavisi isključivo od programera već i od mnogo drugih timova
koji su zaduženi za dizajn karaktera , dizajn nivoa , smišljanje priče , pisanje scenaria ,
pravljenja CGI-a , tako da programeri kod izrade video igara imaju naročito težak posao jer
moraju svoj kod , koji predstavlja strukturu igre , da menjaju konstantno i prilagodjavaju
dizajnu i scenariju koji su ostali članovi tima napravili , a svi znamo da je neverovatno težak
posao menjati osnovu u skladu sa onim što se dalje gradi , što nam govori koliko programeri
imaju važnu ulogu u stvaranju ne samo video igara nego i svih programa neophodnih za
funkcionisanje računara. Naravno nisu samo programeri zaslužni za krajnji izgled video igre ,
deo zasluge ide svim ostalim članovima izdavačke kuće od umetnika i scenarista koji
neposredno utiču na dobijanje igre preko vođa i direktora koji organizuju ceo proces razvoja
igre do izdavači i komercijalista koji su zaduženi za što bolje plasiranje video igre na marketu.
Pored svega toga i dalje su programeri najvažniji u celoj priči i upravo zbog toga se ovaj rad i
tema fokusiraju upravo na programiranje video igara.

19
Назив матурског рада Име и презиме ученика, IV-1

ЛИТЕРАТУРА

1.

20
Назив матурског рада Име и презиме ученика, IV-1

Датум предаје: ______________

Комисија:
Председник _______________
Испитивач _______________
Члан _______________

Коментар:

Датум одбране: _____________ Оцена__________ (___)

21

You might also like