Slovenská hra Last Wolves devblog 13

Miroslav Žák – 14/10/2020

Po dvoch rokoch sme sa znova dali na postovanie blogov. Zmenilo sa veľmi veľa vecí a pracovali sme na viacerých iných projektoch, takže sme nemali dostatok času pokračovať na Last Wolves. Teraz máme viac času a sme späť s veľkým updatom a zmenami. Poďme sa pozrieť na to, čo sa zmenilo.

Webstránka

Takmer rok nám nefungoval web a pridávanie blogov, pretože sme mali problém s databázami a leveland api a preto sme to museli urobiť odznova a vylepšili sme niektore časti vrátane dizajnu. Máme v pláne veľa vylepšení na webe, takže určite odporúčame sledovať naše blogy a sociálne siete.

Animácie

Po dlhej dobe sme začali robiť animácie v externom programe, v novom Blenderi 2.8. Zistili sme, že je jednoduchšie vytvoriť animácie externe, v Unity nastaviť rig na Humanoid a potom použiť tie isté animácie pre viacero postáv, čo nám otvára novú možnosť výberu postavy, s ktorou bude možné hrať. Máme to samozrejme v pláne.

Terén

Model terénu
Skúšali sme implementovať voxelový terén, aby sme pridali zaujímavú featuru do hry a aby mohli hráči kopať do terénu. Znie to síce dosť luxusne, ale je fajn sa na to pozrieť realisticky.

Last Wolves

Každý bod na voxelovom teréne sú vlastne dáta. Aj keď to hráč reálne nevidí. Predstavte si 3D priestor 100x100x100 kociek každú s hranou 10cm. Každý vrchol, kde sa kocky spájajú, alebo sú to vrcholy veľkej kocky sú vlastne body. Každý ten bod má v sebe údaje o polohe a tiež aj bool, či sa má zobrazovať, alebo nie. A teraz si predstavte, že takých gigantických kociek, je vo svete milión. Vlastne, čím viac ich je pri sebe, tým väčšie je rozlíšenie terénu. A tým väčší objem dát je potrebné ukladať, alebo posielať. A keď je svet nekonečný, viete si asi predstaviť, koľko dát to je. Dobre. Poviete si, použite seed a posielajte zmeny. To je síce fajn, ale pri 100 hráčoch a nekonečnom svete, pri každej zmene sa všetko synchronizuje. A plus keď sa po roku od začiatku servera pripojí nový hráč, možno sa ani nepripojí, pretože taký objem dát bude sťahovať veľmi dlho. Preto sme sa rozhodli ponechať pôvodný koncept predrobeného terénu. Samozrejme, bude k dispozícií viarero máp, prípadne časom aj map editor a komunitné mapy. To je ale zatiaľ iba nápad a jeho realizácia je ešte ďaleko.

Terénné elementy

Pridali sme plugin, ktorý zabezpečí, aby sa na teréne lepšie zobrazovala tráva. Teda, vlastne na akomkoľvek objekte, keďže sme prešli z trávy, ktorá patrila terénu na samostatné objekty. Týmpádom podlieha Occlusion-u a je to možno aj optimálnejší variant. Uvidíme ale časom.

Mirror block

Zrkadlá sú všeobecne náročná vec na implementáciu a preto je každé zrkadlo robené buď pomocou shader-a, alebo v Unity pomocou kamery a render textúry. Je to super vec, ale len dokým sa tých zrkadiel pri 100 hráčoch na serveri neobjaví 500. Potom už to render na klientovi nemusí zvládať.

Grafika

Updatli sme postprocessing, aby sme zlepšili hernú atmosféru. Samozrejme sme optimalizovali rendering, aby sme predišli FPS dropu.

Scripting

Všetky scripty sme optimalizovali. Doteraz sme používali FindObjectByType(); vždy, keď sme chceli nájsť nejaký script. Problém bol ale v tom, že Unity toto robí ako iteráciu, to znamená, že prejde všetky objekty v scéne a prvý, ktorý nájde s týmto scriptom, ten vezme. Preto sme toto vyriešili optimalizáciou. Vytvorili sme v každom scripte premennú pre daný script a FindObjectByType už stačilo len volať raz, keď bola daná premenná null. Oveľa optimalizovanejšie.

Crafting

Crafting sa od posledného devblogu nezmenil s výnimkou ukazovateľov na to, či je niečo možné vycraftiť, alebo nie. Zobrazí sa vedľa daného itemu. Tiež sme ho pre lepšiu prehľadnosť kategorizovali.

Last Wolves

New Item – Facemask

Keďže je pándémia, tak sme pridali nový módny tématický doplnok – Face Mask.

Miroslav Žák

České a slovenské hry sbírám od roku 2001. Více než o samotné hraní se zajímám o vývoj a archivaci. Mojí hlavní zbraní je motivace.

Komentáře

Sdělte nám svůj názor

Zatím žádný komentář.

Související články