Kako da razvijete svoju igru? ~ Početak

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.

2010 Prihodi igara na trzistu

Slika 1. Prihodi na tržištu igara u SAD

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.

Game Loop

Slika 2. Game Loop

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.

igrica mali perica razvoj pravljenje igara

Slika 3. Mali Perica beži kroz grad

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.

You can leave a response, or trackback from your own site.
  • http://www.igormanjencic.com Igor Manjencic

    Kad si najavio da ces poceti da pises o razvoju igara ja sam mislio na ono nase. Svakako zanimljiva tema. Ocekujemo nastavak :)

  • http://njuskava.blogspot.com/ Vanja

    Interesantno :) samo napred!
    Daj nesto: kako razviti wp7 aplikaciju, to bih ja da naucim od vas programera i dizajnera :) pa da napravim sebi neku korisnu aplikaciju :) recimo za blogovanje na bloggeru ako se neko ne smiluje i ne napravi je uskoro, kao sto ima za wordpress :)

  • http://www.aleksandarsimovic.com Aleksandar Simovic

    Hvala!
    @Igor
    Nastavak je danas. :)

    @Vanja
    Razvoj aplikacija za WP7 cu u skorije vreme kao celu kategoriju postaviti, s’obzirom na to da za razvoj igara u .NET okruzenju cemo iskoristiti XNA framework, koji se na slican nacin pored Silverlight-a moze koristiti za razvoj WP7 igara i aplikacija. Međutim Silverlight je laksi za razvoj poslovnih aplikacija na WP7 od XNA. Dok je XNA vise za multimedijalne aplikacije i igre na WP7. Tako da ako budes zelela da se ta aplikacija odradi bas u Silverlight-u proci ce makar mesec dana, pre nego sto dotaknem tu temu.

  • Igor Ćirović

    Vidim bacio si se u blogerske vode. Svaka čast za temu, meni lično je veoma interesantna. U pravu si da se naše igre mogu nabrojati na prste i to su sve bile neke strategije, koliko sam ja upućen. Jednu sam čak i odigrao – Genesis Rising – čiji je razvoj pratio Svet Kompjutera, pa tako i ja i mogu ti reći da mi je njih najviše žao, jer su oni imali neka pametna razmišljanja u toku razvoja te igre u smislu njenog prilagođavanja za svetsko tržište (strani izdavač, engleski i američki glumci za glasove likova…), ali ih nisu dobro realizovali i to je igru koštalo ocena u prikazima po raznim sajtovima i časopisima, a na kraju očigledno i kad je u pitanju komercijalni uspeh. Neću sad pisati kilometarski komentar oko toga šta je konkretno tu prilično solidnu igru i samu firmu koštalo uspeha, ali bih ti predložio da u nekom budućem postu, osim teme “kako se dizajniraju/programiraju/… igre”, obradiš i temu “šta je potrebno da ta igra uspe na svetskom tržištu i kako to obezbediti”, jer je i to deo procesa razvoja igara. :)

  • http://www.aleksandarsimovic.com Aleksandar Simovic

    Slazem se, Igore. Bice obradjena tema kako da igra uspe na svetskom trzistu, s’obzirom da je nase trziste bukvalno nikakvo. Pozvacu te da samnom napises neki post.

    • Igor Ćirović

      Ako budem imao šta pametno da pridodam, vrlo rado! :)

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

Creative Commons лиценца
Ovo delo je licencirano pod uslovima licence
Creative Commons Autorstvo-Nekomercijalno-Bez prerada 3.0 Srbija