Revija Joker - Mimo resničnih čeri navideznega

ČLANKI
stranka » članki » človeki » Mimo resničnih čeri navideznega
...
Slovenska VR-izmikačina ShowdownVR, na katero smo opozorili predlani, je v digitalnih štacunah. Aggressor se z avtorjem Nejcem Leškom ozre 360 stopinj naokrog po razvoju iger za navidezno resničnost in trnovih poteh podalpskega indiejanstva.

Slovenski predsednik Borut Pahor se je s sunkovitim gibom komajda izmaknil izstrelku, ki mu je švignil mimo glave. Ne, ni šlo za atentat in tudi ne za zablodelo teniško ali golf žogico. Prezidentu so predlani na glavo posadili Oculusov rift in mu pokazali prvi demo igre ShowdownVR. V njej se je moral igralec z gibi glave izmikati projektilom, s katerimi so ga obmetavali domišljijski sovragi. Takratno jesen smo si jo ogledali tudi mi in tedaj je avtorsko skupino Frontseat Studios sestavljalo troje ljudi z ambicioznimi načrti. Do danes je ostal le gazda in idejni oče igre, Laščan Nejc Lešek, ki je moral načrte oklestiti, če je hotel izdelek spraviti v prodajo. To mu je uspelo, pri čemer se je mnogo naučil, tako o upravljanju lastnega studia kot VR-developmentu. V tem hipu je eden najbolje usposobljenih slovenskih razvijalcev vsebin za rift. Zato bi za pogovor o naočnikih in klamfanju kode težko našli boljšega sogovornika.

Kljub navidez enostavni zasnovi je ShowdownVR danes precej drugačen kot na prvih predsta­vitvah. Očitno je šlo vanj še ogromno dela?
Seveda. Tu moram najprej razložiti rojstvo igre. Vse se je začelo s predvidenim obiskom Boruta Pahorja marca 2015 v firmi 3fs, za katero sem takrat delal. Z direktorjem sva se odločila, da mu bomo skušali med drugim predstaviti navidezno resničnost. To je bila optimistična želja, ker dema še nisem imel, do obiska pa je bilo vsega dva dni! Zato sem se vrgel v intenzivno oseminštiri­de­set­urno programiranje. Prvotni načrt je bil, da dobim obstoječ Epicov demo z nazivom Showdown in ga priredim našim potrebam. A to je hitro padlo v vodo in v dveh nočeh brez spanca sem uspel napraviti lastno stvar, ki smo jo nato pokazali Pahorju. Tej sem po Epicovi nesojeni inačici dal ime ShowdownVR. Ker je nastala v vsega dveh dneh, sem bil nad zelo pozitivnim odzivom nanjo presenečen. To me je opogumilo, da sem junija istega leta ustanovil studio Frontseat, pridobil dva sodelavca in se povsem usmeril v razvoj igre.

Izstrelki, ki jih tu vidiš frčati mimo levega roba, so različnih tipov s samosvojimi vzorci leta, ki se jih moraš priučiti. Kit pa je primer praktične rabe 3Dja v navideznosti, saj njegov skok iz vode obeleži konec stopnje.

Dolge noči štancanja kode ob energijskih pijačah se slišijo skoraj preveč ste­reo­tipno. Je za neodvisnika v tem poslu to res stalnica?
Je in ni. Če hočeš narediti karkoli resnega, moraš imeti dobro disciplino in urejen življenjski ritem. Telesa ne moreš izčrpavati v nedogled. Sam sem poleg tega navdušen športnik – akrobat in bivši boksar. To pomaga, da grem lahko spat, kadar je treba. In to ni zjutraj, ko se dela dan. A vsak programer ve, da so roki neizprosni, in včasih je pač treba stisniti zobe in delati, dokler reči niso konča­ne. Tudi Carmacku in Id Softwaru ne bi uspelo, če ne bi malo 'potegnili' delovnikov.

John Carmack je brez dvoma tvoj največji vzor­nik (ko se ozrem po Nejčevi sobi, na stenah opazim nalepljene njegove citate). Najstnice imajo po zidovih Bieberja, ti Carmacka.
Do pred kratkim je bilo citatov in slik tu gor še veliko več (smeh). Res je, John je moj največji vzor in je pra­vzaprav razlog, da sem se usmeril v programiranje ter da sem tako navdušen nad 3D-grafiko. To se je začelo z Doomom 3. Nad takrat prelomnimi tehnologijami v grafičnem pogonu, kot sta bili bump mapping in unificirana osvetlitev, sem bil čisto očaran. Navdušila me je tudi kultura v studiu Id – njihovi idealistični, zanesenjaški za­čet­ki in prijateljsko vzdušje med odličnimi strokovnjaki, ki so vsak pomembno prispevali k Doomom in Quakom. Tudi oni so začeli mladi, v poznih najstniš­kih ali zgodnjih dvajsetih letih. Na vsak način sem hotel izkusiti, kako to deluje. Leta 2003, pri dvanajstih, sem začel redno programirati in se odločil, da bo to moj poklic.

Tudi na trg si se vrgel razmeroma zgodaj.
Šolal sem se za elektrotehnika računalništva v Šolskem centru Celje. To pomeni, da sem kmalu po šoli že garal in se s tem preživljal. Faks ti sicer da dodatna znanja, vendar mislim, da v tej panogi največ štejejo praktične izkušnje in poznanstva. Te pa dobiš samo tako, da si v službi oziroma za nekoga razvijaš produkte. Čimprej in čimveč. Važno je poznavanje programskih jezikov in zvrhana mera radovednosti. Lahko bi se reklo, da sem s tega stališča samouk.

Razvijanje za rift je Nejcu prineslo vstopnico za konvencijo Oculus Connect 2, kjer je naposled v živo sre­čal svojega velikega vzornika. Njun pogovor o sen­čil­nikih in teksturah ni bil za nedolžna otroška ušesa.

To je vidno, ko se ozrem po spisku zadev, ki si jih sprogramiral. Na njem je vse mogoče, od pametnega pomagala za tipkanje do organizatorja gesel, androidnih igric in ogledovalnika 360-stopinjskih slik. Je to posledica radovednosti ali potreb? 
Obojega. V prvih letih po šolanju se lotevaš marsičesa, da bi si razširil obzorja, dobil izkušnje s čimveč orodji in našel tisto, kar te najbolj zanima. Po drugi strani moraš opazovati trg in ponuditi svoje veščine pri projektih, kjer si lahko koristen. Drugače do službe ni lahko priti, razen če odpreš lastno podjetje. Kdor misli, da bo stopil iz šole in takoj programiral natanko tisto, kar si je vedno želel, na primer igre, bo verjetno razočaran.

Pa so si področja v resnici tako sorodna, da ti iz­kuš­nje pri recimo programiranju krmilnikov za ogrevanje pomagajo pri grafičnih pogonih?

Pri obojem gre za metodično reševanje problemov v sorodnih orodjih oziroma programskih jezikih. Zato nekaj koristi kljub razlikam je.

In obratno: te v Sloveniji lahko na primer neka banka pohopsa za snovanje svojega spletnega servisa, če nase opozoriš z igro? 

To vsekakor je mogoče in se pri nas dogaja, če le ni izziv preozko zastavljen. Ker je država majhna, se veliko firm pozna med seboj in lahko zastavijo dobro besedo zate, če imajo s teboj dobre izkušnje. Prav zato se mi zdi, da je bilo moje delo za večje število ponudnikov doslej zame neprecenljivo, ker sem spoznal ogromno pomembnih ljudi in to je za začetek kariere zelo važno. Pa CV imaš lahko daljši, hehe.

Na njem je tudi dosti omemb zmag na natečajih, denimo Forumu inovacij in hackatonih ...

Ja, če si mlad programer, hočeš biti na čimveč takšnih zadevah, ker ti dajejo izzive.

A naposled si se zapisal prav navidezni resničnosti.

Tudi temu je botroval Carmack. Njegov prestop k Oculusu leta 2013 je pri meni vzbudil veliko zanimanje, ker ima možakar nos za tehnološke preboje. Naročil sem prvo razvojno inačico rifta, pa nato še vse naslednje. VR je s tem pritegnil tudi mene, ker gre za novo področje z izzivi, na kakršne doslej še nismo naleteli. Celo največji strokovnjaki za igre in grafiko se tu soočajo s problemi, ki zahtevajo ogromno iznaj­d­ljivosti in improviziranja. Skoraj kot v prvih letih 3D-grafike, ko je moral Carmack ugotoviti, na kakšen način pi­sati pogone za igre. Dosti je eksperimentiranja, kjer vsi tipamo, kakšne so mož­nos­ti in to je zabav­no! Sam sem najprej napravil verzijo Ponga za rift, za stari portal Share. Pozitivni odziv na demo Showdowna pa me je prepričal, da začnem s komercialnim razvojem.

Oculusov Palmer Luckey se je moral na Gamescomu 2015 privaditi na prepoznavnost, saj je prav avgusta prišel na naslovnico magazina Time.

Torej meniš, da tokrat VR ne bo propadel kot prvič v devetdesetih?
Takrat sem bil premlad, da bi uporabljal tiste čelade, ampak tokrat se res čuti, da gre za hiter napredek. Razlike med riftovim prvim dev kitom in drugim ter končno verzijo so velikanske. Višja frekvenca osveževanja, boljši senzorji, vse to močno nadgradi izkušnjo in zmanjša slabost. Na DK2 te dostikrat še kje daje omotica, na finalni izvedenki veliko manj. Fantje nekaj delajo prav.

Vseeno si je težko predstavljati, da bomo kmalu vsi, celo stare mame in ateti, radi ždeli na kavčih s čeladami na glavi ali se spotikali ob kable ...
Tu je seveda naloga nas developerjev, da napravimo nove vsebine, ki bodo ljudi pritegnile, ne le igre. ShowdownVR je v bistvu prvi naslov, ki je v celoti narejen okrog izmikanja z gibanjem glave – čeprav se mi zdi, da je veliko VR-ekip že napravilo kakšen tak demo. Vsaj mislim si, da bi morala biti to ena prvih idej vsakogar, ki je imel na glavi rift. Zato sem začuden, da takih iger ni več. Bolj ko bomo raziskovali, več bo novih principov. V tej začetni, prvi generaciji so pa VR-očala res bolj stvar nas zanesenjakov, 'early adopterjev'.

Dosti smo slišali o še nevidenih preprekah, s katerimi se srečujejo razvijalci za rift. Lahko na pri­meru Showdowna konkretno ponazoriš takš­ne zanimive rešitve in spremembe v mišlje­nju, ki jih to novo okolje zahteva od ustvarjalcev?
Tega je res dosti in takoj ko se rešiš ene nadloge, so tu tri nove (smeh). Na primer: takoj ob štartu sem imel dilemo, ali bo ShowdownVR stoječa ali sedeča igra. Ugotovil sem, da je najprimerneje, če je položaj igralca fizično karseda podoben tistemu v igri, sicer se prepričljivost podre. Ker igralčev lik v igri stoji, mora stati tudi igralec. To je recimo taka dizajnerska posledica. Potem imaš v VRu vedno prob­lem vmesnika. Če igralčev lik nima neke čelade ali vizirja, izgleda res bedno, če mu nekje plava hologramski prikaz statistik in tega, ker je čisto neprepričljivo. Zato sem številke v ShowdownVRu vezal na okolico in jih vidiš, če se ozreš k tlom. Podobna st­var je oblika menijev. Osebno se mi zdi brez zveze, če napisi plavajo v zraku, zato sem jih postavil na navidezne stene, po katerih se igralec ozira. Tako je iluzija prostora veliko močnejša.

Za prikaz visokih valov je Nejc uporabil Nvidijino tehnologijo WaveWorks in rezultat je navdušujoč. Sploh ko upoštevaš, kako omejeni so strojni viri pri navidezni resničnosti.

Posebej zahtevno je strojno optimiziranje, da VR-igre lahko sploh zadovoljivo tečejo.
Ja, to je pa sploh s tehničnega stališča zelo težka naloga. Navidezno resničnost je treba izrisovati pri devetdesetih sličicah na sekundo, v stereu, pri loč­lji­vosti okrog 2688 × 1600, in sicer na hardveru v rangu geforca GTX 970. Ločljivost mora biti namreč višja od nazivne riftovih zaslončkov, ker moraš upoštevati popačenje zaradi leč, sicer so piksli razmazani! Zato je jasno, da kvaliteta grafike VR-iger ne dosega tiste za običajne monitorje, ker je nič ne bi moglo poganjati. Ampak po drugi strani lahko omenjeno popačenje zaradi leč obrneš sebi v prid, kar sem storil pri ShowdownVRu. Namreč, ker igralec z očesom načeloma ne gleda izven centra, ampak za pogled drugam obrne celotno glavo, lahko brez problema znižaš kvaliteto slike na robovih, pa tega sploh ne bo opazil. To sem izrabil tako, da ShowdownVR sliko ob robovih izrisuje z nižjo ločlji­vostjo. Uporabil sem Nvidijin prijem viewport multi-casting in sceno razdelil na devet delov – srednjega in osmerico okoliških. V prvem teče igra na nastavljeni ločljivosti, v drugih pa jo niža, in to celo dinamično!
Takšnih optimizacijskih bonbončkov je cel kup, navsezadnje sem se z njimi ukvarjal skoraj leto. Po mojem največ z implementacijo glajenja robov. Pri njej moraš biti zelo pazljiv, kajti v VRu neposrečen anti-aliasing močno zamaže podobo in pokvari detajle. Načeloma hočeš imeti tu čim ostrejšo sliko. Hkrati sem opazil, in to se mi zdi zelo zanimivo, da lahko slaba implementacija glajenja igralcu oteži zmožnost globinske zaznave in fokusiranja očesa, kar je nadležno. Zato je treba AA res dobro pretestirati. Na koncu sem za Showdown shekal neko svojo verzijo, BXAA ali bias approximate anti-aliasing. Nasploh je bilo treba skoraj za vsak detajl, kot so recimo odbleski. Res ogromno dela za navidez enostavno sceno, ampak ravno v takih rečeh najbolj uživam.

Oculusov Palmer Luckey se je moral na Gamescomu 2015 privaditi na prepoznavnost, saj je prav avgusta prišel na naslovnico magazina Time.

Torej si v pogon Unreal, na katerem igra teče, dejansko dodajal lastno kodo?
Tako je. To je mogoče, ker je Unreal Engine 4 odprt, zato lahko slehernik šari po njem, najde hrošče ali slabosti in jih odpravi ali pač omeji. In seveda do­da svoje grafične rešitve, ki močno povečajo zmogljivosti, na primer Nvidijino kodo za valove Wa­veWorks ali za prostorsko osvetlitev VXGI. Ne morem prehvaliti Epica, da je svoj paradni pogon tako odprl. Tu se vidi, kaj pomeni open source. V zaprtem sistemu je težko odpravljati težave, ki se obvezno pojavijo. Sam sem jih imel cel kup na sejmih, ko sem recimo na Gamescomu predstavljal ShowdownVR. Ampak jih je bilo moč odpraviti. Če pa ne moreš debugat lastne kode, kako naj narediš zanesljiv izdelek?? 

Tudi ekonomsko je fajn ta nova praksa, po kateri so grafični pogoni za slehernika v štartu zastonj, nakar plačuješ delež od prodaje, šele ko igro uspešno izdaš. 
Absolutno. Enostavno rečeno: še pred petimi leti bi bilo to, kar počnem, praktično nemogoče, ker bi moral Epicu plačevati visoko licenčnino. Midva se danes o tem ne bi pogovarjala, ker ShowdownVRa ne bi bilo. Težko je povedati, kako zelo so Epic, Unity in drugi pomagali indie sceni s tem, ko so zrahljali licenčne pogoje.

No, vseeno Epic ni edini s takšno po­litiko. Tu sta še Unity in Crytek ... Zakaj prav Unreal 4?
Končni uporabnik ponavadi vidi samo lepo sliko, razvijalec mora pa upoštevati še veliko več dejavnikov. Epicova podpora developerjem je briljantna, medtem ko pogon nenehno in hitro posodabljajo. Vešč sem tudi v Unityju in CryEngine je s čisto grafičnega stališča še nad obema. A ko pretehtaš vse podrobnosti, ponavadi prevaga zanesljivost in hitrost orodij. In tu Epicovim ni para. 
Je razvoj VR-iger videti tako, da programiraš in oblikuješ okolico v editorju na klasičnem zas­lonu, nakar jo preizkušaš z naočniki?
Da. To seveda pomeni dosti natikanja in odstranjevanja očal, ki mi včasih dosti čepijo dvignjena na glavi, hehe. Kdor rifta nima doma, se mu zdi marsikaj nerodno. Rednim uporabnikom pa takšne stvari pridejo v kri.

Navidezna resničnost ne postaja vse popular­nej­ša samo zaradi iger, marveč vsled uporabnih aplikacij. Tebe so takisto že barali, če bi napravil kaj takega, kajne?
Ja, do mene so prišli z idejo, da bi zgradil ogledovalnik avtomobilov v navideznem. A se je hitro pokazalo, da je šlo bolj za tipanje. S tem namreč še niso imeli konkretnih izkušenj, zato sem jim moral najprej razložiti, kako to gre in na kaj bi morali paziti. Če si danes VR-dev, nisi samo oblikovalec navideznih prostorov, ampak celotne strategije razvoja in uporabe takšne aplikacije, ker tvoj naročnik ponavadi še nima pojma, kako naj bi vse skupaj izgledalo. Oni bi pač imeli VR, ker je to kul. Po drugi strani je lahko to za ambiciozne razvijalce velika priložnost. Zato se mi zdi, da imajo tisti, ki že danes tu nabirajo izkušnje, v prihodnje lahko velike koristi.

VR-Pong z več hecnostmi, kot je zaviranje časa, je še vedno moč najti na Steamovem Greenlightu. Bil je odobren, toda dlje Nejc razvoja ni peljal.

Če se sedaj vrneva k uvodnu ugotovitvi: ShowdownVR je danes videti precej drugačen kot na štartu in drugačen, kot ste si ga takrat zamišljali.
Tisto jesen smo bili v novoustanovljenem Frontseatu trije, poleg mene še dizajner in videoproducent. ShowdownVR smo načrtovali v precej večji obliki, z več okoliši, po katerih bi se premikal, razvojem lika in večigralst­vom. Žal naš team ni dobro funkcioniral in lansko pomlad sem se odločil, da zadevo zaključim sam, zaradi česar sem moral projekt oklestiti. Vsekakor šola za v prihodnje. Predvsem moraš biti pri sestavljanju moštva za lasten studio prepričan, da je že pred prihodom sleherni osrednji sodelavec mojster svojega poklica. Da bi se v firmi priučeval, po mojih izkušnjah ne gre.

V bistvu si doslej ustanovil že več podjetij. Najprej si bil samostojni podjetnik, potem sta bila Zeropass in Keyboarder, zdaj Frontseat. Kakšne so tvoje izkušnje z ustanavljanjem podjetij v Pod­alpju?

Pri nas je birokracija zapletena in počasna. S temi zadevami sem se ukvarjal tudi v ZDA in tam je vse enostavnejše in hitrejše. Ne samo, da imaš firmo hit­ro na nogah, marveč plačaš namenskemu servisu, ki ti upravlja zadeve. Če želiš tu projekt pognati na hitro, moraš ubirati sive poti, recimo prepise podjetij, za kar nisem več prepričan, da je legalno. Obenem zakonodaja ni prijazna do neodvisniških igri­čars­kih studijev. Na primer: če si lastnik in šef podjetja, vendar nisi zaposlen in nimaš prihodkov, kar se indie developerjem na začetku rado dogaja, te pri nas ožigosajo kot nekoga, ki zlorablja socialno podporo (četudi je ne prejemaš!), zato te avtomats­ko zaposlijo in moraš pla­čevati prispevke. Tu se bodo morale zadeve še spremeniti. 

Ampak na koncu, po vseh tegobah, je igra tu.
Ja, čeprav kasneje, kot sem načrtoval. Pri Oculusu so me negativno presenetili, ker so potrebovali res veliko časa, da so naslov potrdili. To je nujno, če se želiš pojaviti v njihovi trgovini. Ker so zamudili rok, sem se na koncu zatekel k Steam Greenlightu, da bi igro čimprej spravil ven. Tu je bil postopek nenavadno hiter, saj mi jo je Valve brž odobril, ko sem poslal še pisno prošnjo. Očitno imajo tam politiko pospešenega lansiranja VR-izdelkov.

Kako je po vsem trudu občutiti izid lastne igre?
Na eni strani čutiš olajšanje, na drugi pa z izidom nikakor ni konec dela. Prežati moraš za hrošči, ki jih najdejo uporabniki, ali drugimi potrebnimi popravki. Razburjen si zaradi pričakovanja odzivov, ki takrat pridejo. Še več dni po izidu nisem preveč dob­ro spal, haha.

Večino tistega, kar je Nejc predaval na SGCju, se je naučil sam, z neumornim šarjenjem po kodi Idjevih in Epicovih enginov. Korajža očitno velja!

Obračun razvoja
Na Slovenski konferenci za razvijalce sem spremljal Nejčevo predavanje, na katerem je navzočim razgrinjal precej tehnične detajle razvoja ShowdownVRa. Kljub zapleteni govorici in utrujenosti, ki se ga je držala, ker je igra izšla malo predtem, je bil njegov zanos nalezljiv. Še vedno povezuje vse niti projekta in igro še posodablja. Skušal se je pririniti k izidu riftovih gibalnih zaznaval touch in zanje v decembru dodal podporo. Z mahanjem je tako moč zdaj usmerjati ščit za blokiranje izstrelkov. Za kaj več mu zmanjkuje časa, saj se je vrgel še v eksperimentiranje z naočniki hololens. Zaenkrat proda dvesto izvodov mesečno, kar ravno pokrije stroške. "Glede trženja bo potrebnih še dosti izkušenj," pravi. A z nepopustljivostjo, s kakršno šari po grafični kodi, se zanj ni bati. Navsezadnje je zmožen človeka prepričati, da je v navidezni resničnosti prihodnost. Naočnikom in kablom navkljub.

Mimo resničnih čeri navideznega objavljeno: Joker 282
januar 2017