Studijski pristup razvoju igara

U “svetom trojstvu” indie game development alata, GameMaker zauzima posebno mjesto – negdje na pola puta između kraljevskog trona i ludinog stolca. Unity i Unreal Engine nedodirljivi su moderni vladari 3D prostora, a GameMaker se čvrsto drži razvojne paradigme 2D-a, kao i nekih “mušica” koje je naslijedio iz svoje duge i slavne povijesti

Marko Raos utorak, 8. listopada 2019. u 07:00
GameMaker Studio 2
Proizvođač/Izdavač YoYo Games
Tip Integrirani paket za razvoj igara
Platforma PC, Mac

Pitanje koje će svaki novi indie game developer neizbježno postaviti na samome početku svoje karijere je “koji je razvojni alat najbolji za moju igru”, s prešutnim potpitanjem “a koji je najkorisniji za moju daljnju karijeru?” Jednako neizbježno, odgovori na to pitanje uglavnom će se svesti na jedan od tri trenutačno najpopularnija alata – Unity, Unreal Engine i GameMaker Studio.

Sva tri navedena enginea dijele neke osobine koje ih čine dominantnim igračima na game development sceni: multiplatformska priroda – u stanju su s lakoćom proizvesti samostojeće igre za različite platforme, ekonomičan radni proces unutar jedinstvenog API-ja, performanse završne aplikacije koje svakako konkuriraju i onima u najnaprednijim AAA igrama i, možda najbitnije, duga povijest koja osigurava da se za svako pitanje može pronaći odgovor na forumima ili, u najmanju ruku, kupiti komercijalni plug-in kojim možete itekako uštedjeti na vremenu potrebnom za razvoj vaše igre.

Katalog 2D igara izrađenih u GMS2 je upravo enorman
Katalog 2D igara izrađenih u GMS2 je upravo enorman

Ono što GameMaker (u svojoj najnovijoj inačici Studio 2) ipak čini posebnim, prije svega je beskompromisan i čak pomalo tvrdoglav fokus na 2D igrama. Unity i Unreal su, u svojoj osnovi, 3D enginei i, iako su svakako u stanju proizvesti izvanredne 2D igre, to nikada nije jednako gladak proces kao kada radite u alatu koji je stvoren baš za to. U prosjeku, razvoj relativno jednostavne 2D igre bit će do dva puta brži u GMS-u nego u alatima koje su namijenjeni prije svega 3D igrama. Uz to, igre napravljene pomoću GMS2 često su memorijski daleko manje zahtjevne, a u performansama (prije svega brzina učitavanja i opterećenje procesorskih resursa) nerijetko ostavljaju zamjetno “izbrušeniji” dojam.

Drag-n-drop, programiranje bez tipkanja
Drag-n-drop, programiranje bez tipkanja

Druga posebnost GameMakera njegov je specifičan skriptni jezik, koji je nemoguće koristiti izvan GMS enginea. GML, GameMakerov jezik, sintaksom je vrlo sličan rasprostranjenijim high-level programskim jezicima kao što su C++ i JavaScript, no razlike su dovoljno izražene da će developer koji je zanat izbrusio u GML-u ipak morati potrošiti određeno vrijeme kako bi se prebacio na neki od tih univerzalnijih jezika šire primjene. Nažalost, GML-u također nedostaju i neke naprednije mogućnosti “pravih” objektnih jezika, kao što su potpuno apstraktne klase, pointeri i slično, koji se smatraju apsolutno nužnim za stjecanje iole naprednijih programerskih vještina. Doduše, najnovija verzija GMS2, koja se trenutačno nalazi u beti, trebala bi ispraviti te nedostatke, ali osnovna struktura jezika i dalje je podređena jednoj specifičnoj namjeni – brzoj izradi (relativno) jednostavnih 2D igara i aplikacija.

No, ta mana može biti i vrlina jer je skriptni jezik GML izrastao iz grafičkog sučelja za razvoj logike igre tzv. drag-n-drop sustava koji uvelike ubrzava i pojednostavljuje implementaciju jednostavnijih programskih zadataka. Primjerice, kretanje objekta pomoću tipkovnice moguće je izvesti jednostavnim povlačenjem odgovarajuće ikone u prozor ciljanog objekta. Sve drag-n-drop akcije i ponašanja moguće je prevesti u skriptni jezik GML te ih zatim mijenjati i korigirati prema potrebi. Time GMS nudi i potpunim programerima početnicima mogućnost da započnu razvoj svoje igre koristeći jednostavno i intuitivno grafičko sučelje te da se zatim postupno, već prema želji i potrebi, polako prebace na “pravo” programiranje.

GMS2 – unificirano radno sučelje

Sve na jednom mjestu
Sve na jednom mjestu

Ono što GameMaker Studio 2 čini doista vrijednim alatom za izradu igara jest činjenica da se sve, ali doslovno sve, što je potrebno za izradu prilično kompleksnih igara nalazi unutar jednog programskog paketa i jednog unificiranog sučelja kroz koje pristupate svim elementima vaše igre. Ovo su neki od najbitnijih elemenata ovog sučelja:

Workspace

To je glavni radni prostor za izradu vaše igre. Svaki objekt, sprite, zvuk, itd. bit će prikazan u ovom virtualnom okružju s jasno označenim poveznicama između elemenata. Ovdje programirate objekte, deklarirate evente, upisujete kôd i/ili dovlačite DnD ikone. Iako je sam editor kôda vrlo napredan i podržava mnoge profesionalne mogućnosti, sam koncept beskonačnog workspacea, kojim navigirate pritiskom na srednji gumb miša, ne mora se baš svakome svidjeti. Na sreću, i za to postoji rješenje u vidu zasebnog besplatnog editora “GMEdit” (https://github.com/GameMakerDiscord/GMEdit/) koji workspace paradigmu zamjenjuje klasičnim i čistim sučeljem zasnovanim na panelima te sve evente objekta prikazuje u istom prozoru – što dosta olakšava neke radnje tijekom programiranja. Pokrenite GMEdit paralelno s otvorenim GameMaker Studijem, otvorite projekt na kojemu radite, i on će se automatski sinkronizirati s matičnom aplikacijom.

Panel Resources

Svim ciljanim platformama moguće je odrediti zasebne postavke
Svim ciljanim platformama moguće je odrediti zasebne postavke

Na desnoj strani radnog prozora nalazi se možda najbitniji (i najkorisniji) element sučelja GM Studija – panel Resources. Ovdje možete vidjeti sve elemente koji sačinjavaju vašu igru, od soba i objekata preko spriteova, fontova i zvukova. Sve elemente (assete) možete grupirati prema mapama, preimenovati i slično. Osim elemenata koje smo već spomenuli, ovdje se nalaze i skripte (scripts – GMS-ov naziv za funkcije), shaderi, koje GMS u potpunosti podržava, softverske ekstenzije koje proširuju mogućnosti GMS-a te paths i timelines, koji uvelike olakšavaju programiranje naprednijih oblika ponašanja objekata. Panel Resources mjesto je gdje ćete organizirati svoj workflow i učiniti vaš projekt preglednijim – pazite na dosljedno imenovanje asseta i nemojte se ustručavati korištenja mapa!

Object Events

Osnova enginea GMS-a počiva na sustavu događaja (events). Kada otvorite objekt unutar workspacea, gumbom Events pristupate editoru koji vam omogućuje da definirate ponašanje svakog objekta prema događajima (event) koji takvo ponašanje pokreću. Osnovni eventi su Create, Destroy i Step. Create i Destroy određuju ponašanje prilikom nastanka i nestanka instance objekta, a Step događaji aktiviraju se tijekom svakog izvođenja glavne programske petlje. Uz to, ponašanja mogu biti pokrenuta interakcijama s ulaznim uređajima (miš, tipkovnica…), kolizijom s drugim instancama i slično. Nakon što je određen “okidač” (event), odgovarajuće ponašanje definirate koristeći skriptni jezik GML ili grafički sustav ikona DnD.

Room Editor

Auto-tiling i slojevi uvelike ubrzavaju proces izrade razina
Auto-tiling i slojevi uvelike ubrzavaju proces izrade razina

U editoru soba (Room Editor) određujete izgled i veličinu ekrana te dizajnirate razine vaše igre. Uz Sprite Editor, Room Editor doživio je najveće pozitivne promjene u odnosu na prethodne inačice GameMaker Studija. Osim postavljanja instanci objekata jednostavnim drag-n-dropom iz panela Resources, Room Editor sada omogućuje i postavljanje zasebnih spriteova te nudi napredni auto-tiling engine koji će automatski birati odgovarajuće sličice iz kolekcija (tile sheets) kako bi postigao glatke prijelaze između grafičkih elemenata.

Uz navedeno, Room Editor sada posjeduje i zasebne slojeve (layers), čime je izrada vrlo kompleksnih ekrana i razina uvelike olakšana. Slojevi mogu biti različitih vrsta te ih je, prema potrebi, moguće učiniti nevidljivim. Jedna od najvećih zamjerki GameMakeru u prošlosti bio je primitivan i ograničen Room Editor, koji je nerijetko iziskivao zamjenu vanjskim aplikacijama ili čak pisanje posebnih editora za svaku igru. Novi Room Editor izvanredan je dodatak razvojnom paketu koji sva takva vanjska rješenja čini potpuno nepotrebnima.

Sprite Editor

Sprite Editor iznenađujuće je kvalitetna aplikacija za rad s rasterskom grafikom i animacijama
Sprite Editor iznenađujuće je kvalitetna aplikacija za rad s rasterskom grafikom i animacijama

Uz Room Editor, Sprite Editor je također doživio velike promjene u odnosu na svoje prethodne verzije. Sada je u pitanju potpuno funkcionalna aplikacija za rasterski grafički dizajn, koja potpuno podržava i naprednije animacijske funkcije kao što su onion skin, slojevi i slično. Iako na tržištu svakako postoje i napredniji sprite editori, onaj koji dobivate s GMS-om svakako je dovoljan za nužne korekcije, ako ne i samo dizajniranje grafičkih elemenata igre.

Targets i Build

Fleksibilna multiplatformska priroda GMS-a možda se najbolje ocrtava u jednostavnom panelu Targets, kojem pristupate klikom na ikonu u gornjem desnom kutu prozora aplikacije. Ovdje možete odabrati, ne samo ciljanu platformu za koju će GMS proizvesti samostojeći instalacijski paket, već i hoće li izvršna datoteka biti kompajlirana ili interpretirana pomoću integriranog virtualnog stroja.

YYC, izuzetno cijenjen i brz GMS-ov kompajler, u stanju je proizvesti igre koje brzinom izvođenja svakako konkuriraju i najkomercijalnijim mainstream proizvodima. Međutim, YYC je i dosta osjetljiv na svaku “šlampavost” u pisanju kôda – ako vaša igra i nije posebno tehnički zahtjevna, možete uštedjeti dosta razvojnog vremena orijentiravši se na interpretiranu završnu aplikaciju.

Uvjeti poslovanja

Bitna stavka u odabiru svakog alata svakako je i cijena. GameMaker Studio 2, u osnovnom izdanju za desktop platforme, košta 99 dolara za trajnu licencu koju nije potrebno obnavljati. Ako vam se to čini previše, za 39 dolara možete dobiti godišnju pretplatu s kojom dobivate pune mogućnosti osnovne verzije, jedino se na početku svake vaše igre prikazuje GameMakerov logo. Potpuno besplatna, free trial, verzija, nažalost, izuzetno je ograničena u mogućnostima i teško da može poslužiti za išta drugo osim isprobavanja osnovnih mogućnosti i načina rada aplikacije.

Svi prihodi vašeg najnovijeg hita pripadaju vama i samo vama!
Svi prihodi vašeg najnovijeg hita pripadaju vama i samo vama!

S osnovnom licencom dobivate mogućnost kompajliranja igara za desktop platforme Windows, Mac i Ubuntu. Dodatni moduli i licence za druge platforme, prije svega mobilne uređaje i konzole, plaćate dodatno (Android, iOS, PS4, Xbox One i Switch su podržani). Ukupna cijena za baš sve dostupne platforme iznosi 1.500 dolara godišnje, što se može učiniti popriličnim izdatkom, ali ako već paralelno razvijate igru za Windows, Mac, Android, iOS, PS4 i Xbox, onda se ipak pretpostavlja da već imate nekakav budžet te kako mislite nešto i zaraditi.

Takve cijene nisu neuobičajene u svijetu profesionalnih komercijalnih softverskih alata. Međutim, ekipa iz YoYo Gamesa možda je ipak mogla učiniti besplatnu inačicu nešto funkcionalnijom kako bi olakšala novim korisnicima ulazak u svijet GameMakera. Ako vas zanima kako se GMS ponaša u “stvarnom svijetu”, slobodno skinite besplatni trial, a ako namjeravati raditi igre iz hobija i zabave, pretplata od 39 dolara godišnje manja je od cijene prosječne PC igre.

Za koga je GameMaker Studio?

Ukratko, GMS svakako možemo smatrati nišnim proizvodom, ali niša koju on zauzima vrlo je široka. U području izrade 2D igara, GMS2 je i dalje nedodirljiv. Trenutačno ne postoji ništa što bi nadmašilo njegove mogućnosti na tom polju, barem ne u praktičnom smislu (naravno, C i C++ i dalje su brži, ali današnji hardver vrlo je teško ozbiljno opteretiti bilo kojim 2D zadatkom). Uz to, GMS2 nudi kompletno integrirano sučelje za izradu, ili barem obradu, svih elemenata koji sačinjavaju jednu tipičnu 2D igru, te je u stanju uz minimum truda proizvesti gotove standalone aplikacije za sve važnije platforme.

Iako se početna cijena paketa na prvi pogled može učiniti previsokom, na dulje staze, i pogotovo kod komercijalnijih projekata, GMS je itekako konkurentan svojim “freemium” protivnicima. Međutim, u odnosu na njih, GMS ipak ima i neke mane. Primjerice, iako je nova verzija uvela integraciju s githubom, podrška timskom radu i dalje je daleko od savršenstva; nove izmjene programskog jezika GML obećavaju učiniti ga prema mogućnostima potpuno ravnopravnim etabliranim jezicima poput C++-a, JS-a i Pythona, ali to ne mijenja činjenicu da je ipak specifičan samo jednoj aplikaciji. Poznavanje GML-a neće vam previše pomoći pri traženju posla u timu koji ne koristi GameMaker Studio.

GameMaker Studio 2 - kralj indie scene?
GameMaker Studio 2 - kralj indie scene?

Kada se sve sabere i oduzme, dobivamo profil “idealnog” korisnika GMS-a: U pitanju je solo developer ili maleni tim koji radi na igri koja koristi isključivo ili barem većinom 2D grafiku unutar 2D prostora. Brzina razvoja bitna je jer su ljudski resursi ograničeni i nema vremena niti energije za pretjerano prčkanje po raznim optimizacijama, traženje i testiranje raznoraznih frameworkova, plug-inova i slično. Kada dobijemo ideju za gameplay ili nove grafičke i zvučne elemente, želimo ih što prije vidjeti “u akciji” kako bismo ih mogli testirati (ili, recimo, pokazati potencijalnim investitorima). Na dulje staze, vjerujemo u potencijale naše igre i/ili tima jer je one-off sustav licenci svakako ekonomski isplativiji ako se igra pokaže uspješnom, a znanje GML-a nam vjerojatno neće puno pomoći u traženju programerskog posla u nekom drugom etabliranom studiju ili softverskoj tvrtki.

Ako se barem djelomično prepoznajete u ovom opisu, onda je GameMaker Studio 2 možda upravo ono što vam je potrebno da svoju igru iz snova preselite u stvarnost.

GameMaker Studio 2

  • Izvrsne 2D performanse i stabilnost
  • Podrška za sve bitnije platforme
  • Integrirani razvojni paket s gotovo svime što vam treba na jednom mjestu
  • Blaga krivulja učenja i opcijsko grafičko sučelje za razvoj logike igre
  • Ekstenzije i lagana integracija s vanjskim modulima
  • Ogromna kolekcija tutoriala, gotovih asseta, plug-inova…
  • Kad ga jednom kupite, vaš je – nema dijeljenja zarade ili pretplata
  • Visoka početna cijena, još viša za dodatne platforme
  • Specifičan skriptni jezik
  • Slabašne mogućnosti razvoja 3D-a unutar same aplikacije
  • Originalno grafičko sučelje workspace (od verzije 2.0) može biti iritantno onima koji su naviknuti na uobičajenije prozore
Cijena 39-1.500 dolara Ustupio: