• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    BYDKUNITY 3D
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    tak tohle je ten tajemny miner unity projekt...
    BYDK
    BYDK --- ---
    Tady na tom jsem delal:

    Miner Wars Arena - Trailer - YouTube
    http://www.youtube.com/watch?v=rhhU5FJGmqQ


    Je to delane pod Unity3D. :) Puvodne to melo byt i na jine platformy jako iOS a Android. Bylo to docela peklo to optimalizovat a udelat tomu rozumne ovladani. Nakonec z toho seslo.
    Z firmy jsem odesel po lonskem GDS, kde jsem hru prezentoval. Jestli nekdo byl.
    Nakonec to teda dokopaly dokonce. Tak jsem na to zvedavy, jak se jim to povedlo ci nepovedlo. :)
    PETRVODAK
    PETRVODAK --- ---
    Ahoj, hledáme Zapáleného programátora her:
    [ OFFERING WORKNABÍZÍM PRÁCI: Zapálený programátor her / Praha ]

    Veškeré dotazy, prosím, přes email info@about-fun.com
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    Unity je v mnoha ohledech hrozne fajn, v nekterych defakto nema v hotovych resenich konkurenci, ale obsahuje tolik kokotin.... :(
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    TENCOKACISTROMY:


    Moje varianta update funkce, ktera se vola kazdy snimek:

    Nacteni pozice kamery
    Urceni bloku, ktere musi byt nactene, aktualizace seznamu nenactenych

    if (toadd.count == 0)
    return;

    vytahnuti a aktualizace jednoho nebo vice bloku (podle nastaveni a aktualniho fps)


    Samozrejme, ze bych mohl pouzit na pozadi bezici nezavislou korutinu, ktera by jen kontrolovala ten seznam a neco z nej tahala, ale tady je to uplne zbytecne. Korutina ma smysl jen ve chvili, kdy nebude volana kazdy frame, nebo kdy v ni ma smysl pouzivat casovani pres yield return Wait



    Ad hlavni thread a obsluha - ale jasne. Jenze u Unity je pruser, ze oni v tom jednom threadu maji uplne vsechno... Vcetne toho, ze puvodne multithreadovy physx, ktery normalne bezi asynchronne na vlastnich threadech, si prepsali tak, aby jel v tom jednom threadu. Timpadem uz tak dost pomaly physx (ktery od zacatku slouzil jako reklama na to, ze na hw karte pojede lip) uplne ochromili.


    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    SHIGORBIRDMAN: Porad nechapu v cem je ten rozdil. Tak jako tak to musis teda kontrolovat. Cili predpokladam ze to mas v nejaky metode. Pak muzes mit zapis:
    while(true) {
        if(false == MyLoadingMethod()) {
            break;
        }
    }

    A kdyz mas hotovo, tak vratis "false" a nebo "true", to uz je na tobe.

    Jo to vytvareni/obsluhovani UI objektu v hlavnim threadu je obecnej pozadavek vsude mozne. To nevycitej jen Unity :). Ono to ma dobry duvody. Ty duvody lze obejit, ale je to extremne narocny, takze to je pro jistotu plosne zakazany :).
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    TENCOKACISTROMY: jiste. nic z api nelze volat z jineho threadu.

    korutiny my po yield return skoci presne na to same misto, v tomhle pripade ale potrebuju v kazdem framu pred zahajenim instancovani overit jestli uz nahodou neni treba streamovat neco dalsiho. Takze v kazdoframovem updatu overim pozici, zkontroluju bloky ktere maji byt nastreamovane, uparvim podle toho queue a az pak z ni vytahnu par polozek a aktivuju.

    O tom jak jsem vcera nadaval pri delani editorovych skriptu nemluve, nejspis se za tyden na unity vyseru a bud zreinkarnuju vlastni c# engine na svoje hratky, nebo se na to vyseru uplne a bude:)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    SHIGORBIRDMAN: A predpokladam, ze ty meshe se musi delat v tom hlavnim threadu. Ze se nesmi vytvaret v jinym, je to tak nebo se mylim?

    A nejsou ty korutiny to samy jako to co provadis v tom frame-by-frame?
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    TENCOKACISTROMY: unity ma thready, ale odmita je pouzivat, protoze proc. Kompletni API je singlethread a neni mozne ho volat z jinych threadu nez hlavniho unity.
    Samotne unity pouziva thready jen velmi symbolicky v backgroundu, pro nacitani dat pres WWW tridu, a pro verze umoznuje async loading resourcu pripadne scen v backgroundu.
    Jenze pak pijde velke jenze, i kdyz se recena scena nahrava asynchronne (coz je ten jejich "full fledged streaming joke"), jakmile se donahrava, tak se nainstancuje behem jednoho framu.

    Pokud se nahravaji jen nejaka vizualni nebo audio data, tak je to celkem v pohode (akorat velke meshe trochu rvou pri vytvareni vertexbufferu), ale pokud je tam fyzika, je kurevsky zle. Jak maji ti kreteni i tu vlastni implementaci physxu kompletne v jednom threadu a pochopitelne fyzikalni data nemaji predpecena, tak se physx.bakecollisions opravdu pobavi.



    TENCOKACISTROMY: korutiny obcas pouzivam, ale tohle resim vlastni queue a instancovanim vzdy jen par kousku za frame, takze v idealnim pripade to na PC jen stahne framerate na chvili... ale co mi to udela na ipadu, toho se bojim az desim :/
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    SHIGORBIRDMAN: jen takovy napad. tam lze poustet tu metodu ktera bezi pres nekolik framu pomoci triku pres "yield return", nepomohlo by ti to?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    SHIGORBIRDMAN: to nema thready?
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    jo, tak instancovani v unity je fakt lahudka :/ ti debilove maji fakt uplne vsechno v jednom threadu a abych instancoval pomalu po jednom objektiku kazdy frame aby to neskubalo :/
    BYDK
    BYDK --- ---
    MAIMONIDES: Jak se to vezme. Zacal jsem s tim tesne, nez jsem nastoupil do prace. Coz je 5mesicu nazpet. Udelal jsem prototyp gamecore casti a je hotovy tak na 75%. Puvodne to melo byt na telefony, ale rozmyslel jsem si to, ikdzy to mam vcelu optimalizovane. TEd se snazim abych ziskal cas. Pak to pujde rychle. :)
    VIRTUALVOID
    VIRTUALVOID --- ---
    Tiez bych rad videl/vedel :-)
    MAIMONIDES
    MAIMONIDES --- ---
    BYDK: Na to zveřejnění se moc tešíme.
    Jak dlouho už na tom projektu pracuješ?
    BYDK
    BYDK --- ---
    Hledam 2D/3D grafika, ktery mam rad stredovekou architekturu. A ma cit pro dane tema. Jedna se o jednoduchou grafiku a celkove ji neni mnoho. Radeji bych cloveka, ktereho to bude bavit, nez cloveka ktery to bude delat jen za penize. A pokud ho to bude bavit a bude potrebovat privydelek, rad se odmenim, kdyz to bude stat za to. ;)

    Projekt je pod Unity, jak jinak. Mam ho uz rozdelany a z casti funkcni. Zanedlouho projekt zverejnim, takze se dozvite vice.
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    ha. ha. ha. performance.

    bmw pobavilo "Automatic upscaling when rendered in lower resolution".
    Beru teda ze pokud je to i u free, tak je to neco "noveho", ale jako priklad "nove" featury to dost pokulhava.

    SLASH
    SLASH --- ---
    Unity Technologies Blog » Blog Archive » Unity 4: AAA graphics and performance for your mobile games
    http://blogs.unity3d.com/2012/07/05/unity-4-aaa-graphics-and-performance-for-your-mobile-games/
    MAIMONIDES
    MAIMONIDES --- ---
    SIRLOON: Myslim, že jsme profesionální hobbysti:)
    SIRLOON
    SIRLOON --- ---
    SHIGORBIRDMAN: to urcite ne. mam ted pracovni dobu pevnou, zadne crunche a tak :) spis sem to myslel tak, ze bych chtel zacit delat neco bokem, jen tak abych z toho nevypadl uplne :)
    Kliknutím sem můžete změnit nastavení reklam