Pored opisa rada u .NET okruženju, Adobe Flash-u i Actionscript-u, ovaj blog baviće se i razvojem igara (game development). Ova oblast biće podeljena na više celina koje ćemo obraditi, a tehnologije koje ćemo koristiti pored programskog jezika C# & XNA Framework-a, biće i programski jezik Actionscript sa Adobe Flash-om. Tema je dostupna svima, a budućim članovima Microsoft Student Tech Club-a u okviru FONIS-a kojima ću držati predavanja “Osnove C# kroz razvoj igara”, je obavezno štivo.
U ovom uvodnom postu, biće u kratkim crtama objašnjene uvodne osnove razvoja igara, neophodne svakom ko želi da počne ili se već bavi ovom materijom.
Napomena: Ako ste početnik u programiranju i ne budete razumeli neke od pojmova koje budem pomenuo u ovom i narednim postovima, opustite se i ne brinite, biće detaljnije objašnjeni kasnije (ako ste nestrpljivi možete mi se obratiti na email koji imate na stranici Kontakt).
Ih, zašto baš igre?
Industrija igara ili interaktivne zabave je multi-milijarderska industrija sa ogromnim tržištem koje se iz godine u godinu povećava. Sa pojavom društvenih mreža i inovatinih mobilnih uređaja ovo tržište je postalo još primamljivije, a sa novim razvojnim tehnologijama i većim brojem različitih framework-a stvaranje novih igara je postalo još jednostavnije.
Bitno je napomenuti da su igre postale jedan od primarnih načina relaksacije čoveka i izvor zabave i opuštanja, čineći ga tržištem sa ogromnim potencijalom.
Isto to tržište kod nas je potpuno nerazvijeno. Naravno nije sve tako lako kao što vam se sada čini iz ovog posta, mora da se uloži puno truda i strpljenja, ali nije preterano naporno i teško.
Razvoj igara u Srbiji
Razvoj igara u Srbiji praktično ne postoji.
Jednostavno, industrije igara nema, kvalitetne ideje ne postoje, piraterija je i dalje na visokom nivou, možda i ima par grupa programera koji su i napravili neku igru, ali ništa grandiozno i sve se može na prste izbrojati.
Pre par godina na raznim forumima pokretane su teme vezane za našu industriju igara, diskutovalo se, svi su se slagali da bi to trebalo zaista da krene i na kraju, kao što se može primetiti, nismo se pomerili sa nule. Pre nekoliko godina imali smo priliku da probamo domaću igru Alien Dominion, solidno ostvarenje, ali o igri se više ne priča.
Slede linkovi ka jedine četiri grupe domaćih programera koje su trenutno ”preostale” i ’’funkcionišu’’:
http://www.gameyus.com
http://www.paprikari.com
http://www.eipix.com
http://www.technetiumgames.com
Za razliku od Srbije, u okolnim zemljama regiona sve vrvi od poznatih naslova (uzmimo samo Serious Sam kao primer).
Većina svetskih softverskih kompanija smatra Srbiju kao kadrovski izuzetno obdarenu zemlju, softverski stručnjaci iz Srbije su veoma cenjeni, a mi smo jedina zemlja u regionu koja nema nikakvu industriju igara (ako izuzmemo Albaniju čija se cela IT industrija vrti oko kockarnica).
A tema je i dalje veoma aktuelna i zanimljiva našim mladim entuzijastičnim softver developerima.
Osnovna razlika između poslovnih aplikacija i igara
Načelno, ova dva tipa aplikacija jesu slična. Ta sličnost se sastoji u interakciji sa korisnikom u smislu ’’šalje zahteve’’ – ’’generiše odgovor’’. Spolja je zaista moguće primetiti tu sličnost.
Međutim, struktura unutar aplikacija je potpuno drugačija. Navešćemo ključne dve razlike.
Prva razlika predstavlja činjenicu da se pri pokretanju igre, aktivira jedna petlja (game loop) koja se posle stalno ponavlja i koja se sastoji od niza metoda koje se konstatno pozivaju pri svakom krugu petlje dok se igra ne isključi.
Poslovne aplikacije ne rade ništa dok korisnik ne klikne na neki objekat ili sam pokrene određenu operaciju i time izbaci Event (iliti Događaj), koji je nastao tom prilikom, i pozove neku metodu zaduženu za taj događaj (nakon izvršavanja operacija te metode aplikacija se opet vraća u prethodno stanje).
Druga bitna razlika između razvoja igara i razvoja tipičnih poslovnih aplikacija jeste koncept pooling-a, koji predstavlja konstantnu proveru korisnika umesto čekanja na Event-ove (događaje) koje korisnik generiše.
Na primer, ako bi pravili widget-plugin za neki sistem (WordPress), napravili bi ste interfejs koji bi posedovao OK i Cancel dugme. Vaša aplikacija ne izvršava ikakvu operaciju dok korisnik ne klikne jedno od ta dva dugmeta.
Međutim, ako bi ste pravili igricu gde mali Perica beži kroz grad od starijih klinaca koji hoće da mu otmu džeparac ili džangrizavih bakica koje bi da ga smore pričama iz svoje mladosti, vaša aplikacija bi konstantno proveravala da li je korisnik možda pomerio miša ili pritisnuo odgovarajuće dugme na tastaturi i na osnovu toga pomerala odgovarajuće objekte, u ovom slučaju malog Pericu, na vašem ekranu.
Zatim tu postoje i drugi objekti, poput tih siledžijski nastrojeni klinaca ili bakica-smaračica, koji bi jurili nestašnog Pericu po ekranu, nezavisno od toga da li je korisnik nešto kliknuo, pritisnuo ili samo gledao ekran.
U prevodu, kada pričamo o razvoju igara, uvek se nešto dešava (obično mnogo toga) i vaša igra konstantno ažurira animacije, pomera objekte, proverava da li su se neki objekti sudarili, ažurira vaš skor, itd. Ako bismo pravili igrice slično načinu na koji pravimo poslovne aplikacije, bilo bi teže konstantno proveravati da li je korisnik izazvao neki događaj ili nije.
To je to za početak. Nastavak uskoro…
Share and Enjoy
No related posts.
RSS Feed
Twitter



Posted in
Tags: 
Pingback: Napravite igru u 2 blog posta [Flash] [2.deo] « Adobe Flash « Aleksandar Simović blog