Optimalizácia, Gleb a niečo navyše - Vox Vivat #2
Vox Vivat #2
V druhom vývojárskom denníčku sa pozrieme na čom Team Vivat momentálne maká. Z nadpisu je ti jasné, že sa potíme hlavne pri optimalizácii hry, no našli sme si čas aj na príjemné drobky, ktoré oživia hernú Bratislavu. Poďme na to, Brr! 💪.
Spíše kladné recenzie na Steame
Po prvom patchi, ktorý opravoval najzávažnejšie chyby ako rotujúce NPCčka (sorry FiFqo) sa na Steam stránke Vivat Slovakie recenzie ustálili na Mostly positive resp. Spíše kladné.
Veľmi nás to teší a motivuje fixovať to, čo hráčov a nás najviac štve – optimalizácia hry. Ak máš hru Vivat Slovakia a zatiaľ si pozitívnu recenziu nepridal či nepridala, touto cestou ťa o to veľmi prosíme 🥺. Na jednu stranu mať negatívnu recenziu s textom „Mataro Minete nevie sklápať svetlá“ je zábavné, no na druhú nám to robí problémy na platforme Steam. Choď nám preto prosím hodiť po pozitívnej recenzii a my ti za to budeme prinášať bezplatný obsah. Ruku na to? 🤝
Ako áno, je to Early Access, ale keď sa vývojári posnažia, mohol by to byť jeden z "klenotou" našej SK hernej scény... najviac ma ale baví ten dabing, ten je proste BOŽÍ!!!
História Vivatu v minidokumente Vidadu
Platforma Vidadu, okrem iného, pripravuje pravidelné minidokumenty z pozadia slovenských a českých tvorcov. Strapatý úsmev nášho producenta Romana sa tak zaradil medzi grimasy Andyho Krausa či legendu Som čarovný. Vo videjku hovorí o histórii modovania GTAčiek na gta.cz či SA:MP Net0peer serverov. Roman sa nevyhýbal ani otázkam, koľko projekt Vivat Slovakia od svojho vzniku vlastne stál.
Spomeň čerta, vyskočí Gleb
Bratislavský týpek, ružinovský jungelist známy pod prezývkou Gleb zavíta do herného rádia LFO. V novom patchi sa objaví skladba Načo som tam chodil? z Glebovho najnovšieho albumu Dlhá cesta domov.
Zároveň tak, ako obálka albumu zdobí panelák v jeho ružinovskom hoode v realite, sme cover CDčka na barák vytapetovali aj vo Vivat Slovakii. Ak si fan Big Boy Gleba a ceníš tento free update, skús panelák v hre nájsť a hoď si jeho fotku na story s označením @vivatslovakia a @glebzoo 😉
Letisko mimo hernej mapy a skrášľovanie hracej mapy propsami
Výťah hore do UFA ti vo Vivat Slovakii jazdí? 🤩 Je z neho krásny výhľad na celú digitálnu Bratislavu, ktorú poctivo polishujeme. Znamená to, že zdokonaľujeme miesta, kde boli chybičky v teréne či rôzne zabudnuté ulice dostávajú väčší šmrnc. Nezabudni nám takéto miesta nahlasovať cez Pause menu „Spätná väzba“.
Okrem toho sa zameriame aj na tzv. distant terrain čiže na neprístupné lokality, ktoré sú síce mimo mapu, ale dajú sa z výšky vidieť. Jednou z takých bude aj letisko M. R. Štefánika, na ktoré časom občas aj niečo pristane.
Smola Fortuna - nové typy vozidiel
Ivan nezaháľa a z Ivanových kár je počuť po nociach neustály rámus. Jeho najnovším kúskom je ekonomické autíčko Smola Fortuna, ktoré už len na pohľad páchne svojou typickou arómou lacných plastov. Do Vivat Slovakie sa ti postupne v bezplatných patchoch pridá rovno celá plejáda rôznych typov Fortún. Vypeckovať si na Fortune nového Gleba bude ten pravý slav zážitok.
Nedarí sa ti v nejakej misii? Skús do klávesy vlnovky zadať kód drmax, aby sa Milan liečil rýchlejšie.
Motorový rušeň - Okuliarnik
Vo Vivat Slovakia nájdeš jazdiace električky, no vlaky majú zatiaľ nekonečné zdržania. Dôvod môže byť aj ten, že máme v hre viaceré verzie vagónov, no žiadny rušeň. To sa momentálne mení a legendárny Okuliarnik sa blíži na digitálnu koľaj. Ohľadom vlakov máme neskôr ešte nejaké úmysly, no na tie si zatiaľ počkáme, keďže doba meškania sa môže zmeniť. 😂
Plne animovaná cutscéna... či nebodaj cutscény?!
Okrem kritiky na optimalizáciu sme si vypočuli a prečítali mnohé feedbacky aj na naše komiksovo ladené cutscény. Ešte predtým, ako sa vrhneme k zaujímavým správam – povedzme si nepovedané. Vytvoriť dobre vyzerajúce animované filmíky je neskutočne náročné. Obzvlášť pohyb postáv, aby vyzeral prirodzene je najväčší oriešok. Pasujú sa s tým aj mnohé obrovské hry, ktoré volia rôzne alternatívy. My sme sa vďaka tipu od Jara Mika inšpirovali cutscénami z Hitman 2 remaku. Dôvod je jednoduchý – čas. Vytvoriť dobre vyzerajúcu cutscénu s prirodzeným pohybom postáv je doslova výroba mini animovaného filmu. Lenže my sme k tomu ešte vytvárali taký drobný element – obrovskú open world hru 😅. Vo väčších herných štúdiách na cutscény majú samostatné oddelenia. U nás práve naopak, jeden človek zastáva viacero pracovných pozícií. V rámci časových možností, aké naša Mirka mala, odviedla vynikajúcu robotu a ďakujeme každému, kto vie pochopiť väčší obraz a to je ten, čo stále opakujeme – náročnosť celkového projektu Vivat Slovakia.
Každopádne to by nebol Team Vivat, keby sme nepočúvali feedback a nevymýšľali ako spraviť dobrý kompromis. Mirka sa v týchto dňoch už oblieka do obleku na záznam animácií Rokoko Smart Suit Pro 2 a v kombinácii s našou staro-novou animátorkou Michaelou skúšajú pripraviť záverečnú cutscénu finálnej hry tak, aby bola plne animovaná. Keďže sme doterajšie cutscény robili in-game a nie kreslené mimo enginu, technicky vieme animáciami doplniť aj tie doterajšie. Uvidíme, ako sa babám bude dariť. Držme im spoločne palce a ak môžeš, zanechaj im pod našimi oficiálnymi kanálmi podporný komentár. Táto časovo náročná robota sa bude vďaka tvojej podpore bude robiť o niečo príjemnejšie. Robíme to pre teba 🤗
Najnáročnejšie budovy modelujeme nanovo s novými skúsenosťami
Dostávame sa konečne ku vysnenému slovu optimalizácia. Je to široký pojem, keďže naháňať FPSká sa dá veľmi rôzne. Vyžaduje to veľa skúšania a testovania. Niečo výkon hry zvýši, niečo nie. Všetko to stojí čas a peniaze. Keďže sme si ako prioritu pred pridávaním obsahu z druhej strany kazety Vivat Slovakie určili optimalizovanie hry, naši modeléri prikladajú taktiež ruky k dielu. Damián preberá najneoptimalizovanejšie modely budov a znižuje ich náročnosť. Vzdelávacie Vivat okienko: Každý 3D model má podľa svojej náročnosti a šikovnosti modeléra určitý počet triangles, čiže verticles, čo môžeme preložiť ako body. Tri body na 3D modely tvoria jeden trojuholník, resp. polygón. Čím viac týchto trojuholníkov 3D model obsahuje, tým je náročnejší na vykreslenie na tvojom kompe. Pri hrách sa rôznymi technikami modeléri snažia znížiť počet bodov so zachovaním vizuálnej kvality modelu.
Náš Damián takto bojoval napríklad s hotelom Minsk spolu s obchodným domom A priori na Kamennom námestí, kde komplex budov stiahol z cca 80 000 tris iba na niečo cez 11K trianglov. S cieľom optimalizácie sa zlepšila aj geometria budov. Ďalšou oholenou budovou bola knižnica Ružinov, kde sa z neuveriteľných 63 945 tris stiahla aj s novým ošatením na 41 468. Nový textúrový šat dokonca budovu skrášlil, čiže pauza pre potlesk pre Damiána! 👏 👏. Trojicu výberu hviezdnej roty uzatvára budova štatistického úradu pri Trnavskom mýte, ktorá siahala na 100K, no keďže nejde o príbehovo dôležitú budovu, po istých kompromisoch má len 8K tris.
Digitálnu Bratislavu do Vivat Slovakie sme skladali z naozaj obrovského počtu ľudí (ktorým nekonečne ďakujeme!💞), či už formou školskej praxe alebo len tak vo voľnom čase, počet trianglov nám tak v niektorých budovách kolíše. Počas Early Accessu sa vieme na tieto budovy zamerať a premodelovať ich na vyšší game ready štandard. A to aj robíme. Tentokrát potlesk pre teba, ak nám dôveruješ už počas fázy predbežného prístupu a máš Vivat Slovakia zakúpenú zo Steamu! 👏 👏
Prvé kontúry vozidla Gerlach 725
Autá vo Vivat Slovakia sú vynikajúce, že? Od Ivana máme echo, že po Smola Fortuna sa z československých automobiliek objaví v hre ďalší klenot a to Gerlach 725. Model zatiaľ nejazdí, je bez interiéru a s kolesami od DBW, no dokým príde optimalizačný patch sa s ním v Ivanových kárach určite ešte pohrajú. Môžeme prezradiť, že s týmto autom chystáme v budúcnosti menšie prekvapenie v súvislosti s autodrómom v Petržalke. Bude to monštrum!
Vivat Slovakia ešte v predbežnom prístupe prejde na Unity 6 🎉
Späť ku optimalizácii! Najviac sa toho práve deje na pozadí v tajných kobkách programátorov, kde Kubo a Samo zvádzajú neľútostné boje o FPSká. Momentálne máme hru v predbežnom prístupe rozdelenú na dva konáriky. Prvý je live na Steame, ktorý obohacujeme opravami, optimalizáciou a novým menším obsahom. Druhý branch, teda konár, beží na najnovšej verzii Unity 6, kde sa dejú najväčšie optimalizačné kúzla. Naším cieľom je samozrejme čo najskôr tieto dva branche spojiť
Čo to znamená pre teba a tvoju hru? Že ten hlavný optimalizačný patch vyjde o niečo neskôr. Nedovolíme si tvrdiť ešte kedy, no ver, že robíme maximum, aby sme ti napravili framerate Vivat Slovakie.
HLODy su momentálne vykresľované double-sided pretože niektoré majú flipped normals. Normály sa flipnú, ak je v danom chunku objekt, ktorý ma záporný scale. Keď vyriešime vsetky záporne scalnuté objekty, tak budú môcť byť HLODy vykresľované single-sided, čo ušetrí výkon.
Trošku programátorského žargónu, predstavujeme optimalizované HLODy
Veľmi, veľmi dávno sme si povedali čo sú to LODy. Každá budova má vo Vivat Slovakie rôzne verzie týchto LODov a vidíš ich v závislosti od vzdialenosti, ako ďaleko od nich stojíš. Okrem nich máme ale aj tzv. HLODy. Táto skratka znamená Hierarchical level of detail, čiže ide o viaceré budovy naraz. Celá Bratislava je rozdelená do kúskov (chunkov), ktoré sa prenáčitavajú podľa toho, ako sa po mape hýbeš. V nich sú tieto HLODy, ktoré sú ale načítané stále. Dobre ich vidíš napríklad, keď sa postavíš na UFO vyhliadku a môžeš zazrieť celú Bratislavu.
Náš technický dizajnér Samo si vytrhal takmer všetky vlasy a dva týždne jedol iba domáce špagety, no podarilo sa mu znížiť využitie pamäte textúr pre najvzdialenejšie budovy na polovicu. Čiže HLODy budú zaberať o polovicu pamäte menej. A to je extrém. Aby toho nebolo málo, Dominikovi 3D modely nedali spávať a vymyslel taktiku, aby tiene z budov nevrhali samotné budovy, ale spomínané HLODy. To znižuje počet „vrhačov tieňov“ čiže shadow casters zase o riadny počet. Samuel tento nápad pretavil do reality a pridal HLODom aj podporu priesvitnosti. Tvoj počítač sa im môže poďakovať 🙏
Optimalizovanie načítavania hernej Bratislavy
Už pár sekúnd vieš, čo sú to chunky z ktorých je vo Vivat Slovakia zložená herná Bratislava. Keď si medzi nimi prechádzal či prechádzala, museli sa načítať čo vytvorilo znateľný zásek resp. stutter. Naučíme sa nový výraz – Game object. Je to vlastne akýkoľvek herný objekt umiestnený v Unity. Môže to byť viditeľný objekt ako lavička či auto, môže ísť o svetlo alebo dym a dokonca aj rôzne body, napríklad waypointy po ktorých sa hýbe doprava v hre. Medzi prechodom chunkov sa všetky tieto herné objekty musia načítať, či už sú pre hráča viditeľné alebo neviditeľné. Kubovi sa ich podarilo z hry dostať preč viac než 55 000 kusov. Vymyslel spôsob ako sa waypointy (základný prvok všetkej navigácie v hre) a spawnpointy (miesta, kde sa má zjavovať mestský život) dajú prerobiť z game objectov do základných dát. Predstav si, že o 55K game objectov menej bude tvoj komp musieť pri Vivat Slovakii načítavať počas pohybu alebo loade. Keď sa po optimalizačnom patchi budeš prechádzať po mape, všimni si okrem zvýšených FPSiek aj to, ako výrazne klesli tie momentové záseky.
Pridané predkompilovanie shadrov pri spustení hry. Počas nej sa nemusia posielať na GPU, čím sa znížil stutter pri loadovaní chunkov. Easy fix.
Stále nemáš dosť? Dobre, môžeme tu vo Vivat doučovaní herného vývoja pokračovať aj do rána. Nalistujme si kapitolu Scény. Je to niečo ako vrstva vo Photoshope. Môžeš mať načítané viaceré scény, ktoré dokopy dávajú zmysel. Napríklad keď ideš vo Vivate zmlátiť obuškom Ceca (zatiaľ bez bojového systému), pred reštikou stoja mafiáni. To je okrem mnoho scén načítaná aj konkrétna scéna pre danú misiu Exorcizmus. Kubo po novom vytvoril samostatnú scénu aj pre navmesh, ktorý zabezpečuje pohyb NPCčiek, alebo to, aby Milan trafil pri nastupovaní ku dverám vodiča nech stojí kdekoľvek v okolí auta. Ako sme písali hore, pri optimalizácii skúšame všemožné veci a testujeme. Niečo výkon zvýši, niečo menej. Toto zrovna dostatočne výrazne optimalizáciu Vivat Slovakia zvyšuje 😊
Sleduj vývoj Vivat Slovakie na:
- Instagrame
- Facebooku
- TikToku
- či priamo na komunitnom Discorde
Ďakujeme za záujem!
Team Vivat