Razvoj igara nije igranje: Kako rade (C++) developeri u Unreal Engineu?

Razvoj igara nije igranje: Kako rade (C++) developeri u Unreal Engineu?

Siniša Mikolić iz Digital Godsa, Fran Grgec iz poljskog Far From Homea i Filip Dobrinić iz GD Entertainmenta ponudili su svoje karijerne savjete i uvid u rad developera koji primarno rade s Unreal Engineom.

Game developeri temeljni su stupovi u stvaranju jedne video igre. Oni pretvaraju ideje u stvarnost. Iz koda nastaju zgrade, palače, pejzaži i najraznolikiji likovi koji s tim okruženjem mogu interagirati. Nemali pothvat, često podcijenjen u široj tehnološkoj zajednici. Zato vam uz developere iz industrije želimo predstaviti njihovu ekspertizu i iskustva iz područja.

Do sada smo predstavili pisce, producente, dizajnere, marketingaše i 3D Artiste koji rade u domaćoj gaming industriji, a sada pozornost prebacujemo na C++ developere koji koriste Unreal Engine (ili jednostavno Unreal) u svojem svakodnevnom poslu. To je drugo po redu najzastupljenije zanimanje u hrvatskoj gaming industriji.

Kako su ovi developeri završili u gamingu s Unreal Engineom kao glavnim alatom?

Filipovi počeci u game developmentu krenuli su još s Warcraft 3 editorom i programom koji se zove Alice, a tijekom faksa počeo je raditi u Unityju u sklopu jednog kolegija. Profesionalno iskustvo stekao je u Cateia Gamesu gdje je, kako ističe, imao odlične mentore i kolege. Prijelaz na Unreal, Filip je napravio kada su započinjali novi projekt u gaming studiju gdje trenutno radi. Tada mu se taj program činio kao zanimljiva alternativa Unityju:

Optimiziraniji je i ima koliko-toliko spreman multiplayer. To su bile dvije glavne stvari zbog čega smo odlučili prijeći na njega, a i uvijek dobro dođe imati znanje u još jednom game engineu.

Franova gaming avantura počela je još u prvom razredu srednje škole. Pustio se u duboku analizu i shvatio kako je Unreal najbolji izbor za ono što ga zanima. Tako je počela njegova “strma krivulja učenja”, ali smatra kako je to svejedno bilo dobra odluka. Uz to, upisivanjem FERIT-a u Osijeku dobio je smjernice za početak učenja programiranja, što mu je pomoglo da napravi prvu igru pomoću C++ jezika.

Krajem ljeta 2021. dobio je svoj prvi ne-studentski posao kao game developer za tvrtku Gamecan iz Estonije. Kako je tada već bio vješt u području, tako je dobio ponudu za preseljenje u tu zemlju:

Uspješno sam obavljao svoje zadatke, a i predlagao dobre ideje za razne probleme. Početkom 2022. dobio sam vlastiti projekt na kojem sam bio Lead iliti, blago rečeno, bačen u vatru katastrofalnog projekta u punom mahu developmenta, za koji smo imali tri mjeseca vremena za popravak. Srećom, sve je završilo uspješno.

Siniša je u game developmentu završio, moglo bi reći, da zadovolji svoju potrebu za igrom koje nema na tržištu. Tako se samostalno uputio u vode koje su ga oduvijek zanimale.

Što Unreal Engine čini posebnim u gaming industriji?

Kad se radi s Unrealom, developeri najčešće programiraju u jeziku C++ i blueprintima – što je kompletni sustav skriptiranja igre koji se temelji na korištenju čvorova (eng. node). Manje-više svaka C++ funkcija je dostupna i kroz tzv. blueprinte:

Multiplayer i gameplay ability sustav pripremaju se kroz C++. Generalno, rad s blueprintima je brži, ali neke kompleksnije, zahtjevnije stvari je bolje napisati u C++.

Filip smatra kako je najbolji pristup koji kombinira C++ i blueprinte, ali pritom je potrebno paziti da bluperintovi ostaju čitki i organizirani kako bi se lakše moglo snaći u njima i nadograđivati ih.

Fran također ističe blueprinte kao nešto specifično za Unreal, što je poprilično korisno u pisanju prototype koda koji se kasnije prebaci u C++:

Osobno mi se uvijek sviđao C++ koji je naspram ostalih objektno orijentiranih programskih jezika izrazito low level i pri tome brži te pruža više slobode kada dođe do funkcionalnosti koda (što je izrazito važno kod game developmenta).

Fran još dodaje kako ne treba zaboraviti kako je Unreal besplatan, a source code se može mijenjati po volji developera. Modularnost isto tako otvara vrata za izradu projekata samo kroz plugine, što može značajno skratiti vrijeme projekta ako je napravljeno kako treba, zaključuje.

Pored blueprintova, Siniša ističe kako je Garbage Collector također jedna značajka koja čini Unreal posebnim:

Unreal koristi mehanizam “Garbage Collection” za upravljanje memorijom, što omogućuje programerima da se ne moraju brinuti o oslobađanju zauzete memorije. Međutim, potrebno je razumijevanje procesa kompiliranja i različitih alata koji se koriste u Unrealu, poput editora, debugera i klijenta za izgradnju projekata.

Unreal je moćan alat čija zajednica korisnika nije razvijena

Naravno, nijedan program nije savršen pa zato Filip mrzi kada se dogodi crash baš neposredno nakon što provede C++ compiling ili, drugim riječima, prevođenje C++ izvornog koda u izvršni program:

Dogodilo mi se X puta da sam ostao bez napretka i izgubio neke stvari zato što se Unreal nasumično srušio.

Ono što Filip voli kod Unreala je činjenica što je on game engine u pravom smislu te riječi, odnosno da sadrži toliko stvari već spremnih za igre:

Primjerice, sadrži funkciju koja se zove “Launch Character” koja doslovno lansira tvog lika X, Y, Z brzinom.

Siniša ne vidi nešto što mu se ne bi moglo svidjeti kod Unreala. Svaki dan ga koristi i još mu nije dosadio, a kada jednom usvojite osnove, ne možete prestati učiti, ističe. Zato jako voli Unreal, zbog konstantnog unaprjeđivanja i brzine kojom se to dovija te što program donosi nove alate.

Velika prednost jezika C++ je njegova modularnost, ističe Fran. Kako je uvijek više vukao na tehničku stranu game developmenta, tako mu je važna dobra arhitektura softvera u kojem radi, a i njegova fleksibilnost kao i performanse. Što se tiče loših iskustava s Unrealom, najviše su vezana za nedostatak dobre dokumentacije, što inače dobra zajednica donekle popravi, ali pronaći nešto napredniji sadržaj već je teže, objašnjava nam:

Tvrtke i pojedinci većinom drže znanje za sebe pa je zapravo od intermediate do advance razine malo teže doći, zbog (ne)dostupnosti znanja, a ponajviše za konzole koje se i najviše traže u današnje vrijeme.

Koji su najveći izazovi u karijeri s kojima su se susreli?

Filip se susreo s raznim izazovima, ali njegov najveći problem je ono što je i Franu istaknuo, a to je činjenica što Unreal nema razvijenu zajednicu kao što to ima Unity. Zato često možete naići na loša rješenja i loše prakse pa čak i krive odgovore:

Na kraju sam shvatio da je najbolje čitati dokumentaciju u izvornom C++ kodu. Što se tiče nekih izazova, bilo ih je pri izradi svakog sustava, ali to je normalna stvar s programiranjem.

Najveći je izazov bio portanje igara na konzole jer je za testiranje ipak potreban dev kit od Sonyja ili Xboxa. Također, i dokumentacija za njih, čemu je običnom “smrtniku” malo teže pristupiti jer je potreban poseban partnerski ugovor, objašnjava nam Filip.

S druge strane, Siniša je svoj najveći izazov pronašao na jednom određenom projektu. Radio je na open world multiplayer igri, a one zahtijevaju posebna znanja i vještine koje tada nije imao:

To me je kasnije koštalo 6 mjeseci redizajna cjelokupne konstrukcije igre kako bi se riješili problemi koji su nastali. Kako bih se nosio s tim izazovom, morao sam raditi na proučavanju i usavršavanju vještina te konzultirati se s drugim stručnjacima u industriji. Također, ključno je bilo pravilno planiranje i organizacija rada, kako bi se izbjegli daljnji problemi i ubrzao proces razvoja igre.

Koliko je Unreal Engine primjeren za početnike?

Unreal je zapravo dosta prijateljski nastrojen početnicima, ali dobro je imati predznanje u kodiranju zbog lakšeg razumijevanja nekih stvari i logike, ističe Filip:

Da osoba i nema predznanja, mislim da bi se nakon nekog vremena i određenog broja tutorijala snalazila u Unrealu bez problema.

Za izradu igre definitivno treba barem neko znanje programiranja, ali ne mora nužno biti baš C++, već može biti i samo u blueprintima, ali za veće projekte najbolje je to izbjeći, kaže Fran:

Što se tiče same težine Unreala, ako se osoba zna koristiti Googleom kako spada, ne bi uopće trebao biti problem za početnika. Ipak, za prijeći na advance level znanja potrebno je više truda i neko vrijeme rada u industriji.

Ovdje se Siniša slaže s Filipom i Franom, ali stavlja malo veći naglasak na poznavanje C++ jer to je ono što će olakšati cijeli proces učenja. Također, kao i Fran, navodi mogućnost skriptiranja u blueprintima koji olakšava i ubrzava cijeli proces razvoja igre, ali cijeli proces može biti loše optimiziran:

Ako ste dovoljno uporni, uz nekoliko mjeseci rada možete izraditi jednostavniju igru u Unrealu.

Koji bi savjet iz današnje perspektive dali samima sebi u prošlosti kada su tek počeli učiti Unreal?

Filip bi sebi savjetovao da više kombinira C++ i blueprinte, a same blueprinte da drži organiziranijima:

Ako radiš s multiplayerom, simuliraj latenciju od 50 ms kako bi ranije uočio probleme. Također, uči gameplay ability sustav jer se s njim može svašta!

Code style i pisanje komentara najvažnije su vještine koje – što se prije nauče, to bolje, inače će čitanje staroga koda biti pakao, napominje Fran. S druge strane, Siniša zaključuje da je organizacija vrlo bitan faktor u ovom poslu jer je “bolje potrošiti 5 minuta više kako ne bi ispaštao par mjeseci kasnije”.

Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.

Pravila ponašanja

Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:

  • Ne budite 💩: Nema vrijeđanja, diskriminiranja, ni psovanja (osim ako nije osobni izričaj, ali onda neka psovka bude općenita, a ne usmjerena prema nekome). Također, upoznajte se sa stavkom 2. članka 94. Zakona o elektroničkim medijima prije no što ostavite komentar.
  • Samo kvalitetna rasprava, manje trolanja: Ne morate se ni sa kim slagati, ali budite konstruktivni i doprinesite raspravi! Svako trolanje, flameanje, koliko god "plesalo" na granici, leti van.
  • Imenom i prezimenom, nismo Anonymous 👤: Autor sadržaja stoji iza svog sadržaja, stoga stojite i vi iza svog komentara. Koristimo ime i prezime te pravu email adresu.

Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.

Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.

Komentari

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Društvene mreže

Biste li plaćali za korištenje Facebooka i Instagrama? A YouTubea i X-a?

Nova epizoda Netokracijina podcasta kao da se nije odmaknula od Noći vještica jer strava se nastavlja - big tech ekipa uvodi pretplate na sve strane. No, dogodila se jedna stvar koja nam daje nadu... Elon Musk održao je prvi "all hands" sastanak!

Ekskluzivno

Daytona osigurala 2 milijuna dolara od investitora poput CEO-a Stack Overflowa i Damira Sabola

U najranijoj, pre-seed rundi financiranja, Daytona je osigurala investiciju od čak 2 milijuna dolara, primarno od poznatih američkih i hrvatskih (su)osnivača.

Netokracija Podcast

Ovo je email strategija kojom je Burazin privukao investitore poput direktora Stack Overflowa

U novoj epizodi ulazimo u detalje o: (vjerojatno) najvećoj pre-seed rundi u hrvatski startup; tome kako SAD namjerava kontrolirati AI sustave koji bi mogli napraviti atomsku bombu te zašto osnivača Netokracije Ivana Brezaka Brkana izbacuju iz zagrebačkih kavana?

Što ste propustili

Najava

Kako esport industrija izgleda danas – iz perspektive partnera, sponzora, igrača i regulatora?

Ovoga prosinca u Zagrebu čeka nas prvo izdanje Beyond Esports konferencije koja se, kao što joj i ime kaže, bavi esport industrijom i svemu onome što ju pokreće.

Mobilne aplikacije

Vinare čeka EU regulativa, ali Kovačević i Drmač imaju rješenje: Craft Technology E-etikete!

Tko god je imao doticaja s EU regulativama zna da nisu jednostavne niti ih se smije shvatiti olako. Jedna takva stiže i u svijet vinara, a hrvatski Craft Technology mogao bi im tu biti od velike pomoći.

Tvrtke i poslovanje

LAQO opet u potrazi za najodrživijim tech rješenjima koja će nagraditi s 18 tisuća eura

Nakon uspješnog prvog izdanja s više od 250 prijava, krenule su prijave za drugo izdanje LAQOthona, nagradnog natječaja idejnih tech rješenja na temu održivosti u organizaciji Croatijinog LAQO osiguranja, prvog 100 posto digitalnog osiguranja.

Analiza

Hoće li robotaksiji na ulice Zagreba i – kad?

I je li uopće realno očekivati da će se to dogoditi? U ovoj epizodi Netokracijinog podcasta pretresli smo tu vruću temu i to iz svih kutova - tehnološkog, operativnog, financijskog i komunikacijskog.

Tvrtke i poslovanje

10 godina Lean Startup Hrvatska: Ekosustav nekad i danas, što je plan za Smion?

Nakon 10 godina i na desetke radionica, edukacija i događaja Lean Startup Hrvatska postaje Smion te se nastavlja još više fokusirati na razvoj poduzetničkog i inovacijskog ekosustava. U velikom intervjuu, komentiramo desetljeće iza njih, kao i okolnosti na domaćoj sceni nekada i danas.

Analiza

Diskriminira li PlayStation Store Hrvate? Popusta nemamo, euro se tek uveo, a plaćali smo bonovima…

Domaće obožavatelje PlayStation konzole ova godina nije nimalo mazila. Štoviše cijelu godinu obilježio ih je osjećaj "zadnje rupe na svirali" jer sve do sredine studenog nisu mogli kupovati karticama. Zašto? PlayStation Store 11 mjeseci nije prešao na euro niti je dvojno iskazivao cijene...