Professional Documents
Culture Documents
Programming Assets For Gaming Industry in Java
Programming Assets For Gaming Industry in Java
Elektronski fakultet Ni
Petar Ljubi
296/15
Ni, 2016.
Contents
Uvod .............................................................................................................................................................. 3
Java je previe spora ................................................................................................................................. 3
Java ima curenje memorije ....................................................................................................................... 4
Evolucija jave u video igrama Mobilni telefoni .......................................................................................... 4
Konkurencija Javi kod kreiranja igara za Android OS .................................................................................... 5
Primer igre u Javi Match The Color ............................................................................................................ 6
Overview / Gameplay ............................................................................................................................... 6
Interface .................................................................................................................................................... 6
Home ..................................................................................................................................................... 6
Game ..................................................................................................................................................... 8
Finish ................................................................................................................................................... 10
Leaderboard ........................................................................................................................................ 11
Kljuna biblioteka Android Property Animation ...................................................................................... 11
Uvod
Java jeste jedan od najpoznatijih i najpopularnijih objektno orijentisanih programskih jezika, koji
podravaju vie razliitih platformi, jezik za lak i jednostavan razvoj aplikacija uz dobru
dokumentaciju. Ovaj programski jezik je podran od strane Sun Microsystems-a, i omoguava da
uz malu cenu razvoja programa sa mogunostima korienja i ugradnje drugih jezika (na primer
C-a i C++-a) stvorimo razliite programe razliitih namena.
Velika grupa programera javu kao razvojno okruenje za pravljenje igara baca u senku drugih,
prilagodljivijih programskih jezikao kao to su C, C++, Assembler i drugi i to zbog sledeih
stavki:
Vredno je rei da je veina gore navedenih konstatacija pogrena. Ovakvi zakljuci i uverenja,
odnosno predrasude o javi kao jeziku za programiranje igara nastali su kasnih devedesetih
godina prolog veka kada je ovaj programski jezik i njegove biblioteke bio manje sofisticiraniji i
sporiji. Java korisnici i programeri su zasluni za kreiranje razliitih novih alata, online podrke,
kao i velikog broja primera kodova. Konacno, gejmerski forumi prepoznaju javu kao jezik za
pravljenje igara dve hiljaditih godina (2006 - 2009) i time otvaraju put ovom programskom
jeziku. U nastavku teksta dati su argumenti na svaku od stavki koju programeri cesto daju kao
razlog ne korienja jave:
Kako god, veina misli da objekat koji vie nije potreban programu nije pravovremeno uklonjen
pomou garbage collector-a. Ovo postaje problem kada program drii kreirani novi objekat i
zahteva jo memorije, i eventualno puca zbog dostignutog limita u memoriji.
Ovaj problem je konsekvenca loeg programiranja, od kako garbage collector moe da uradi svoj
posao samo kada je objekat u potpunosti dereferenciran, to znai da program vie ne referencira
nita iz tog objekta.
Ipak, java doivljava svoj vrhunac u operativnom sistemu koji je veoma uspeno zamenio sada
ve prevazidjeni Symbian 2009- e godine. Android operativni sistem, koji je razvio Google, ve
godinama je najrasprostranjeniji i najkorieniji operativni sistem za mobilne telefone,
televizore, pametne satove i automobile na svetu. Kljuna injenica jeste da je vie od 90 %
aplikacija za Android koji se nalaze na Google Play Store-u napravljeno u Javi.
Od svih gore navedenih reenja najveu pretnju Javi u kreiranju igara predstavlja razvojno
okruenje Unity. Unity je doista trenutno vodee razvojno okruenje za kreiranje sloenih i
robusnih igara ne samo za Android, ve i za iOS i Windows Phone operativne sisteme. Razlog
tome jeste neuporedivo bolja podrka i alati za rad sa grafikom karticom uredjaja, kao i
mogunost kreiranja aplikacije za sva tri operativna sistema iz istog koda pisanog u C#-u.
Pojam igra je robusna stvar, pod igrom se podrazumeva aplikacija pod imenom Subway surfers,
koja je jedna od najpoznatijih igara za mobilne telefone i raena je u Unity okruenju, ali se
podrazumeva i aplikacija pod nazivom aa, iji je dizajn veoma jednostavan i u kojoj je jedini
zadatak korisnik klik na ekran. Uzimajui u obzir same projekte / igre koje treba realizpovati i
njihovu kompleksnost, treba pravilo prosuditi i odluiti koje razvojno okruenje koristiti. U
koliko se u aplikaciji koriste 3D modeli koji se kreu veoma brzo i utiu jedan na drugog, gde je
bitno da programer vodi rauna o fizici kretanja svakog objekta, definitivno je reenje koristiti
Unity. Sa druge strane, u koliko se radi o igri u kojoj cirkuliu 2D objekti sa jednostavnim
fizikama dvo dimenzionalnog kretanja, reenje e verovatno biti Java i Android Studio.
Zakljuak je da je sve na timu programera i njihovom project manager-u koji treba da procene
teinu i zahteve samog projekta.
Overview / Gameplay
MTC je mini igrica za Android operativni sistem. Cilj igre je da korisnik u pravom trenutku
pogodi odredjeni simbol. Simboli se kreu sa vrha ekrana ka odredjenoj zoni. Kada se simbol
nadje u toj zoni, korisnik treba da tapne na dugme koje predstavlja taj simbol. Igra se zavrava
ako simbol izadje iz zone a korisnik nije pritisnuo dugme ili je tapnuo na pogresno dugme. Kako
vreme prolazi igra postaje sve tea. Kada korisnik klikne prerano, prekasno ili na pogresan
simbol gubi ivot. Cilj igre je pogoditi to vie simbola. Simboli mogu biti razliiti.
Teina igre raste tako to se brzina dolaenja simbola poveava na svakih 5 sekundi i tako to se
na svakih 10 sekundi pojavljuje jo jedan novi simbol. Inicijalno su prisutna prva tri dugmeta u
donjem redu na sredini, nakon 10 sekundi se pojavljuju etvrto i peto sa leve i desne strane.
Nakon 10s ekundi se pojavljuju esto, sedmo i osmo iznad prva tri, i, na kraju, deveto i deseto
iznad etvrtog i petog. Na svakih 3.4 sekunde se elementi ubrzavaju.
Interface
Home
Ovo je pocetni ekran aplikacije. Sastoji se od: Logoa igrice ispod koga se nalaze dva dugmia:
Play i Leaderboard. Na vrhu ekrana, desno, se nalazi dugme music (on/off).
Dugme Leaderboard pokree leaderboard ekran ukoliko je korisnik nekada ranije pristupio ovom
ekranu, u suprotnom se otvara Change name popup.
Game
Prilikom prvog pokretanja korisniku se prikazuje tutorial koji ga obavetava na koji nain se igra
ova igra. Tutorial se sam sklanja nakon 5 sekunde ili klikom na isti. Tutorial se pokazuje
prilikom svakog pokretanja sve dok korisnik ne napravi skor vei od 3. Nakon sklonjenog
tutoriala kree odbrojavanje nakon ega poinje igra.
U gornjem desnom uglu se nalazi dugme za pauziranje igre a u levom back dugme koje korisnika
vraa na poetni ekran. U sredini se nalazi broj pogodjenih simbola. Na dnu ekrana se nalaze
dugmii koji predstavljaju simbole na koje korisnik treba da tapne kad se taj simbol nadje u
oznaenoj zoni. Iznad ovog dela se nalazi pomenuta zona.
Klikom na pauzu igra se pauzira i otvara se popup koji sadri dugmie:
- Resume,
- Home,
- Music On/Off.
Ako korisnik pogrei boju, klikne prerano, prekasno ili uopte ne klikne izlazi dialog sa porukom
ta je korisnik uradio pogreno. Taj dialog stoji tu dok se ne tapne na njega ili dok ne prodju dve
sekunde nakon ega se pojavljuje dialog koji korisniku nudi da odgleda video i nastavi igru ili da
izgubi. U koliko video reward ne postoji odmah se prelazi na sledei ekran.
Finish
Ovaj ekran se otvara nakon zavrene igre. Na njemu se prikazuje ukupan broj pogodjenih
simbola. Ispod rezultata prikazana je i pozicija korisnika na leaderboardu ili znakovi pitanja ako
korisnik jo uvek nije uneo korisniko ime, ako proba da otvori Leaderboard, a nije registrovan
izlazi popup Change Name za registraciju. Klikom na ovaj deo otvara se Leaderboard ekran koji
je opisan dole. Na kraju ekrana je footer koji sadri dva dugmia share i new game. Kada
korisnik napravi highscore pored rezultata e stajati i ova oznaka.
Leaderboard
Sastoji se od liste rezultata sa imenima korisnika. Na dnu ekrana se nalazi dugme Change name
koje korisniku omoguava da promeni ime (otvara se popup za promenu imena). Iznad ovog
dugmeta se nalazi deo gde je prikazana pozicija i rezultat korisnika koji je registrovan na tom
uredjaju.
Izvedena klasa koja ima veliku primenu u igrama jeste ObjectAnimator, naroito u sprezi sa
elementima koji se iscrtavaju na ekranu. U igri Match The Color ti elementi predstavljaju loptice
i rupu u koju upadaju loptice. Object animator nam koristi da animiramo poziciju , scale i alpha
vrednost elementa i da na odredjenoj uestalosti pratimo trenutnu lokaciju svakog elementa.
Zakljuak