BIZIT 11 - prvi dan

Besprekorni kvalitet za uzbudljiv meč

Milioni ljudi širom sveta igraju Top Eleven. Kako se razvija “football engine” koji stoji iza 3D mečeva u Top Eleven-u? Razgovarali smo o tome sa dr Đorđem Đurđevićem, vodećim grafičkim inženjerom u Nordeusu.

PCPress.rs Image
Naš animacioni sistem funkcioniše tako što uzastopno pušta kratke animacione sekvence, koje su osnova kretanja igrača: trčanje.šutiranje…

Od 2016. godine imali ste priliku da radite u Nordeus-u na različitim pozicijama, a danas ste vodeći grafički inženjer u Football Engine timu. Koji su vaši zadaci na toj poziciji?

Kada pravimo igre u Nordeus-u, stavljamo igrače na prvo mesto. Baš iz tog razloga, u cilju obogaćivanja njihovog korisničkog iskustva, nastali su i 3D mečevi u našoj igri Top Eleven – Be a Football Manager, iza kojeg stoji Nordeus Football Engine.

U Nordeus-u se vodimo vizijom kreiranja fudbalskih šampiona, stoga smo odlučili da korisnicima ponudimo kvalitet koji se viđa u svetski poznatim igrama i oslikava njihove fudbalske strategije i taktike na terenu.

PCPress.rs Image
dr Đorđem Đurđevićem, vodeći grafički inženjer, Nordeus

Konkretno u kontekstu grafike, to znači da postoje dva zahteva. Prvi je da vizuelni kvalitet igre mora da bude na visokom nivou. Drugi je da igra zadovoljavajuće brzo radi na što je moguće većem broju uređaja. Nordeus je primarno orijentisan ka tržištu igara na mobilnim telefonima, a to znači da treba voditi računa o velikom broju uređaja vrlo različitih mogućnosti: brzina centralnog i grafičkog procesora, kapacitet memorije itd. Imajući to u vidu, očigledno je da su ovi zahtevi suprotstavljeni. Primarni zadatak grafičkog inženjera u Nordeus-u je da obezbedi ispunjavanje oba zahteva, uz neizbežno pravljenje kompromisa. Grafički inženjer mora dobro da poznaje proces formiranja prikaza na uređaju kako bi znao gde bi pravljenje kompromisa dalo najbolje rezultate: značajno povećanje brzine rada uz prihvatljivo malu degradaciju kvaliteta.

Kako izgleda Nordeus Football Engine, kako je razvijan i po čemu se izdvaja?

Vrhunac razvoja Top Eleven-a i vizije da našim igračima omogućimo da budu fudbalski šampioni ako posvete i svega 5-10 minuta svog vremena dnevno, upravo su 3D mečevi. Naši igrači prvi put od marta 2022. mogu da vide svoje fudbalere na terenu, kao i odraz svojih taktika i odluka kroz realističan fudbal u 3D formatu. To je moguće zahvaljujući Football Engine-u koji smo razvili u Nordeus-u. Football Engine je naziv koji smo mi dali našem proizvodu. Misao vodilja u osnovi razvoja Foot­ball Engine-a je da će biti upotrebljen prvenstveno za igre na mobilnim uređajima. Zbog toga smo imali u vidu ograničenja mobilnih uređaja u odnosu na konzole ili računare.

Pre nego što je nastao Football En­gine, razvijali smo dva modula: modul koji se bavi animacijama igrača (animation system) i modul koji se bavi ponašanjem igrača (AI system). Tokom razvoja, prirodno se pojavila potreba za nadređenom celinom koja bi upravljala radom ovih modula. Ta celina je dobila ime, pogađate – Football Engine.

PCPress.rs Image
Vizuelni kvalitet igre mora da bude na visokom nivou, a igra da radi radi na što većem broju uređaja. Primarni zadatak grafičkog inženjera u Nordeus-u je da uravnoteži ove zahteve

Pri daljem razvoju Football Engine-a, identifikovali smo četiri ključna problema (nazvali smo ih master problemi) koje je neophodno rešiti kako bismo postigli željeni kvalitet fudbala. To su problemi kretanja igrača, dodavanja lopte saigraču, interakcije (kontakti) među igračima i usaglašavanje ponašanja igrača. Rešenja ovih problema utiču na kvalitet najpre pojedinačnih igrača, preko situacionog ponašanja dva ili više igrača, pa sve do kompletnog ponašanja igrača na nivou tima.

Kako se borite s problemima kompatibilnosti s raznim mobilnim platformama, kao i sa uređajima različitih generacija? Da li i stariji telefoni mogu da prikažu 3D scene u igri Top Eleven – Be a Football Manager?

Na tržištu još uvek postoje uređaji koji su proizvedeni 2014. godine. Ima i starijih, ali sada već u veoma malom broju. Dakle, govorimo o uređajima starim skoro 10 godina, veoma skromnih mogućnosti u odnosu na današnje standarde. Najčešće imaju zastarele verzije operativnog sistema koje proizvođači više ne podržavaju. Tokom razvoja naših igara, proveravamo njihov rad na određenom broju reprezentativnih uređaja. Ponekad se dešava da na pojedinim uređajima primetimo ponašanje drugačije od očekivanog. Tada procenimo ozbilj­nost uočenog problema. Ako je problem takav da ozbiljno narušava iskustvo koje bi igrači doživeli, analiziramo problem i tražimo rešenje. Svaki problem je priča za sebe i ne postoji univerzalan način da se njima bavimo.

Omogućili smo da određen broj starijih telefona prikaže 3D scene u igri Top Eleven, ali vizuelni kvalitet je znatno redukovan u odnosu na najmodernije telefone. Na primer, na starim telefonima ne prikazujemo senke igrača i lopte generisane u realnom vremenu. Top Eleven može da se igra na još starijoj generaciji mobilnih uređaja, ali na njima 3D scena nije dostupna.

Koje programske jezike koristite u razvoju ovog sistema i kakva su vaša iskustva s njima?

Za pravljenje naših igara koristimo razvojno okruženje Unity i tu nam je glavni jezik C#. Neki od alata i mehanizama za automatsko testiranje koje smo razvili pisani su u jeziku Python. Tu govorim konkretno o Football Engine-u, odnosno o onom delu naših igara koje korisnici neposredno vide na svom mobilnom uređaju. Ali moderne igre, poput Top Eleven, koje povezuju veliki broj igrača, zahtevaju infrastrukturu koja nije direktno vidljiva korisnicima. Tu najviše koristimo jezik Java.

Postoji i jedan aspekt razvoja video-igara o kojem se ređe priča kada se uopšteno govori o programiranju i programskim jezicima. Radi se o programima za senčenje (tzv. shader programi) koje izvršava grafički procesor u fazi formiranja slike na uređaju. Za njihovo pisanje najčešće koristimo jezik Cg, a po potrebi i GLSL ili HLSL. U pitanju su specifični jezici koji liče na jezik C.

PCPress.rs Image

Iskustva u korišćenju navedenih programskih jezika su svakako pozitivna: radi se o de facto standardnim jezicima u industriji video-igara. Međutim, kada se u obzir uzme njihova upotreba u okviru razvojnog okruženja Unity, tu se pojavljuju određeni problemi za koje moramo da tražimo adekvatna rešenja, često uz direktnu podršku inženjera kompanije Unity. Ali to je cena koju moramo da platimo za sve pogodnosti koje inače pruža razvojno okruženje.

Da li ste paralelno sa Football Engine-om razvijali dodatne alate za podršku razvoja Football Engine-a?

Svakako, dodatni alati su neophodan i nezamenljiv deo razvoja bilo koje složenije video-igre. Alate imamo na gotovo svakom segmentu našeg Engine-a. Alate koje smo razvili možemo grubo podeliti u tri kategorije: alati za proveru kvaliteta, alati za otkrivanje i lociranje grešaka u ponašanju i alati za sveobuhvatno testiranje i validiranje.

Na primer, imamo alat koji proverava da li su ispunjeni svi tehnički zahtevi koje animacije igrača moraju da zadovolje pre nego što se podaci obrade i pretvore u format koji Football Engine koristi. Kod sveobuhvatnog testiranja i validiranja, imamo alat koji nas obaveštava čim se uoči da nova verzija koda u ponašanju znatno odudara od prethodne. Alat generiše i dostavlja izveštaj ako primeti da se, na primer, faulovi ređe dešavaju ili šutevi na gol uvek idu u određen deo okvira gola.

Da li koristite XSens Motion Capture? Kako spojiti realan pokret čoveka s virtuelnim pokretom lika u igri?

Koristimo XSens opremu za digitalizaciju pokreta fudbalera. Za snimanje ovih animacija, angažovali smo profesionalne fudbalere i golmane. Fudbaler čije pokrete želimo da snimimo oblači specijalno XSens odelo. Senzori se postavljaju na unapred definisane pozicije na tom odelu i na taj način u realnom vremenu prate pokrete ključnih delova tela. Na osnovu tih informacija, XSens softver rekonstruiše kretanje tela fudbalera.

Naš animacioni sistem funkcioniše tako što uzastopno pušta kratke animacione sekvence. Te sekvence predstavljaju osnovna kretanja igrača, kao što su trčanje ili šutiranje. Pravilnim odabirom redosleda u kojem se te animacione sekvence puštaju ostvarujemo kontinuirano kretanje virtuelnih fudbalera u igri. Odgovornost animacionog sistema je da formira ispravan redosled kako sledeće željeno kretanje igrača ne bi narušilo vizuelni kontinuitet s trenutnim.

Šta su sledeći koraci u razvoju ovog Engine-a, na čemu trenutno radite?

Cilj nam je da nastavimo s razvojem Football Engine-a. Nakon iskustva proisteklog iz višegodišnjeg razvoja Engine-a, sasvim je izvesno da nikada nećemo reći da smo napravili savršen proizvod koji ne zahteva dodatni razvoj. Uvek će postojati neki detalj, koji postoji u pravom profesionalnom fudbalu, a koji ćemo želeti da dodamo u naše igre.

Facebook komentari:
Računari i Galaksija
Tagovi: , , , ,

Dejan Ristanović

www.dejanristanovic.com