Unity3d. Začíname, praktické rady

Dnes by som vám teda rád povedal o Unity (aspoň tým, ktorí ho ešte nepoznajú). Samozrejme, na Habré sú ľudia, ktorí vedia, čo to je, ale vyhľadávanie vráti katastrofálne malý počet tém, ktoré túto tému spomínajú – dve z nich jednoducho nahlásia nové verzie, jedna ju stručne predstaví a ďalšia sa venuje jej použitiu. "Neodpustiteľné, musíme to napraviť!" Pomyslel som si a rozhodol som sa napísať krátku prezentáciu na popularizáciu technológie. Ak ste už v téme, nemusíte čítať ďalej.

Aby som bol úprimný, keď som čítal na Wikipédii o bezplatnej (aspoň s úplne normálnou funkcionalitou bezplatnej licencie) 3D engine s normálnym IDE, vstavaným normálne fyzika, audio engine a priama implementácia sieťového multiplayeru, na ktorom môžete robiť aplikácie pre všetko, snáď okrem nixov (Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, XBox 360 sú podporované a fungujú normálne), Už som cítil úlovok.

Keď som zistil, že akúkoľvek aplikáciu Unity je možné skompilovať do špeciálnej verzie pre plugin zabudovaný v prehliadači a v okne Firefoxu vidíte poctivú plnohodnotnú tridu prakticky bez zníženia kvality modelov a rozlíšenia textúr - Bol som si takmer istý, že takto je to vždy v takýchto prípadoch úplný nezmysel.

A keď som pre seba vytvoril tento zázrak a presvedčil sa o pravdivosti všetkého vyššie uvedeného, ​​takmer som sa zamiloval.

Mnohokrát vznikli technológie, ktoré si dali za cieľ priniesť na internet poctivý obchod. Spomeňme si na katastrofálne VRML, o niečo menej katastrofálne ActiveWorlds... Dnes si ich už takmer nikto nepamätá. Onedlho sa celý svet zaplní HTML5, vyjde nový Flash s 3D akceleráciou... Kým sa tak ale nestane, svetu multimediálneho obsahu na webe vládne aktuálna verzia Flashu spolu s Java a Silverlight. Možno dokonca iba vývojári Flash používajú iné technológie s ťažkosťami, je to pochopiteľné - je ťažké prinútiť používateľa, aby si nainštaloval ďalší doplnok tretej strany, len aby mohol hrať jednu hru/zobraziť jednu stránku.

S vydaním novej, tretej verzie vyššie spomínaného enginu však môžete popremýšľať o prehodnotení svojich názorov na váš obľúbený blesk. Nakoniec, ak giganti flashových hračiek ako Kongregate venovali tejto technológii pozornosť (konkrétne vyhlásili súťaž o najlepšiu hru na Unity) - stojí za to sa na to aspoň pozrieť.

Môžete sa pozrieť na veľa miest, ale ako príklad uvediem pár odkazov. Podľa odkazov budete vyzvaní na inštaláciu pluginu - váži kilobajty a funguje bez reštartu prehliadača (žiaľ, veľkosť ukážok sa nedala vypočítať, takže buďte opatrní - rozmery môžu byť okolo 30-50 metrov):

  • Bootcamp je demo na tretiu verziu, strieľačku z pohľadu tretej osoby, dalo by sa povedať momentálne tvár celého enginu. V dolnej časti môžete kliknúť na ďalšie ukážky - väčšina odkazuje na staršie verzie, ale stále ich môžete sledovať
  • Sekcia Unity na Kongregate.com - tu sú hry už prispôsobené pre web, nevážia viac ako bežné flash disky
  • Zoznam hier na offsite - môžete tiež vidieť
Pokúsme sa zistiť, čo je to za zviera a či je naozaj také dobré, ako je namaľované na oficiálnej stránke.

Pre a proti

Na začiatok si definujme pojmy. Unity je plnohodnotný herný engine, navrhnutý tak, že celý proces vývoja (okrem prípravy zdrojov a skriptovania) bude prebiehať v pribalenom Everything Editore. Takáto formulácia otázky zvyčajne znamená neživotaschopné monštrum, prerastené pomalým GUI, nehrajte sa s ním, navrhnuté tak, aby sa tínedžeri z kategórie „gamedev-wannabis“ cítili zapojení do gamedev. Kartu s touto témou však ešte nezatvárajte – Unity nepochádza z tohto testu. Čo je teda na Unity také dobré? Poďme sa na to pozrieť a zároveň si to porovnať s UDK - SDK pre UnrealEngine 3, ktoré Epic Games nedávno sprístupnili zadarmo pre nezávislých vývojárov.

Dobrá jednota:

  • S jeho IDE kombinuje editor scén (tiež editor pre všetko uvedené nižšie), editor herných objektov a dokonca aj jednoduchý editor skriptov. Okrem toho súprava obsahuje stromový generátor a la SpeedTree (nie je zlý) a terénny generátor (štandardný, pohodlný);
  • Možnosti skriptovania – na rozdiel od UDK, v ktorom môžete písať iba vo vstavanom samopísanom jazyku, Unity má k dispozícii tri jazyky: JavaScript, C# a dialekt Pythonu s názvom Boo. Osobne som to nekontroloval, ale v ruskej komunite sa objavili frázy, že rýchlosť vykonávania skriptov v UDK je niekoľkonásobne nižšia (to je pochopiteľné - v Unity sú skripty kompilované do natívneho kódu);
  • Viacplatformové – ako už bolo spomenuté vyššie, podporované sú Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 a XBox 360 A samozrejme nezabudnite na webový plugin. Nie všetky sú dostupné pod bezplatnou licenciou (v skutočnosti sú zostavy dostupné len pre Win, Mac a Web), ale to je celkom pochopiteľné. V systéme Windows a Mac sa všetko kompiluje bez akýchkoľvek zmien v kóde pre web, samozrejme, budete musieť znížiť zdroje - sťahovanie 400 metrov na otvorenie jednej úrovne v prehliadači nie je príliš pohodlné. Fungovanie webovej verzie popíšem nižšie;
  • Grafická úroveň je pomerne moderná - okrem toho je UDK, samozrejme, horší ako Unity, čo sa týka počtu implementovaných funkcií - napokon UnrealEngine možno označiť za jednu z vlajkových lodí v tejto oblasti a je ťažké ho prekonať . Unity má ale odložené osvetlenie, vstavaný editor shaderov, štandardnú sadu postprocesingových efektov (úplný zoznam, samozrejme si môžete napísať vlastný), teraz módne SSAO – skrátka celú sadu nástrojov na vytváranie existuje AAA projekt. Mimochodom, robí svetelné mapy viac než dostatočne a rýchlo;
  • Fyzikálny engine – má všetko, čo by fyzikálny engine mal vedieť. Urobte si svoj vlastný Half-Life 2 s vy-viete-čím? Jednoducho!
  • Výkon a škálovateľnosť – bez váhania dávame „vynikajúce“. Pretože väčšinu bežných prác v tomto smere zvládne motor sám a odvádza skvelú prácu;
  • Spustenie akejkoľvek aplikácie vo webovom doplnku - o tom sme už hovorili, ale nie je hriechom to znova spomenúť.
  • Nízka cena za licenciu - iba 1500 dolárov. A bezplatná verzia, bez niektorých dobrôt;
Nejako takto. Teraz poďme diskutovať, prečo je to zlé:
  • Je to zatvorené. Tie. Neposkytnú vám zdrojové kódy ani s licenciou. Pri UDK, ak som všetko správne pochopil, je obrázok rovnaký - zdrojové kódy sú licencované samostatne, za viac peňazí. V Unity však môžete pomocou skriptov robiť presne to isté, čo by sme robili so zdrojovým kódom - môžete modifikovať takmer všetko... Ale stále je zdrojový kód lepší vo všetkých smeroch, takže toto je mínus - na aspoň pre tých, ktorí by chceli pridať fyziku tretej strany alebo rovnaký SpeedTree;
  • ZISK.
Aby som bol úprimný, zatiaľ nevidím žiadne skutočné mínusy. Motor je stabilný, produktívny, ľahko sa používa – čo viac potrebujete? Určite sú nejaké nevýhody. Často som sa teda stretával so správami o podivne fungujúcom aditívnom miešaní animácií. Niektorí sa sťažujú na nedostatok priraďovania viacerých materiálov k terénom - neviem, neskúšal som. Je to však skutočne významné vo svetle vyššie uvedených výhod? Pre mňa nie.

Faktom je, že pre väčšinu malých tímov bol vždy hlavným problémom motor (a samozrejme nedostatok nápadov a dobrého umenia, ale o tom teraz nehovoríme). Písanie od nuly je pre jediného programátora v tíme ťažké, ak vezmeme do úvahy, že engine nie je len 3D renderer, ale je to aj množstvo pipeline nástrojov – importérov, editorov, divákov... Nemožná úloha, pokiaľ sa nedržíte minimalizmu . Minimalizmus nie je zlý, je toľko úžasných hier vyrobených v milovanom 8-bitovom štýle, že ich ani nevieme spočítať... Väčšina z nich sú však jednodňové projekty (Minecraft sa nepočíta, áno. A do tiež to nebolo napísané od začiatku, ale v LWJGL). Pokiaľ ide o hru, ktorá sa bude hrať celé dni, potrebujete plnohodnotný engine a potom začneme hľadať bezplatné riešenia. Ogre, Irrlicht a niekoľko im podobných sú samozrejme dobrí, ale a) sú morálne starí a b) ich štúdium a dopracovanie do funkčného stavu si vyžaduje veľa času a veľkú teoretickú základňu za chrbtom. Samozrejme, môžete pomocou nich napísať skvelý, predajný projekt (Torchlight on Ogre je toho príkladom), ale stále potrebujete viac ako jedného programátora. Existujú aj sady á la „hry bez znalosti programovacích jazykov“, ako napríklad GameMaker, ale úprimne povedané, sú to hračky.

V prípade Unity máme hotový pipeline, hotový renderer, hotové fyzické, audio a sieťové knižnice, vieme kódovať v známom jazyku – v skutočnosti nám zo strany kódovania stačí vedieť základy, povedzme, Javascript, a strávte týždeň ponorením sa do oficiálnej pomoci pri nitovaní FPS. Mínus jedna prekážka na ceste k uvoľneniu. Ak niekto neverí v kvalitu kódu napísaného niekým iným, ktorý sa nedá opraviť, skontrolujte si to, nie je to vôbec také zlé.

Ako to vyzerá

Obrázky sú klikateľné.

V skutočnosti IDE:

Priamo v IDE môžete kliknúť na tlačidlo „Play“ a otestovať aktuálnu scénu v reálnom čase:

Vstavaný inšpektor tried skúma, ospravedlňuje tautológiu, triedy pre premenné a umožňuje vám meniť premenné v skriptoch za behu bez toho, aby ste sa pozerali na kód. A nielen inty, ale aj materiály, textúry, modely... Ušetrí to veľa času Dokumentácia k API v dobrej forme naznačuje nepísať napríklad cestu k textúre priamo do skriptu, ale jednoducho. urobte z prázdnej vlastnosti zodpovedajúceho typu prázdnu vlastnosť triedy a vyberte v inšpektorovi, ktorý potrebujete:

Inšpektori panelových domov (vpravo) a subjektov (vľavo). Zhruba povedané, vpravo sú prázdne objekty, vľavo tie objekty, ktoré existujú v aktuálnej scéne. Je pohodlné, že počas spustenia úrovne v editore (tlačidlo „prehrať“) môžete pozastaviť beh a zobraziť aktuálny stav objektov – oveľa menej často musíte čítať protokoly alebo zobrazovať riadok ladenia na HUD, aby ste videli správanie jednej malej premennej:

A na záver poviem...

Aby som zhrnul všetky verbálne odpadky až do tohto bodu, ak robíte AAA projekt, s najväčšou pravdepodobnosťou napíšete svoj vlastný motor. Alebo už máte motor z predchádzajúceho projektu. Alebo si kúpite niečo na úrovni notoricky známeho UnrealEngine 3 so zdrojmi. Ale to je, ak robíte AAA projekt s tuctom ľudí iba na kódovaní.

Ak máte v štúdiu len desať ľudí (nech už dvoch), písanie vlastného enginu je zvyčajne príliš drahé. Pokušenie naskočiť na vlnu plnohodnotných 3D hier založených na prehliadači (s Java wrapper pre Ogre sa nepočíta. Naozaj) stojí za vyskúšanie Unity v praxi. Rýchlosť a zložitosť vývoja bežnej príležitostnej hry založenej na prehliadači na ňom nie je vyššia ako na Flashi, ale grafická prevaha je zrejmá. A ten wow efekt ešte nikto nezrušil.

V konečnom dôsledku sa dajú robiť weby v Unity (diskutabilné, ale možné), prezentácie, vizualizovať vedecké projekty... To všetko by sa dalo písať aj ručne, v čistom OpenGL, ale po porovnaní času a kvality implementácie som stále naklonený používať Unity . Flash na Teraz Tiež to neberieme do úvahy - počkáme si na vydanie hardvérovej 3D akcelerácie.

Takéto slová spôsobia búrku emócií medzi prívržencami iných motorov. „Áno, toto všetko je v %enginename%“, „%gamename% a %gamename% sú vytvorené na %enginename% a to všetko bez hnusného, ​​všetko pohlcujúceho ťahania"n"drop"...

Odporúčam vám dať Unity len šancu – uchváti pohodlnosťou, schopnosťami, flexibilitou a rýchlosťou vývoja (aspoň mňa uchvátila). A okrem toho... Hej, toto je celé vlákno v prehliadači! :)

Rozvoj výpočtovej techniky viedol k vytvoreniu rôznych pomocných a zábavných aplikácií. V tomto smere sa na softvérovom trhu objavili platformy na vytváranie aplikácií, jednou z nich je herný engine Unity, ktorý je plnohodnotným nástrojom na vývoj aplikácií pre rôzne platformy. Hry v ňom môžu byť vyrobené v dvojrozmernom alebo trojrozmernom formáte.

Program je distribuovaný pod platenou a bezplatnou licenciou. V prvom prípade používateľ dostane plnohodnotný nástroj so všetkými dostupnými možnosťami. Vo voľnej licencii je možný aj vývoj hier, ale funkcie sú zbavené niektorých funkcií. Okrem toho má táto verzia obmedzený počet podporovaných platforiem. Ak je budúci produkt určený pre PC, Android alebo webový prehrávač, potom nebudú žiadne problémy. Práca s inými platformami bude vyžadovať zakúpenie platenej licencie. Dnes si veľa vývojárov vyberá Unity (herný engine) pre svoje vlastné projekty. Hry vytvorené v ňom vždy potešia kvalitou rozhrania a vysokým výkonom!

Rozhranie

Mnoho vývojárov odporúča začiatočníkom používať Unity. Vďaka jednoduchému rozhraniu ho možno plne preskúmať už za pár týždňov. Jednoduché použitie nijako nenarušuje funkčnosť a dokonca aj profesionálni vývojári implementujú svoje nápady pomocou tohto enginu.

Pracovný priestor v ňom je rozdelený do niekoľkých sekcií:

  • v Scene si môžete vybrať uhol a zobraziť scénu;
  • Hierarchia obsahuje všetky objekty scény;
  • Inšpektor vám pomôže zmeniť požadovaný objekt;
  • Panel nástrojov je zbierka nástrojov;
  • Projekt obsahuje všetky zdroje projektu.

možnosti

Vývoj v Unity je možný v Javascripte a C#. Pre plnú funkčnosť budete musieť používať oba jazyky. Za fyzickú zložku je zodpovedná technológia NVIDIA PhysX, ktorá vykazuje vynikajúce výsledky.

Herný engine Unity poteší svojimi možnosťami pri práci s predmetmi. Možno ich kombinovať, vyprázdniť, naplniť komponentmi súvisiacimi so skriptom a priradiť im akékoľvek názvy a značky, ktoré zlepšujú interakciu s kódom. Objekty je možné napojiť na rôzne kolízie, čo urýchli a zjednoduší vývoj.

Animácia modelov sa najčastejšie vykonáva v programoch tretích strán, ale medzi programovými nástrojmi stále existujú hodné riešenia na implementáciu takejto úlohy.

Materiály sú neoddeliteľnou súčasťou projektu, takže interakcia s nimi je tiež vynikajúca. Pohodlné použitie textúr pomôže poskytnúť objektu akýkoľvek vzhľad a shadery ho urobia oveľa krajším.

Vývojový proces

Herný engine Unity bol vytvorený už v roku 2005 a vtedy nebol obzvlášť populárny kvôli malému počtu funkcií. Vývojári však často vydávali aktualizácie, vďaka ktorým je ich produkt lepší. Neustále pridávanie nových platforiem priťahovalo pozornosť používateľov. Funkcionalita sa postupne rozširovala a zlepšovala sa jednoduchosť používania.

Nové efekty posunuli grafiku na modernú úroveň. Aktualizovaná fyzika urobila hru živšou a realistickejšou. Neustále sa zlepšovala aj práca so skriptami, čo lákalo najmä vývojárov. S príchodom sponzorov sa Unity zrýchlil vo vývoji a dnes zaujíma popredné miesto medzi svojimi konkurentmi.

Vlastnosti Unity 5

Technológie ako Level of Detail a Occlusion Culling posunuli vývoj hier na vyššiu úroveň a tieto novinky sa objavujú v Unity 5. Herný engine spolu s takýmito nástrojmi zmenia spôsob výpočtu detailov. Teraz bude zariadenie musieť spracovať iba to, čo hráč vidí, čo zlepší výkon.

Úroveň detailov zhorší detaily vzdialených objektov v lokalite. Zaťaženie procesora citeľne klesne, no zhoršenie grafiky hráč nezaznamená.

Výhody

Začiatočníci okamžite ocenia Unity (herný engine). Školenie v ňom je čo najjednoduchšie, ale okrem toho sa produkt môže pochváliť obrovským množstvom ďalších výhod, a tu sú tie hlavné:

  • Pohodlné rozhranie obsahujúce všetky potrebné prvky.
  • Obrovské množstvo podporovaných platforiem, ktoré vám umožnia vytvárať hry nielen pre počítač, ale aj pre smartfón, hernú konzolu a množstvo ďalších zariadení.
  • Široká škála možností práce so skriptami. Unity spolupracuje s dvoma populárnymi programovacími jazykmi, čo zaisťuje vysokú rýchlosť kompilácie skriptov.
  • Rad nástrojov na vytváranie vysokokvalitnej grafiky. Rôzne režimy osvetlenia, shadery, efekty a ďalšie technológie sa postarajú o slušné vizuálne prevedenie.
  • Vynikajúci fyzikálny engine.
  • Vysoký výkon.
  • Bezplatná verzia programu, ktorá umožňuje komukoľvek vyskúšať jeho schopnosti.

Nedostatky

Používatelia, ktorí nehovoria po anglicky, môžu mať problémy s používaním Unity. Herný engine v ruštine zatiaľ nie je k dispozícii. Pre túto platformu tiež neexistujú žiadne lokalizátory.

Unity je navyše úplne uzavretá a nie je možné získať zdrojové kódy. Pridanie fyziky tretích strán alebo niečo podobné nebude fungovať. Stojí však za zmienku, že dostupné skripty sú úplne dostatočné, a preto by bolo nesprávne označiť takúto nevýhodu za vážnu. Mnoho ľudí vôbec nečelí potrebe získať zdrojový kód.

Nevýhody sa môžu objaviť aj pri vývoji veľkých hier alebo jednoducho v niektorých malých detailoch. Ale všetky nedostatky sa neustále opravujú a prostredie sa rýchlo zlepšuje.

Porovnanie s konkurenčnými produktmi

Program má málo konkurentov a medzi nimi sú UDK a CryENGIN. Všetci traja títo predstavitelia si zaslúžia pozornosť, ale každý z nich má jedinečné aspekty. V žánri strieľačiek FPS má UDK výhodu vďaka použitiu jedinečného programovacieho jazyka. V niektorých prípadoch to zlepšuje prácu so skriptami.

CryENGINE je skôr navrhnutý pre platformy novej generácie, ktoré poskytnú hrám neuveriteľnú grafiku. Takéto prispôsobenie však neumožňuje, aby bol univerzálny. Unity sa často používa na vytváranie mobilných hier. Herný engine vám umožňuje vyvíjať slušné produkty pre akúkoľvek platformu. Všetky tieto vývojové prostredia majú svoje silné stránky a nie je možné vybrať to najlepšie. Práve Unity sa však rýchlo rozvíja a v budúcnosti má šancu dostať sa na prvé miesto medzi svojimi konkurentmi.

závery

Ak plánujete vytvoriť rozsiahly projekt, potom je najlepšie použiť vlastné vývojové prostredie. Pre všetky ostatné prípady je herný engine Unity dokonalý. Je nepravdepodobné, že pomôže s realizáciou AAA, projektu, na ktorom pracujú desiatky ľudí. Ale pravdepodobnosť, že takýto tím bude využívať verejne dostupné vývojové prostredie, je extrémne nízka.

Unity bol vytvorený pre projekty stredného a malého rozsahu. Pre jedného alebo pár vývojárov poskytne dostatok príležitostí a pomôže realizovať akýkoľvek nápad.

Webové prostredie je dnes spomedzi všetkých platforiem mimoriadne atraktívne a bez problémov si ho podmaníte. Unity ukáže vysokú rýchlosť vývoja a maximálne pohodlie. Výsledný produkt vás skutočne prekvapí!

Všetky výhody prezentovanej platformy ju odlišujú od ostatných. A ak vás zaujíma vývoj hier, tak táto kópia určite stojí za vyskúšanie. Množstvo príležitostí, pohodlné nástroje, flexibilné nastavenie pracovného priestoru a všetky ostatné funkcie prinesú každému nápadu život!

Dnes by som vám teda rád povedal o Unity (aspoň tým, ktorí ho ešte nepoznajú). Samozrejme, na Habré sú ľudia, ktorí vedia, čo to je, ale vyhľadávanie vráti katastrofálne malý počet tém, ktoré túto tému spomínajú – dve z nich jednoducho nahlásia nové verzie, jedna ju stručne predstaví a ďalšia sa venuje jej použitiu. "Neodpustiteľné, musíme to napraviť!" Pomyslel som si a rozhodol som sa napísať krátku prezentáciu na popularizáciu technológie. Ak ste už v téme, nemusíte čítať ďalej.

Aby som bol úprimný, keď som čítal na Wikipédii o bezplatnej (aspoň s úplne normálnou funkcionalitou bezplatnej licencie) 3D engine s normálnym IDE, vstavaným normálne fyzika, audio engine a priama implementácia sieťového multiplayeru, na ktorom môžete robiť aplikácie pre všetko, snáď okrem nixov (Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, XBox 360 sú podporované a fungujú normálne), Už som cítil úlovok.

Keď som zistil, že akúkoľvek aplikáciu Unity je možné skompilovať do špeciálnej verzie pre plugin zabudovaný v prehliadači a v okne Firefoxu vidíte poctivú plnohodnotnú tridu prakticky bez zníženia kvality modelov a rozlíšenia textúr - Bol som si takmer istý, že takto je to vždy v takýchto prípadoch úplný nezmysel.

A keď som pre seba vytvoril tento zázrak a presvedčil sa o pravdivosti všetkého vyššie uvedeného, ​​takmer som sa zamiloval.

Mnohokrát vznikli technológie, ktoré si dali za cieľ priniesť na internet poctivý obchod. Spomeňme si na katastrofálne VRML, o niečo menej katastrofálne ActiveWorlds... Dnes si ich už takmer nikto nepamätá. Onedlho sa celý svet zaplní HTML5, vyjde nový Flash s 3D akceleráciou... Kým sa tak ale nestane, svetu multimediálneho obsahu na webe vládne aktuálna verzia Flashu spolu s Java a Silverlight. Možno dokonca iba vývojári Flash používajú iné technológie s ťažkosťami, je to pochopiteľné - je ťažké prinútiť používateľa, aby si nainštaloval ďalší doplnok tretej strany, len aby mohol hrať jednu hru/zobraziť jednu stránku.

S vydaním novej, tretej verzie vyššie spomínaného enginu však môžete popremýšľať o prehodnotení svojich názorov na váš obľúbený blesk. Nakoniec, ak giganti flashových hračiek ako Kongregate venovali tejto technológii pozornosť (konkrétne vyhlásili súťaž o najlepšiu hru na Unity) - stojí za to sa na to aspoň pozrieť.

Môžete sa pozrieť na veľa miest, ale ako príklad uvediem pár odkazov. Podľa odkazov budete vyzvaní na inštaláciu pluginu - váži kilobajty a funguje bez reštartu prehliadača (žiaľ, veľkosť ukážok sa nedala vypočítať, takže buďte opatrní - rozmery môžu byť okolo 30-50 metrov):

  • Bootcamp je demo na tretiu verziu, strieľačku z pohľadu tretej osoby, dalo by sa povedať momentálne tvár celého enginu. V dolnej časti môžete kliknúť na ďalšie ukážky - väčšina odkazuje na staršie verzie, ale stále ich môžete sledovať
  • Sekcia Unity na Kongregate.com - tu sú hry už prispôsobené pre web, nevážia viac ako bežné flash disky
  • Zoznam hier na offsite - môžete tiež vidieť
Pokúsme sa zistiť, čo je to za zviera a či je naozaj také dobré, ako je namaľované na oficiálnej stránke.

Pre a proti

Na začiatok si definujme pojmy. Unity je plnohodnotný herný engine, navrhnutý tak, že celý proces vývoja (okrem prípravy zdrojov a skriptovania) bude prebiehať v pribalenom Everything Editore. Takáto formulácia otázky zvyčajne znamená neživotaschopné monštrum, prerastené pomalým GUI, nehrajte sa s ním, navrhnuté tak, aby sa tínedžeri z kategórie „gamedev-wannabis“ cítili zapojení do gamedev. Kartu s touto témou však ešte nezatvárajte – Unity nepochádza z tohto testu. Čo je teda na Unity také dobré? Poďme sa na to pozrieť a zároveň si to porovnať s UDK - SDK pre UnrealEngine 3, ktoré Epic Games nedávno sprístupnili zadarmo pre nezávislých vývojárov.

Dobrá jednota:

  • S jeho IDE kombinuje editor scén (tiež editor pre všetko uvedené nižšie), editor herných objektov a dokonca aj jednoduchý editor skriptov. Okrem toho súprava obsahuje stromový generátor a la SpeedTree (nie je zlý) a terénny generátor (štandardný, pohodlný);
  • Možnosti skriptovania – na rozdiel od UDK, v ktorom môžete písať iba vo vstavanom samopísanom jazyku, Unity má k dispozícii tri jazyky: JavaScript, C# a dialekt Pythonu s názvom Boo. Osobne som to nekontroloval, ale v ruskej komunite sa objavili frázy, že rýchlosť vykonávania skriptov v UDK je niekoľkonásobne nižšia (to je pochopiteľné - v Unity sú skripty kompilované do natívneho kódu);
  • Viacplatformové – ako už bolo spomenuté vyššie, podporované sú Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 a XBox 360 A samozrejme nezabudnite na webový plugin. Nie všetky sú dostupné pod bezplatnou licenciou (v skutočnosti sú zostavy dostupné len pre Win, Mac a Web), ale to je celkom pochopiteľné. V systéme Windows a Mac sa všetko kompiluje bez akýchkoľvek zmien v kóde pre web, samozrejme, budete musieť znížiť zdroje - sťahovanie 400 metrov na otvorenie jednej úrovne v prehliadači nie je príliš pohodlné. Fungovanie webovej verzie popíšem nižšie;
  • Grafická úroveň je pomerne moderná - okrem toho je UDK, samozrejme, horší ako Unity, čo sa týka počtu implementovaných funkcií - napokon UnrealEngine možno označiť za jednu z vlajkových lodí v tejto oblasti a je ťažké ho prekonať . Unity má ale odložené osvetlenie, vstavaný editor shaderov, štandardnú sadu postprocesingových efektov (úplný zoznam, samozrejme si môžete napísať vlastný), teraz módne SSAO – skrátka celú sadu nástrojov na vytváranie existuje AAA projekt. Mimochodom, robí svetelné mapy viac než dostatočne a rýchlo;
  • Fyzikálny engine – má všetko, čo by fyzikálny engine mal vedieť. Urobte si svoj vlastný Half-Life 2 s vy-viete-čím? Jednoducho!
  • Výkon a škálovateľnosť – bez váhania dávame „vynikajúce“. Pretože väčšinu bežných prác v tomto smere zvládne motor sám a odvádza skvelú prácu;
  • Spustenie akejkoľvek aplikácie vo webovom doplnku - o tom sme už hovorili, ale nie je hriechom to znova spomenúť.
  • Nízka cena za licenciu - iba 1500 dolárov. A bezplatná verzia, bez niektorých dobrôt;
Nejako takto. Teraz poďme diskutovať, prečo je to zlé:
  • Je to zatvorené. Tie. Neposkytnú vám zdrojové kódy ani s licenciou. Pri UDK, ak som všetko správne pochopil, je obrázok rovnaký - zdrojové kódy sú licencované samostatne, za viac peňazí. V Unity však môžete pomocou skriptov robiť presne to isté, čo by sme robili so zdrojovým kódom - môžete modifikovať takmer všetko... Ale stále je zdrojový kód lepší vo všetkých smeroch, takže toto je mínus - na aspoň pre tých, ktorí by chceli pridať fyziku tretej strany alebo rovnaký SpeedTree;
  • ZISK.
Aby som bol úprimný, zatiaľ nevidím žiadne skutočné mínusy. Motor je stabilný, produktívny, ľahko sa používa – čo viac potrebujete? Určite sú nejaké nevýhody. Často som sa teda stretával so správami o podivne fungujúcom aditívnom miešaní animácií. Niektorí sa sťažujú na nedostatok priraďovania viacerých materiálov k terénom - neviem, neskúšal som. Je to však skutočne významné vo svetle vyššie uvedených výhod? Pre mňa nie.

Faktom je, že pre väčšinu malých tímov bol vždy hlavným problémom motor (a samozrejme nedostatok nápadov a dobrého umenia, ale o tom teraz nehovoríme). Písanie od nuly je pre jediného programátora v tíme ťažké, ak vezmeme do úvahy, že engine nie je len 3D renderer, ale je to aj množstvo pipeline nástrojov – importérov, editorov, divákov... Nemožná úloha, pokiaľ sa nedržíte minimalizmu . Minimalizmus nie je zlý, je toľko úžasných hier vyrobených v milovanom 8-bitovom štýle, že ich ani nevieme spočítať... Väčšina z nich sú však jednodňové projekty (Minecraft sa nepočíta, áno. A do tiež to nebolo napísané od začiatku, ale v LWJGL). Pokiaľ ide o hru, ktorá sa bude hrať celé dni, potrebujete plnohodnotný engine a potom začneme hľadať bezplatné riešenia. Ogre, Irrlicht a niekoľko im podobných sú samozrejme dobrí, ale a) sú morálne starí a b) ich štúdium a dopracovanie do funkčného stavu si vyžaduje veľa času a veľkú teoretickú základňu za chrbtom. Samozrejme, môžete pomocou nich napísať skvelý, predajný projekt (Torchlight on Ogre je toho príkladom), ale stále potrebujete viac ako jedného programátora. Existujú aj sady á la „hry bez znalosti programovacích jazykov“, ako napríklad GameMaker, ale úprimne povedané, sú to hračky.

V prípade Unity máme hotový pipeline, hotový renderer, hotové fyzické, audio a sieťové knižnice, vieme kódovať v známom jazyku – v skutočnosti nám zo strany kódovania stačí vedieť základy, povedzme, Javascript, a strávte týždeň ponorením sa do oficiálnej pomoci pri nitovaní FPS. Mínus jedna prekážka na ceste k uvoľneniu. Ak niekto neverí v kvalitu kódu napísaného niekým iným, ktorý sa nedá opraviť, skontrolujte si to, nie je to vôbec také zlé.

Ako to vyzerá

Obrázky sú klikateľné.

V skutočnosti IDE:

Priamo v IDE môžete kliknúť na tlačidlo „Play“ a otestovať aktuálnu scénu v reálnom čase:

Vstavaný inšpektor tried skúma, ospravedlňuje tautológiu, triedy pre premenné a umožňuje vám meniť premenné v skriptoch za behu bez toho, aby ste sa pozerali na kód. A nielen inty, ale aj materiály, textúry, modely... Ušetrí to veľa času Dokumentácia k API v dobrej forme naznačuje nepísať napríklad cestu k textúre priamo do skriptu, ale jednoducho. urobte z prázdnej vlastnosti zodpovedajúceho typu prázdnu vlastnosť triedy a vyberte v inšpektorovi, ktorý potrebujete:

Inšpektori panelových domov (vpravo) a subjektov (vľavo). Zhruba povedané, vpravo sú prázdne objekty, vľavo tie objekty, ktoré existujú v aktuálnej scéne. Je pohodlné, že počas spustenia úrovne v editore (tlačidlo „prehrať“) môžete pozastaviť beh a zobraziť aktuálny stav objektov – oveľa menej často musíte čítať protokoly alebo zobrazovať riadok ladenia na HUD, aby ste videli správanie jednej malej premennej:

A na záver poviem...

Aby som zhrnul všetky verbálne odpadky až do tohto bodu, ak robíte AAA projekt, s najväčšou pravdepodobnosťou napíšete svoj vlastný motor. Alebo už máte motor z predchádzajúceho projektu. Alebo si kúpite niečo na úrovni notoricky známeho UnrealEngine 3 so zdrojmi. Ale to je, ak robíte AAA projekt s tuctom ľudí iba na kódovaní.

Ak máte v štúdiu len desať ľudí (nech už dvoch), písanie vlastného enginu je zvyčajne príliš drahé. Pokušenie naskočiť na vlnu plnohodnotných 3D hier založených na prehliadači (s Java wrapper pre Ogre sa nepočíta. Naozaj) stojí za vyskúšanie Unity v praxi. Rýchlosť a zložitosť vývoja bežnej príležitostnej hry založenej na prehliadači na ňom nie je vyššia ako na Flashi, ale grafická prevaha je zrejmá. A ten wow efekt ešte nikto nezrušil.

V konečnom dôsledku sa dajú robiť weby v Unity (diskutabilné, ale možné), prezentácie, vizualizovať vedecké projekty... To všetko by sa dalo písať aj ručne, v čistom OpenGL, ale po porovnaní času a kvality implementácie som stále naklonený používať Unity . Flash na Teraz Tiež to neberieme do úvahy - počkáme si na vydanie hardvérovej 3D akcelerácie.

Takéto slová spôsobia búrku emócií medzi prívržencami iných motorov. „Áno, toto všetko je v %enginename%“, „%gamename% a %gamename% sú vytvorené na %enginename% a to všetko bez hnusného, ​​všetko pohlcujúceho ťahania"n"drop"...

Odporúčam vám dať Unity len šancu – uchváti pohodlnosťou, schopnosťami, flexibilitou a rýchlosťou vývoja (aspoň mňa uchvátila). A okrem toho... Hej, toto je celé vlákno v prehliadači! :)

Unity je herný engine, ktorý vám umožňuje vytvárať hry pre väčšinu populárnych platforiem. Pomocou tohto enginu sa vyvíjajú hry, ktoré bežia na osobných počítačoch (so systémom Windows, MacOS, Linux), na smartfónoch a tabletoch (iOS, Android, Windows Phone) a na herných konzolách (PS, Xbox, Wii).

Tento herný engine je mimoriadne obľúbený medzi nezávislými vývojármi, startupmi a ďalšími školákmi. Existuje niekoľko dôvodov pre jeho neuveriteľnú popularitu:

Po prvé Jasné je, že v jednom prostredí vytvoríte aplikáciu, ktorá pobeží na takmer každom predstaviteľnom zariadení s farebným displejom (a dokonca aj na Chromebookoch – z prehliadača). A, samozrejme, takéto drdoly veľmi efektívne prilákajú obdivovateľov medzi mladými talentmi, ktorí hľadajú čarovnú pilulku, ktorá im umožní robiť všetko naraz. Samozrejme, toto je úplne adekvátny dôvod milovať Unity. Ale v súvislosti s touto funkciou, ako obvykle, existuje niekoľko nuancií:

  • Keď už máte modely nastavené a presúvané, budete sa musieť starať o používateľské rozhranie: vstupné rozhranie na väčšine zariadení, na ktorých je možné spustiť vašu hru, je veľmi odlišné. Samozrejme, nejde o globálny problém a jeho vyriešenie vám zaberie oveľa menej času ako vývoj aplikácie pre každé zariadenie zvlášť. Rovnako prispôsobenie grafického rozhrania pre rôzne uhlopriečky a rôzne formáty zobrazenia nezaberie niekoľko človekorokov.
  • Rýchlosť práce. Každý vzdelaný vývojár chápe, že univerzálnosť a multiplatformnosť často zvyšujú záťaž výpočtových systémov počítača. Na Unity bolo vyvinutých veľa hier, vrátane tých, ktoré bežia na konzolách, ale z hľadiska grafiky boli takmer vždy horšie ako špičkové hry z obdobia, v ktorom boli vydané. Samozrejme, na tomto engine môžete vytvárať hry s ohromujúcou grafikou, ale napodiv potrebujete veľmi rovné ruky.
  • Všestrannosť so sebou prináša zložitosť prispôsobenia. V Unity nevznikol žiadny z kasových trhákov pre PC či konzoly, čo akosi naznačuje hranice jeho možností.

Po druhé, cenová politika a distribučná politika enginu sú veľmi príjemné a humánne: vo verzii freemium môžete vyvíjať komerčné hry pre všetky platformy naraz. A verzia Pro stojí iba 1 500 dolárov a poskytuje ďalšie funkcie, ktoré sa týkajú predovšetkým funkcií a grafiky.

Po tretie, intuitívne rozhranie editora a používanie ľahko naučiteľných programovacích jazykov: C# a JavaScript – bez toho, aby ste sa museli zaoberať jazykom C a ďalšími jazykmi, ktorých učenie trvá dvadsaťjeden rokov.

Po štvrté, takmer vírusové rozšírenie tohto enginu v komunite vývojárov hier. Svoju úlohu tu zohráva fakt, že výrobok je veľmi kvalitný a jedinečný. Úlohu zohráva aj to, že každý mladý vývojár považuje za svoju povinnosť zverejniť prototyp svojej „revolučnej“ hry na svojom obľúbenom fóre, stránke na zdieľanie súborov a sledovači torrentov a pridať tak svoju vlastnú kvapku do mora hier Unity.

Ale toto je jeho hlavné čaro: jednoduchosť vývoja aplikácií pre mobilné zariadenia s plnou muníciou. Engine Unity sa používa na vývoj obrovského množstva hier pre mobilné platformy, vrátane bestsellerov ako Temple Run alebo Dead Trigger.

Vo všeobecnosti, po preštudovaní Unity, jeho histórie a prípadov použitia mám z tohto softvérového produktu mimoriadne pozitívny dojem.

prostredníctvom Stanislava Gerasimenka, vývojára hier

Pomerne populárny. Ak boli predtým počítačové hry len zábavou pre úzky okruh fanúšikov, teraz sa táto oblasť dostáva na úplne novú úroveň. O počítačové hry sa zaujíma čoraz viac ľudí a neustále vychádzajú projekty, ktoré sú vhodné pre určité vekové kategórie a cieľové skupiny (napríklad rodinné hry).

Prirodzene, niekto za tým stojí – vo väčšine prípadov ide o celú spoločnosť pozostávajúcu z niekoľkých pobočiek, z ktorých každá sa venuje vlastným aktivitám. Spoločne vytvárajú najvýraznejšie a najatraktívnejšie počítačové hry našej doby. Je však potrebné poznamenať, že nedávno sa objavilo veľké množstvo nezávislých hier - projektov od nezávislých vývojárov. Môže to byť jeden človek, alebo malá skupina rovnako zmýšľajúcich ľudí, ale najdôležitejšie je, že nemajú obrovský rozpočet, stovky pracovníkov s vysoko špecializovaným vzdelaním. A teraz si každý môže napísať svoju vlastnú hru, pretože existujú špeciálne pracovné prostredia aj hotové jadrá, napríklad herný engine Unity. V tomto článku sa dozviete, čo to je a prečo je to potrebné.

Jadro hry

Stojí za to začať nie tým, čo konkrétne je herný engine Unity, ale tým, čo je v princípe motor. Predstavte si, že píšete počítačovú hru – musíte napísať úplne celý kód od začiatku, úplne všetky najmenšie pohyby postáv, pohyby protivníkov, interakcie s prostredím a tisíce ďalších detailov. Neuveriteľne ťažké, však? Engine vám môže výrazne uľahčiť proces tvorby.

Toto je jadro projektu, ktoré obsahuje všetky základné skripty. To znamená, že namiesto vytvárania hry od začiatku si môžete vziať hotové jadro a postaviť na ňom toľko vrstiev obsahu, koľko chcete. Netreba sa obávať, že je to nelegálne – jadro neukradnete, len ho používate tak, ako to robia milióny iných. Používanie herných enginov vytvorených inými je veľmi bežnou technikou, len najväčšie spoločnosti majú prostriedky a možnosti na vytvorenie vlastného herného enginu vo veľkom meradle. Ak na to nemáte rozpočet, je lepšie použiť herný engine Unity. Ale prečo práve on?

Prečo Unity?

Existuje obrovské množstvo rôznych motorov, ktoré sú dostupné online buď čiastočne zadarmo, alebo úplne platené. Umožnia vám vytvárať projekty v 2D aj 3D, poskytnú vám prístup k rôznym funkciám atď. Prečo by ste si však medzi nimi mali vybrať herný engine Unity a nie akýkoľvek iný?

V skutočnosti vás nikto k takémuto výberu nenúti – existuje napríklad veľmi dobré jadro UDK, ktoré veľa ľudí používa aj na tvorbu 3D hier. Ak nemáte záujem o 3D obraz, môžete jednoducho vytvoriť 2D projekt s príslušným engine. Unity je ale najpopulárnejší a najkvalitnejší 3D engine, ktorý je dnes k dispozícii, takže by ste jeho použitie mali určite zvážiť. Herný engine Unity 3D má oproti ostatným niekoľko vážnych výhod, o ktorých sa bude diskutovať nižšie.

Výhody jednoty

Unity je nový engine na vytváranie 3D hier. Mnoho ľudí sa pýta, prečo by si ho mali vybrať. Ako už bolo spomenuté, nikto vás nenúti si to vybrať. Teraz však zistíte, prečo sa tak výrazne odlišuje od ostatných.

Po prvé, toto je vývojové prostredie - máte k dispozícii mimoriadne pohodlné a funkčné IDE, ktoré súčasne obsahuje editor scén, editor objektov a dokonca aj malý editor skriptov. Čo sa týka toho druhého, toto plus je obzvlášť viditeľné v porovnaní s ostatnými, pretože väčšina motorov už má svoj vlastný skriptovací jazyk, ktorý musíte v každom prípade použiť. V prípade Unity môžete použiť buď miestny jazyk, alebo akýkoľvek iný.

Samostatne stojí za zmienku úroveň grafiky, ktorú je možné v hre vytvoriť - v porovnaní s väčšinou ostatných motorov je dosť vysoká. A, samozrejme, stojí za zmienku najvyššia úroveň fyziky - môžete vytvoriť projekt, ktorý nie je horší ako akékoľvek moderné majstrovské dielo, samozrejme, s náležitou zručnosťou.

Na záver stojí za zmienku náklady - to je to, s čím sa stretávajú mnohí začínajúci vývojári. V tomto prípade to nie je príliš vysoké - iba jeden a pol tisíc dolárov. Ak chcete, môžete použiť bezplatnú verziu - je plne funkčná, ale nemá určitý počet užitočných funkcií. Taktiež hotový projekt bude počas hry neustále zobrazovať logo Unity. Teraz už chápete, prečo je Unity 3D populárny herný engine. Ale naozaj to nemá žiadne mínusy? Teraz si o tom pohovorme.

Nevýhody jednoty

Mnohí sa snažili nájsť nedostatky v tomto engine, ale s ťažkosťami sa hromadili sťažnosti iba na jednu vec - uzavretý zdrojový kód. V istom zmysle sú to skutočne nevýhody - môžete použiť iba jadro, ktoré vám vývojár ponúka, nemôžete v ňom robiť žiadne zmeny, aj keď viete, ako na to. A aj keď vezmeme do úvahy skutočnosť, že ste zaplatili jeden a pol tisíc dolárov, licencia vám stále neumožňuje prístup k samotnému jadru. Ak sa však pozriete z druhej strany, takmer žiadny moderný engine vám neposkytuje prístup ku kódu jadra, takže túto nevýhodu možno považovať za vážnu nevýhodu. A v tomto nádhernom motore nemôžeme nájsť žiadne ďalšie nedostatky.

Používanie Unity

Použitie tohto motora už bolo spomenuté vyššie - IDE preň je jednoducho vynikajúce. Málokedy nájdete také funkčné vývojové prostredie, ktoré nie je preplnené zbytočnými detailmi, nie je úplne holé a nepohodlné. V Unity je všetko v poriadku - môžete okamžite pristupovať k editoru herných scén, herným objektom a dokonca aj skriptom, ktoré sa na ne vzťahujú. Úryvok z toho, na čom ste pracovali, môžete vidieť v reálnom čase priamo v IDE. Unity v tomto jednoducho nemá konkurentov – tento motor je skvelý.

Ruská jednota

Ak neviete po anglicky, nebojte sa, Unity môžete stále používať. Herný engine v ruštine existuje a je aktívne podporovaný, takže v preloženej verzii môžete ľahko vytvárať herné majstrovské diela. Okrem toho existuje obrovská online komunita v ruskom jazyku venovaná tomuto motoru - tam sa môžete dozvedieť najnovšie správy, prečítať si názory skúsených používateľov a klásť otázky, ktoré vás zaujímajú. Unity3D v ruštine je celkom možné.

Pridávanie skriptov

Už bolo povedané vyššie, že nebudete môcť zmeniť kód jadra. Zároveň však môžete pridávať svoje vlastné skripty, ako aj sťahovať skripty vytvorené inými používateľmi.