|
![]() ...
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. Dolge noči štancanja kode ob energijskih pijačah se slišijo skoraj preveč stereotipno. 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čane. Tudi Carmacku in Id Softwaru ne bi uspelo, če ne bi malo 'potegnili' delovnikov. John Carmack je brez dvoma tvoj največji vzornik (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 pravzaprav 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četki 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. 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 izkuš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 iznajdljivosti in improviziranja. Skoraj kot v prvih letih 3D-grafike, ko je moral Carmack ugotoviti, na kakšen način pisati pogone za igre. Dosti je eksperimentiranja, kjer vsi tipamo, kakšne so možnosti in to je zabavno! 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.
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 primeru Showdowna konkretno ponazoriš takšne zanimive rešitve in spremembe v mišljenju, 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 problem 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 stvar 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.
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čljivosti 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čljivostjo. 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.
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 doda svoje grafične rešitve, ki močno povečajo zmogljivosti, na primer Nvidijino kodo za valove WaveWorks 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 politiko. 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 zaslonu, 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 popularnejš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.
Č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čigralstvom. Ž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 Podalpju? 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 hitro 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čarskih 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 avtomatsko 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č dobro spal, haha.
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. |
|
|