Docsity
Docsity

Pripremite ispite
Pripremite ispite

Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u


Nabavite poene za preuzimanje
Nabavite poene za preuzimanje

Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan


Školska orijentacija
Školska orijentacija


Programiranje igara, Beleške od Osnovi programiranja

Programiranje igara

Tipologija: Beleške

2014/2015

Učitan datuma 20.10.2015.

JudgeDreddWar
JudgeDreddWar 🇧🇦

1 dokument

1 / 17

Toggle sidebar

Ova stranica nije vidljiva u pregledu

Ne propustite važne delove!

bg1
^as1 U~enje osnova pravljenja igara
^as2 Bukvar Windows programiranja igara
^as3 Pravljenje mehanizma za igre
^as4 U~enje crtanja osnovne grafike
^as5 Crtanje grafi~kih slika
Po~etak
1
DDeeoo
I
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Delimični pregled teksta

Preuzmite Programiranje igara i više Beleške u PDF od Osnovi programiranja samo na Docsity!

^as1 U~enje osnova pravljenja igara

^as2 Bukvar Windows programiranja igara

^as3 Pravljenje mehanizma za igre

^as4 U~enje crtanja osnovne grafike

^as5 Crtanje grafi~kih slika

Po~etak

DDeeoo I

Upoznavanje video-igara

Prvih godina video-igre su smatrane poslom koji ne donosi profit. Kasnije je industri- ja video-igara izrasla u veoma vaan deo globalnog poslovanja. Video-igre se danas finansiraju na na~in koji se moe porediti sa holivudskim filmovima i ~esto se koriste slavni glumci, glumice, pisci scenarija, muzi~ari i drugi profesionalni zabavlja~i ~iji smo rad nekada mogli da poveemo samo sa filmovima. Zapravo, pravljenje savremene video-igre je umnogome sli~no sa pravljenjem filma. Prave se reklame, testira se tri{te i to samo da bi se finansirala igra. Kada igra pre|e u postupak pravljenja, postoje tim- ovi dizajnera, animatora i programera ñ da ne pominjemo ostale talentovane osobe i kompanije koje u~estvuju u procesu pravljenja video-igre. Za pravljenje savremenih igara treba potro{iti milione dolara i one mogu doneti ogromnu dobit ljudima koji su spremni da ulo`e svoje vreme i novac.

Ovu knjigu verovatno ~itate jer nemate nekoliko miliona dolara koje biste uloili u pro- jekat video-igre. Ili moda elite da gomilu novca potro{ite negde drugde. Bilo kako bilo, moda ipak u vama tinja nada da jedna osoba moe da napravi zanimljivu video- igru bez mnogo novca. Ne samo da je mogu}e ve} moe biti veoma isplativo. Me|utim, video-igre su tradicionalno jedan od najsloenijih i najmisterioznijih oblika programiranja, te su zbog toga obeshrabrile mnoge ljude. Moj cilj je da demistifikujem postupak pravljenja video-igara i da vam pokaem da ne morate biti milioner ili geni- je kako biste se zabavili pravljenjem igara.

Za{to video-igre?

Ako ste strastven igra~ onda mo`da znate odgovor na ovo pitanje. Ipak vredi postaviti pitanje za{to su video-igre toliko popularne. za{to je toliko mnogo ljudi zainteresovano da nau~i kako da napravi svoje igre? Ja mislim da to ima veze sa privla~nom idejom stvaranja sopstvenog sveta za koji su ograni~enja samo va{e programersko znanje i ma{ta. Cilj ove knjige je da obogati znanje i da podstakne ma{tu.

Da biste bolje razumeli za{to je veliki broj ljudi naklonjen video-igrama, razmislite koliko su filmovi popularni u savremenim kulturama. Samo mali broj nas moe da pogleda odli~an film a da u nekom trenutku ne poeli da bude deo filmske scene. Video-igre nam omogu}avaju da napustimo ulogu publike i postanemo akter doga|aja. Sve video-igre vam u osnovi omogu}avaju da u~estvujete u izmi{ljenom svetu ~ak iako se on sastoji samo od svemira i nekoliko vanzemaljaca. Dok napredujete kroz video- igru to je kao da svaki ekran predstavlja prozor u novu realnost koja vas moli da postanete aktivni u~esnik i saznate {ta se sve doga|a.

Dosta je ma{tanja ñ {ta video-igra zna~i nekome ko }e postati programer video-igara? Sa stanovi{ta programera, video-igre su interesantne jer zahtevaju veliki broj razli~itih talenata. Video-igre pred programera postavljaju sve uobi~ajene tehni~ke izazove koji se odnose na pravljenje softvera, a ~esto i vi{e od toga, jer obuhvataju ilustracije, ani- maciju, zvu~ne efekte i muziku. Sve ovo se ne odnosi na temu video-igre, ~esto se za

^as 1.

video-igre prave ~itavi scenariji. Pravljenjem video-igre od po~etka do kraja vi, zapra- vo, postajete moderan renesansni umetnik koji je ekspert u nekoliko disciplina. Na taj na~in }ete, tako|e uspe{no, spojiti razli~ita interesovanja u mediju koji }e biti privla~an za druge ljude. Zbog toga su mnogi od nas zaintrigirani beskrajnim mogu}nostima pravljenja video-igara.

Vrste video-igara

Moda se pitate za{to kada govorim o pravljenju igara te igre nazivam video-igre kada se one igraju na ra~unaru. Mada ne volim da cepidla~im kada je u pitanju tehnologija, vredi ista}i da je video-igra interaktivni elektronski medij za zabavu koji koristi video- ekran kao svoj primarni izlaz. Drugim re~ima, termin video-igra se odnosi na sve igre koje koriste ekran i dojstik ili neki drugi kontroler. Nasuprot tradicionalnom fliperu, na primer, koji mo`ete igrati, ali koji se ne oslanja na kori{}enje video-ekrana. Video- igre se mogu podeliti u tri kategorije: arkadne igre, konzolne igre i ra~unarske igre.

Arkadne igre su video-igre koje su ugra|ene u velika ku}i{ta koja imaju mehanizam za napla}ivanje u koji morate ubaciti novac kako biste mogli da igrate. Arkadne igre pred- stavljaju po~etak video-igara i na njih je 80-tih godina prili~an broj Amerikanaca tro{io te{ko zara|en novac. Arkadne igre ~esto zavise od hardverskih komponenata i jedin- stvenih kontrolnih ure|aja {to ih odvaja od ostalih tipova video-igara. Mada arkadne igre i dalje postoje, one ipak predstavljaju manji deo tri{ta video-igara i nisu bastion inovacija kakav su nekada bile. Da se razumemo, postoje neke veoma dobre nove arkadne igre ali da biste se upoznali sa zaista aktivnim delom tri{ta video-igara morate potra`iti igre koje nisu arkadne.

Konzolne igre su se pojavile vrlo brzo nakon arkadnih igara i predstavljaju ku}ne sis- teme, od klasi~nog Ponga i Atari 2600 sistema do savremenih sistema Sony Playstation 2 i Microsoft XBox. Konzolni sistemi za igranje su napravljeni kao igra~ke ma{ine koje su trebale da istisnu arkadne igre kvaliteta igara. Mi se trenutno nalazimo u situaciji u kojoj digitalne tehnologije za zabavu zauzimaju centralno mesto ku}nih zabava. Microsoft ve} ima razra|ene planove za XBox konzolu i namerava da je pretvori u sveop{ti ure|aj za ku}nu zabavu. Narednih nekoliko godina trebalo bi da budu interesantne, jer treba da se vidi kako }e se konzolne igre uklopiti u tradicionalnu opremu za zabavu.

Ra~unarske igre su poslednja vrsta video-igara koja se pojavila, jer je personalnim ra~unarima bilo potrebno najvi{e vremena da dostignu tehni~ke mogu}nosti pomo}u kojih bi mogli da urade interesantne stvari sa grafikom i zvukom kako bi igre bile zan- imljive. Ra~unarske igre danas predstavljaju ogroman deo industrije video-igara i mogu se nositi sa popularno{}u i cenom konzolnih igara. Interesantno je da najpopu- larnije igre imaju verzije za konzole i za ra~unare, te se mo`ete odlu~iti da li }ete koris- titi ra~unar ili }ete se posvetiti konzolnim sistemima za igranje. Konzola XBox je jedin- stvena me|u konzolama jer ima zajedni~ku softversku platformu sa ra~unarskim igra- ma. Ja ovde govorim o DirectXu, Microsoftovom alatu koji je prvenstveno namenjen presonalnim ra~unarima, a koji se sada preneo i na XBox.

U~enje osnova pravljenja igara

Iznala`enje osnovne ideje

Najvaniji korak prilikom pravljenja video-igre je odre|ivanje njene osnovne ideje. Da li je to puca~ka igra, lavirint, igra u kojoj se prati glavni lik (engl. role-playing game ñ RPG), vonja, igra re{avanja zagonetki ili neka kombinacija? Da li zaista imate origi- nalnu ideju koja se sasvim ne uklapa u neki od ovih anrova? Da li je cilj osloboditi nekoga, elimisati negativce ili istraiti nepoznatu okolinu? U koji vremenski period je sme{tena radnja video-igre, odnosno da li se mo`e smestiti u neki? To su samo neka od pitanja na koje morate dati odgovor kada razvijate osnovnu ideju za novu video-igru. Razmislite i sve zapi{ite. Zapi{ite sve {to vam padne na pamet jer ideje iskrsavaju i zab- oravljaju se, a ni{ta od tih ideja ne bi trebalo izostaviti. To {to }ete se naterati da for- malizujete ideje i {to }ete ih zapisati prouzrokova}e da vi{e razmi{ljate i da ras~istite mnoge nedoumice.

Ukoliko imate problema prilikom iznalaenja ideje za video-igru, razmislite o uticaji- ma nekih popularnijih igara. Mnoge igre se baziraju na filmovima, neke na istorijskim doga|ajima, dok neke za temu imaju sportove. Neke igre su toliko popularne da su postale tam filmova (Tomb Raider, Final Fantasy, Resident Evil i tako dalje). Ve}ina ra~unarskih igara su modeli sveta koji nas okruuje, bilo zami{ljenog ili stvarnog, te ne morate dalje traiti ideju. Naro~ito filmovi mogu da poslue pri stvaranju scenarija za video-igru ñ pazite samo da ne pozajmite previ{e.

Upamtite da, bez obzira na inspiraciju, va{a igra mora da bude zabavna. Sveukupni cilj svake igre, bez obzira na lepu grafiku i odli~an zvuk, jeste maksimalna zabava. Ko ne bi eleo da ceo dan provede trae}i na~in na koji }e se najvi{e zabaviti? To je, moj pri- jatelju, prava draprogramiranja video-igara. Ako va{a igra nije zabavna onda je odli~na grafika, zvuk i glasovi poznatih li~nosti ne}e spasiti. Neke od najboljih igara svih vremena su imale lo{u grafiku i zvuk mereno dana{njim standardima, ali koli~na zabave koju su donosile se ne moe izbrisati.

Dobar primer neverovatno jednostavne igre koja je neverovatno zabavna je klasi~na igra Combat za konzolu Atari 2600. Ova igra se dobijala uz ve}inu konzola Atari 2600 te je ve}ina igra~a mogla da se oproba. Video-igra Combat je bila osaka}ena tehno- lo{kim ograni~enjima tog vremena {to se vidi iz njene grafike i zvuka. Me|utim, plan igre Combat je odli~an i po mom mi{ljenju se moe nositi sa savremenim igrama. Kada razmislite, jedan aspekt programiranja video-igara koji se nije mnogo promenio tokom godina jeste korisni~ki unos. Istina, postoje ekskluzivniji dojstici i novi dodaci, kao {to je dodatak kojim se moe osetiti otpor prilikom pokreta glavnog junaka tokom igranja, ali na kraju dana sve to }e postati samo interfejs koji drite u rukama. Ovakvo obja{njenje poma`e da shvatimo za{to su arkadne igre koje su napravljene 1982. godine i dalje popularne, iako su tehni~ki inferiorne sa savremenim igrama u gotovo svakom pogledu. Dizajneri tih igara nisu imali luksuznu 3D grafiku i CD kvalitet zvuka, te su morali da se posvete na~inu na koji njihove igre rade.

Ono {to elim da istaknem jeste da prilikom pavljenja video-igre morate dati prioritet zabavi. Po{to izna|ete osnovnu ideju za video-igru i po{to odlu~ite da }ete je u~initi zabavnom po svaku cenu, moete se posvetiti njenom scenariju.

U~enje osnova pravljenja igara

Smi{ljanje scenarija

Nisu li scenariji samo za filmove i komplikovane sineasti~ke igre? Apsolutno ne. ^ak i kada je va{a igra jednostavna akciona igra sa nekoliko likova, pravljenje scenarija vam pomae da uspostavite raspoloenje i okolinu kao i da smislite kreature koje }e nastan- jivati svet video-igre. Sme{tanje igre u kontekst pri~e tako|e doprinosi pribliavanju igra~a njenom svetu. Se}ate li se klasi~ne igre Pong koju smo pominjali na po~etku lek- cije? Iako je ta igra postigla uspeh a da nije imala dobar scenario, ona bi svakako bila mnogo interesantnija da je napravljena tako da iza nje stoji nekakva pri~a. Moda bi lopta mogla da bude atom koji {vrlja unaokolo u o{te}enom nuklearnom reaktoru i ako ode sa ekrana onda }e se sve istopiti. Vama i va{em prijatelju je dat zadatak da pomer- ate ìatomske deflektoreî i da ne dozvolite da atom pobegne. Kada razmislim, mo`da je za Pong bolje da bude samo par linija i bela ta~ka, ali mislim da ste shvatili {ta sam imao na umu.

Ako se ozbiljno pozabavite scenarijom igre moda biste mogli da napravite skice. Skice se ~esto koriste pri pravljenju filmova i predstavljaju grubi izgled scene. Skice su vaan vizuelni alat jer vam pomau da zamislite igru na osnovu scenarija. Skice vam pomau da iz vida ne izgubite nit pri~e kada budete preokupirani programiranjem. Na slici 1.1 vidite niz skica popularnog filma koji moda prepoznajete. Moete li pogoditi koji je to film?

Predajete se? Ovo je moja prezentacija filma ìRaljeî (Jaws), verovatnog mog najomil- jenijeg filma svih vremena. Kao {to vidite na slici, ~ak i moje ograni~ene umetni~ke sposobnosti mogu preneti osnovnu temu. Naravno, skica za pravu igru ili film ne bi bilo samo ~etiri.

Vizualizacija grafike

Moja umetnost skiciranja je odli~an uvod u slede}i vaan deo pravljenja igre: grafiku. Iako video-igre mogu biti izuzetno zabavane ~ak i kada nemaju kitnjastu grafiku, svaku igru moete zna~ajno unaprediti grafikom koju koristite. Vano je odlu~iti se za nivo grafike koji }e odgovarati va{im ciljevima i resursima. Nekada su morale da se u obzir uzmu grafi~ke mogu}nosti ra~unara ali su danas ~ak i slabiji ra~unari dovoljni za video- igre srednje i umerene sloenosti. Ipak, morate se drati 256 boja kako biste igre u~inili brim ako se igraju na starijim ra~unarima. Zapamtite, {to vi{e boja koristite u video- igri to }e ra~unaru biti potrebno vi{e vremena da manipuli{e i iscrta slike video-igre.

^as 1

Slika 1. ^ak i niz skica mo`e preneti pri~u koja se lako prepoznaje.

Napomena Semplovanje se odnosi na postupak pretvaranja audio signala u digitalni format koji se mo`e zapisati i reprodukovati na ra~unaru. Vi{e o semplovanju }ete nau~iti u Lekciji 13.

Muzika se u video-igrama ~esto obra|uje na druga~iji na~in od zvu~nih efekata. Iako je muziku mogu}e snimiti kao semplovan zvuk, ipak zauzima mnogo prostora. Zbog toga je MIDI (Musical Instrument Digital Interface) muzika odli~na alternativa i pred- stavlja standard za reprodukovanje muzi~kih kompozicija na ra~unarima. Za razliku od semplovane muzike, MIDI muzika zahteva navo|enje nota i njihovo pridruivanje virtuelnim muzi~kim instrumentima. Pravljenje MIDI muzike moe biti veoma te{ko ako nemate muzi~ko znanje ali moete prepraviti postoje}u MIDI muziku tako da odgovara va{im potrebama. Na sre}u, sve {to je potrebno da znate u ovoj etapi pravl- jenja video-igre jeste da u obzir treba da uzmete pravljenje koda koji moe da repro- dukuje MIDI muziku.

Kontrole za igranje video-igre

Kontrole koje se koriste za interakciju sa igra~em su veoma vaan deo dizajniranja video-igre. Veoma je vano podrati {to je mogu}e vi{e ulaznih ure|aja (mi{, tas- tatura, dojstik i tako dalje) tako da igra~i koji daju prednost nekim ure|ajima mogu da ih koriste. Igra~i koriste {irok spektar kontrola, a va{ je posao da odlu~ite koje od njih vredi podrati i kako }e se koristiti za igranje. Nije na odmet podrati vi{e takvih ure|aja.

Najmanje {to moete uraditi jeste podr{ka za mi{a i tastaturu. Tako|e moete planirati da podrite dojstik ako to ima smisla za video-igru. Na vama je da odlu~ite da li }ete podrati jo{ neke ure|aje pored ova tri. Neki ulazni ure|aji se ne}e mo}i koristiti u va{oj video-igri pa je dono{enje odluke, u tom slu~aju, veoma lako. Pored volana, {lemova i rukavica postoje mnogi drugi sofisticirani ulazni ure|aji koje moete podrati ako toelite. Ko zna kakvi }e se sve novi ure|aji pojaviti.

Napomena Game Pad radi sli~no dojstiku te zbog toga ne uti~e mnogo na programiranje video-igre. U igri u kojoj se moe koristiti dojstik, verovatno se moe koristiti i Game Pad.

Re`imi igranja

Poslednje o ~emu treba razmisliti, a ti~e se sveukupnog dizajna video-igre, su reimi igranja. Ho}e li to biti igra za jednog igra~a, dva igra~a ili }e to biti mrena igra koju }e igrati veliki broj igra~a? Ako vi{e igra~a moe da igra video-igru, da li se oni me|usobno takmi~e, da li u igri pomau jedan drugome ili i jedno i drugo? Ove va`ne

^as 1

odluke imaju veliki uticaj na zabavnost igre i tehni~ke probleme prilikom pravljenja igre. Istina, mrena igra za vi{e igra~a donosi ozbiljne tehni~ke probleme na nivou pro- gramiranja. Neelim da vas odvratim od pravljenja mrenih igara;elim samo da naglasim da je to prili~no napredno polje programiranja.

Da biste bolje razumeli {ta sve morate uzeti u obzir prilikom odre|ivanja reima igara, dozvolite mi da se posluim primerom. Napravio sam jednostavnu video-igru Combat Tanks koja li~i na staru Atari 2600 video-igru Combat. Prilikom pravljenja igre pred- video sam borbu izme|u dva igra~a. Tada kada sam pravio igru, mene nije zanimalo pravljenje podr{ke za mreu, jer je to tada bilo veoma te{ko programirati, tako da su dva igra~a na istom ra~unaru koristila tastaturu kako bi upravljala tenkovima. Nakon testiranja se ispostavilo da bi i igra za jednog igra~a tako|e bila zabavna. Bio sam u zabludi da }e na ra~unaru biti lako dizajnirati tenk koji moe da razmi{lja i reaguje kao igra~. Tada sam bio veoma naivan.

Veoma brzo sam nau~io da je ulivanje inteligencije protivnicima koje kontroli{e ra~unar veoma nezgodan posao. Sve strate{ke odluke koje mi ljudi pravimo dok igramo veoma te{ko se usa|uju u protivnike koje kontroli{e ra~unar. Zbog toga sam ja smislio trik. Umesto da postoji samo jedan inteligentan protivnik, ja sam se odlu~io za glupu armiju protivnika. Rezultat je bila igra sa reimom za dva igra~a i reimom za jednog igra~a koji treba da uni{ti sve protivnike. Igra za jednog igra~a je i dalje bila dovoljno zabavna, a ja nisam morao da se nosim sa ìu~enjemî ra~unara da bude prepreden koliko i ljudsko bi}e.

Napomena Iako je moja igra sada stara gotovo deset godina, jo{ uvek je zabavna. Ako elite da je probate onda je moete preuzeti sa mog Web sajta na adresi http://www.michaelmorrison.com/compgames.html. zapravo, ovu igru sam napravio sa prijateljem Rendijem Vimsom (Randy Weems), koji mi je ulio ve}inu znanja o programiranju igara.

Molim vas da shvatite da se ja ne zalaem za laka re{enja kada govorim o odre|ivanju reima igranja kao {to sam to nekada radio. Ja samo elim da istaknem da postoji mnogo na~ina da se dobijeeljeni rezultat. Za mene je najjednostavnije re{enje koje dovodi do dobrih rezultata bilo dovoljno, jer mi je omogu}ilo da u video-igru unesem interesantne neprijatelje kao {to su vojnici, bombarderi i helikopteri. Kreativnost vas ~esto mo`e dovesti do boljih rezultata nego re{avanje tehni~kih problema.

Objektno orjentisano programiranje i

video-igre

Po{to imate nekakvo iskustvo sa programskim jezikom C++ onda ste, bez sumnje, ~uli za objektno orjentisano programiranje. Objektno orjentisano programiranje, odnosno OOP, je programerska tehnika koja delove programa tretira kao objekte, nasuprot delovima programskog koda. OOP je od velike koristi u programiranju igara jer ih je

U~enje osnova pravljenja igara

Igre koje se odvijaju u dalekom svemiru su objekti modela koji postoje u nekoj vrsti virtuelnog sveta. Znaju}i da su igre modeli svetova onda moete uspostaviti vezu po kojoj ve}ina stvari u video-igri (pejzai, kreature i tako dalje) odgovara stvarima u tim svetovima. Kada jednom igru prevedete u kolekciju ìstvariî onda moete koristiti tehnike objektno orjentisanog programiranja. Sve ovo je mogu}e jer se stvari lako mogu preto~iti u objekte u okruenju objektno orjentisanog programiranja.

Kako biste bolje razumeli o ~emu govorim, razmotrite objektno orjentisani dizajn jed- nostavne avanture. Objekat koji predstavlja svet ove igre moe sadrati informacije kao {to su mapa tog sveta i slike koje predstavljaju vizuelizaciju te mape, kao i vreme. Svi drugi objekti u igri bi sadr`ali informacije o poziciji kojima se opisuje gde se svet nalazi. Ove informacije bi mogle da budu koordinatne vrednosti kojima se odre|uje pozicija objekata na mapi sveta.

Objekat za glavnog junaka u igri obuhvataju informacije kao {to su ivotna energija i predmeti koji se skupljaju tokom igre (oruija, lampe, klju~evi i tako dalje). Sama igra bi sa glavnim junakom komunicirala tako {to bi mu govorila da se kre}e u razli~itim pravcima, a sve to na osnovu unosa korisnika. Predmeti koje bi glavni junak nosio sa sobom se tako|e mogu napraviti kao objekti. Na primer, objekat lampe bi verovatno bele`io koliko je goriva ostalo u lampi i da li je uklju~ena ili ne. interakcija sa lampom bi obuhvatala uklju~ivanje i isklju~ivanje. Objekat lampe bi bio dovoljno pametan da smanji potro{nju goriva kada je lampa isklju~ena.

Kreature u video-igri bi bile napravljene na osnovu jedne klase koja opisuje op{te karakteristike svih kreatura. Te karakteristike bi mogle da budu `ivotna energija, agre- sivnost i koli~ina {tete koju nanose kada se upustite u borbu sa njima. Zatim bi se napravili objekti specifi~nih kreatura koje bi bile pu{tene u virtuelni svet video-igre. Objekti kreatura i glavnog junaka se svi mogu izvesti iz iste klase organizma. Za raz- liku od objekta glavnog junaka, kojim upravlja korisnik, objekte kreatura bi kon- trolisala nekakva vrsta inteligencije koja bi bila programirana u video-igru. Na primer, agresivnije kreature bi uvek mogle da jure glavnog junaka kada se zajedno sa njim nalaze na ekranu, dok bi pasivne kreature imale tendenciju da se sakrivaju i izbegava- ju kontakt. Mogli biste da napravite podklase kreatura kako biste pobolj{ali glavnu kreaturu daju}i joj jedinstvene sposobnosti, kao {to su recimo, mogu}nost da leti, pliva ili da bljuje vatru. Na slici 1.3 vidite kako bi se mogle organizovati klase u ovakvoj hipoteti~noj avanturi.

U~enje osnova pravljenja igara

Slika 1. Klase u hipoteti~koj avanturi su igra|ene jedna iznad druge kako bi uspostavile virtuelni svet objekata.

Nemojte zaboraviti da su klase {abloni objekata, {to zna~i da su klase koje vidite na slici napravljene tako da predstavljaju {emu za pravljenje objekata video-igre. Me|utim, objekti ne mogu da postoje u virtuelnom svetu sve dok ih ne napravite i ne omogu}ite njihovu me|usobnu interakciju. Ponovi}u, klasa je modla za kola~i}e, a sami objekti su kola~i}i. Dakle, pravljenje video-igre pomo}u objektno orjentisanog programiranja prvo uklju~uje pravljenje klasa za razli~ite ìstvariî u video-igri a zatim pravljenje objekata pomo}u tih klasa.

Lepota objektno orjentisanog pristupa pravljenju video-igara jeste da igra vi{e ili manje dobro radi kada se sve postavi na mesto. Drugim re~ima, svaki objekat je odgovoran za obavljanje svog dela posla tako da sama igra ne mora da se mnogo brine {ta neki od objekata radi. Video-igra samo obezbe|uje okvir u kojem postoje objekti. Ovaj okvir se u osnovi sastoji od prozora u kojem se crtaju objekti i petlje koja obave{tava objekte da je neko vreme proteklo. Ta petlja bi iziskivala odre|ivanje pravca u kojem bi se krea- ture kretale i da li bi trebalo da napadaju ili bee, a za glavnog junaka bi trebalo obra- diti unos korisnika. Ono {toelim da istaknem jeste da su objekti nezavisni entiteti koji znaju da se o sebi staraju.

Prakti~nija korist objektno orjentisanog programiranja u video-igrama se odnosi na ponovno kori{}enje koda. Pretpostavimo da ste napravili avanturu o kojoj smo govorili i da `elite da napravite sli~nu igru koja }e se odvijati u kosmosu. Umesto da pravljen- je igre po~nete od nule, mogli biste da objekte koje ste napravili za prvu igru iskoris- tite za novu igru. Istina je da bi neke izmene trebalo napraviti, ali bi ve}ina tih izmena mogle da se naprave pravljenjem novih podklasa umesto da se ponovo prave nove klase. Ponovno kori{}enje koda je svakako najve}a dobit kori{}enja objektno orjenti- sanog programiranja pri pravljenju video-igara.

Upoznavanje alatima za pravljenje

video-igara

Pre nego {to se pozabavimo bilo kojim projektom pravljenja video-igara, veoma je va`no napraviti skup alata koje }ete koristiti prilikom pravljenja video-igre. Iako pos-

toji veliki broj alata koji bi se lako uklopili u pravljenje slo`ene video-igre, najbitniji alati su:

l kompajler

l grafi~ki alati

l alati za obradu zvuka i muzike.

^as 1

neki muzi~ki sastav. Intuitivniji pristup kori{}enja MIDI alata jeste priklju~ivanje muzi~ke tastature na kojoj se odsvira melodija. Ako va{a zvu~na kartica ima MIDI port, a najve}i broj kartica ga imaju, ono {to odsvirate bi}e zabeleeno pomo}u MIDI softvera. Nakon toga moete menjati muziku kako biste je prilagodili potrebama.

Rezime

Iako niste uposlili ruke oko pisanja koda, ova lekcija je posluila kao polazna ta~ka za u~enje osnova programiranja video-igara. Cilj ove lekcije je da vam pomogne da usmerite panju na osnovne ideje pri pravljenju video-igre na konceptualnom nivou. Upoznali ste se sa osnovnim konceptima dizajniranja video-igre koji su neophodni kako biste krenuli putem pravljenja igara. Nau~ili ste pone{to o objektno orjentisanom programiranju (OOP) i zbog ~ega je va`no za programiranje video-igara. Lekciju sam zavr{io uvodom u razne alate koje obi~no koriste programeri video-igara.

Lekcija 2, ìBukvar programiranja igara u Windowsuî, uvodi vas u programiranje u Windowsu sa blagim naglaskom na programiranje video-igara. U~i}ete osnove Windows API-ja i {ta moe da ponudi programeru igara. Jo{ je vanije to {to }ete napraviti konstrukciju Windows aplikacije koja }e predstavljati osnovu igara koje }ete napraviti u ostatku knjige.

Pitanja i odgovori

PP (^) Zbog ~ega je ekranska rezolucija va`na za video-igre?

OO Ekranska rezolucija je fizi~ka veli~ina ekrana, ne u in~ima, ve} u pikselima. Ve}ina monitora je danas pode{ena na rezoluciju 800x600 ili ve}u. rezoluciju koju koristite u Windowsu moete proveriti tako {to }ete na radnu povr{inu kliknuti desnim tasterom mi{a i {to }ete iz kontekst-menija odabrati Properties. U okviru za dijalog Display kliknite karticu Settings pa }ete u donjem delu okvira za dijalog videti rezoluciju. Razli~ite rezolucije moete pode{avati tako {to }ete pomerati kliza~. Video-igre koje }ete napraviti u knjizi ne menjaju rezoluciju ve} koriste odre|enu veli~inu ekrana. PP (^) Da li treba da ula`em u alate za programiranje?

OO Odgovor na ovo pitanje umnogome zavisi od toga koliko ozbiljno }ete se baviti programiranjem video-igara i od toga koliko novca elite da utro{ite. Sasvim je sigurno da dobar alat za programiranje moe odre|ene delove postupka pravljenja video-igre u~initi lak{im. Me|utim, ja vam preporu~ujem da neko vreme radite sa besplatnim ili jeftinim alatima tako da shvatite vrednost sofisticiranijih alata. Po{to sam sve ovo rekao, vi verovatno ne}ete investirati novac u kvalitetna okru`enja sa C++ kompa- jlerom kakvo je Microsoft Visual C++. Ako postoji alat koji mogu da

^as 1

preporu~im za kupovinu, onda je to kompajler, a razlog je {to veoma lako moete na}i veoma kvalitetne besplatne programe za rad sa grafikom ili zvukom. Molim vas da pro~itate Dodatak B u kome se nalaze informacije o razli~itim kompajlerima i razvojnim okruenjima koje mo`ete koristiti kao programer video-igara u Windowsu.

Radionica

Radionica je osmi{ljena tako da vam pomogne da predvidite mogu}e probleme, proverite {ta ste nau~ili i da u praksi po~nete da primenjujete ono {to ste nau~ili. Odgovori na pitanja se mogu na}i u Dodatku A, ìOdgovori na pitanjaî.

Pitanja

  1. Kakve vrste video-igara postoje?
  2. [ta je najva`nije uzeti u obzir prilikom pravljenja video-igre?
  3. ^emu slu`i niz skica?
  4. Kakav je najve}i kvalitet zvuka koji mo`ete koristiti u video-igrama?

Ve`be

  1. Igrajte neke igre i dobro razmislite kako se mogu podeliti u grupe objekata. Tako|e obratite pa`nju na to kako su zvuci i muzika uklopljeni u plan video- igre i kako su uskla|eni sa interakcijama objekata.
  2. Napravite hijerarhiju klasa za va{u video-igru, sli~nu onoj koja je napravlje- na za hipoteti~ku avanturu koju smo razmatrali u lekciji.

U~enje osnova pravljenja igara