Unreal Engine vs Unity

Dlho sme s tímom rozmýšľali, ktorý engine použiť. Ide totiž o záväzok, ktorý rozhodne o podobe budúcich projektov a určí celkové smerovanie nášho malého štúdia.

Round 1 (Dokumentácia, podpora a komunita)

Absolutne pri každom projekte platí, že by sa autori mali najprv oboznámiť s nástrojmi, ktoré sa rozhodnú používať. K tomu rozhodne môže pomôcť komunita, ale úplne najviac kvalitná dokumentácia.

V tomto smere sa mi rozhoduje ťažko. Oba nástroje poskytujú kvalitnú dokumentáciu. Ak sa však ponoríme hlbšie, tak zistíme, že dokumentácia pre Unreal Engine má navrch. Za posledné roky sa Epic naozaj činil. Taktiež aj komunita neotála a tam kde Unity v minulosti malo navrch má dnes navrch Unreal.

V prípade Unity sa zdá, že komunita viac žije. Keď si však hlbšie prezriem jednotlivé diskusné vlákna, tak nenachádzam viacmenej užitočné informácie, ale skôr len špekulatívne diskusie a lacné rady, ktoré vedú do slepej uličky.

Víťaz 1. kola: Unreal Engine

Round 2 (Vývoj a práca s nástrojom)

Často sa na internete objavujú debaty o prívetivosti jednotlivých rozhraní a celkovo o tom ako rýchlo si človek dokáže jeden alebo druhý engine osvojiť. Budem čisto subjektívny. V tomto smere je obtiažne vyniesť objektívny súd.

Unreal Engine má Blueprinty, ktoré sú podľa niekoho komplikované a zmätočné. Súhlasím. Na druhú stranu umožňujú aj absolutnému neprogramátorovi pochopiť základné princípy navrhovania hier.

Pokročilý užívateľ možnosti ocení, ale zato začínajúci tvorca sa môže rýchlo stratiť. Unity je jednoduchšie a pokročilejšie funkcie si treba pracne napísať.

Pri hlbšej analýze síce vyplávajú nedostatky jedneho alebo druhého nástroju, ide však čisto o subjektívnu s’kúsenosť a každému bude vyhovovať niečo iné.

Víťaz 2. kola: Remíza

Round 3 (Široké uplatnenie)

Akokoľvek to nerád priznávam, uplatnenie Unity je omnoho širšie. Unity je škálovateľný nováčik. Vývoj Unity je progresívny a rýchlo dobieha Unreal. Väčšina nových technológií je v Unity nasadená v predstihu pred konkurenciou.

Unreal samozrejme ponúka rovnaké možnosti. Avšak špecializované nástroje pre konkrétny typ hier sú v Unity spracované kvalitnejšie. Unity sa vyvíja postupne. Graduje. Evolvuje. A preto je jedno či sa rozhodnete robiť 2D platformovku alebo 3D hru. Nástroje ktoré Unity ponúka plnia svoju funkciu výborne.

Zato Unreal bol postavený na tvorbu veľkých 3D AAA titulov a preto jednotlivá funkcionalita pre iný typ hier sa dorábala dodatočne a nie vždy najšťastnejšie. Preto tvorba platformovej hry môže byť v Unreal Engine zvláštny zážitok.

Víťaz 3. kola: Unity

Round 4 (Rozšírenia a Marketplace)

Unity má veľký trh. Avšak kvalita obsahu je v mnohých prípadoch sporná. A síce Unreal Marketplace nie je tak rozsiahly, poskytuje kvalitné balíky a rozšírenia, ktoré sú dobre zdokumentované. Netvrdím, že Unity nemá kvalitný obsah, len väčšina obsahu je určená skôr pre mobilné hry. Taktiež dokumentácia býva slabšia.

Epic naviac pre Unreal Engine množstvo svojho obsahu poskytuje zdarma vrámci svojho programu na podporu začínajúcich tvorcov. Každý mesiac je uvoľnený nový obsah. To je skutočné plus. Unity taktiež ponúka bezplatný obsah. Ten ale nie je tak štedrý ako v prípade Unreal Engine.

Unity má však väčší repozitár a človek nájde takmer na akýklvek žáner framework. Aj napriek tomu sa prikláňam k remíze.

Víťaz 4. kola: Remíza

Round 5 (Rýchlosť a optimalizácia aplikácie)

Unreal je engine pre tvorbu AAA titulov. Tomu odpovedajú aj nástroje a očakávania enginu. Unreal k svojmu chodu vyžaduje rýchly a moderný počítač. Niečo, čo si vo veľkom štúdiu môžu dovoliť. Preto niekto s integrovanou grafikou, starším procesorom bude mať krušné chvíle pri kompilovaní zložitejších scén.

Unity však pracuje efektívnejšie. Je to dané aj tým, že Unreal Engine množstvo funkcionality postavil formou workaround, zatiaľ čo unity sa vyvíja postupne.

Nechcem tvrdiť, že Unity je lepšie optimalizované, všetko je totiž v rukách vývojára, ale práca s Unity je jednoznačne rýchlejšia a efektívnejšia.

Naviac s Unity Pro vývojári dostávajú kvalitné nástroje pre prácu v tímoch. Unreal ponúka iba základné prepojenie s repozitárom ako je GIT alebo SVN. Akokoľvek som sa snažil zefektívniť prácu, vždy šlo o časovo náročnú operáciu, ktorá je v Unity zvládnutá lepšie.

Akékoľvek nastavovanie objektov a práca s nimi je v Unity taktiež jednoduchšia a intuitívnejšia. A práve preto v tomto kole jednoznačne vedie.

Víťaz 5. kola: Unity

Round 6 (Cena)

Unreal Engine je zdarma. A to aj so všetkými vylepšeniami a možnosťami. Financovanie Unreal Engine je postavené na provízii z predaja rozšírení a obsahu na marketplace. Zároveň ak hra v štvrťroku zarobí viac ako 3000$ dolárov, tak sú tvorcovia povinní zaplatiť 5% z tejto čiastky. To mi príde celkom fér.

Unity sa dodáva v dvoch verziách: Free a Pro. Free verzia je plnohodnotný engine bez niektorých pokročilých a optimalizačných funkcií a nástrojov. Začínajúci tvorca sa nemusí báť. Väčšinu týchto funkcií v úvode nevyužije. Ak sa však rozhodnete pre PRO verziu, tak cenová politika Unity nie je vôbec zlá.

My v Triglaw sme fanúšikovia Open Source. Naviac sa mi páči smer akým sa Unreal vybral. V tomto kole je teda víťaz jasný.

Víťaz 6. kola: Unreal Engine

Round 7 (Finalizácia, Profiling a Debug)

Zo skúsenosti iných vývojárov viem, že Unity je v prípade rozsiahlejších projektov viac prekážkou. Väčšina tvorcov si príliš neskoro uvedomí, že Unity ich v istom momente začína obmedzovať. Vznikajú rôzne chyby a bez hlbšej znalosti enginu a priameho zásahu do kódu uviaznete v slepej uličke.

Unity Pro ponúka slušný profilovací nástroj, ale ten technické problémy so samotným enginom nedokáže vyriešiť. Unity sa silno spolieha na externý nástroj mimo samotný engine, čo môže miestami viesť k nie úplne jasným chybovým hláseniam…

Víťaz 7. kola: Unreal Engine

Round 8 (Programovacie jazyky)

Vývojári v Unity majú možnosť používať množstvo programovacích jazykov. Od C#, Boo, IronPython, Lua až po C/C++. V Unreal Engine je dostupný len C++ alebo vizuálny editor Blue Printov. Existujú možnosti ako umožniť písanie kódu v C# a iných jazykoch, ale nejde o natívnu podporu.

Treba však podotknúť, že aj keď Unity dáva viac možností, pre lepšiu správu projektu nie je veľmi rozumné v projekte používať viacero programovacích jazykov alebo ich meniť podľa nálady programátorov. Triešti to sématickosť kódu, ktorú v neskorších fázach vývoja a debugovaní oceníte.

Spravidla platí, že menej priateľské programovacie jazyky ako je C a C++ ovládajú predovšetkým lepší programátori. Naopak C# a predovšetkým Java Script sú jazyky, ktoré mnohé odpúšťajú a preto sú často doménou menej zručných a začínajúcich programátorov. Každopádne víťazom v tomto kole je Unity. A to aj napriek skutočnosti, že implementácia iných jazykov nie je vždy najideálnejšia.

Víťaz 8. kola: Unity

Finále (Verdikt)

Suma sumárum, jednoznačným víťazom je Unreal Engine. Tým neodsudzujem Unity. Práve naopak. Rád by som sa k vývoju v Unity niekedy vrátil. Život je však príliš krátky. A hoci existujú projekty, kde vnímam Unity ako ideálnu možnosť, skúsenosti množstva vývojárov mi dávajú pocit, že kvalitnejší výstup dostaneme z Unreal Enginu. Naviac vďaka Blue Printom a rozsiahlemu trhovisku s rozšíreniami dokážu aj začínajúci tvorcovia vytvoriť prototyp svojej prvej hry a to v rekordne krátkom čase. Je však potrebné prekonať náročný úvod a oboznámiť sa s aplikáciou.

Ak máte doplňujúce postrehy k téme Unreal vs Unity a radi by ste doplnili jednotlivé body o vaše postrehy a skúsenosti, tak neváhajte a dajte vedieť v komentároch pod článkom. Na vaše názory a postrehy sa tešíme.


Comments

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *