Unity (herní engine)
Unity je multiplatformní herní engine vyvinutý společností Unity Technologies. Byl použit pro vývoj her pro PC, konzole, mobily a web. První verze podporovala pouze OS X a byla představena na celosvětové konferenci Applu v roce 2005. Od té doby byl rozvinut o více než patnáct dalších platforem.

Unity poskytuje možnosti vývoje pro 2D i 3D hry libovolného žánru a zaměření. Kromě grafického prostředí pro tvorbu, podporuje také tvorbu skriptů v jazyce C# . Firma Unity Technologies provozuje bezplatnou i placenou verzi programu.

Hlavním konkurentem (především na trhu her pro PC a konzole) je Unreal Engine od společnosti Epic Games.

Historie 
Herní engine Unity byl poprvé oficiálně vydán v roce 2005 s účelem přiblížit proces vývoje her i malým nezkušeným vývojářským týmům mimo velká herní studia. První verze nabízela možnost vyvíjet hry pouze pro macOS, podpora pro Windows (a webové prohlížeče) byla přidána až ve verzi 1.1 o rok později. 

V roce 2007 byla představena verze 2.0, která rozšiřovala podporu pro web a Windows - byla přidána podpora pro DirectX, což vedlo k asi 30% zrychlení na Windowsových systémech. Mimo to také přinesla asi 50 nových funkcionalit - mezi nimi například optimalizovaný engine pro 3D terény s pokročilou možností nastavení světel, dynamické stíny v reálném čase a podporu pro vytváření multiplayerových her s použitím UDP protokolu.

Dalším převratným momentem bylo představení obchodu s aplikacemi pro mobily značky Apple - App Store v roce 2008. Unity Technologies vzápětí vydala separátní projekt Unity iPhone, který podporoval vydávání her právě pro iPhone a stal se tak prvním enginem pro tyto mobilní telefony. To mu na několik let zajistilo výsadní postavení mezi vývojáři pro IOS.

V roce 2008 tvůrci pocítili zvýšený zájem o editor i mezi vývojáři nepoužívající Mac, což je vedlo k vytvoření editoru i pro Windows. Za tímto účelem bylo nutné přepsat celý editor od začátku, aby byl multiplatformní. K jeho představení došlo (v rámci představení verze 2.5) na Game Developers Conference v roce 2009.

Další větší update na verzi 3.0 přišel v roce 2010. Mimo jiné vylepšení funkcionality bylo jejím hlavním tématem sjednocení editorů sloužících k vytváření aplikací pro různé platformy (Unity iPhone, Unity Wii) do jednoho s možností publikovat pro všechny platformy.

Dlouho očekávanou funkcionalitou, která byla implementována na konci roku 2013 ve verzi 4.3 byla podpora vývoje 2D her. Do této doby museli vývojáři 2D her používat různá kreativní řešení, plná podpora 2D vývoje a řešení pomocí sprite přišlo až se zmíněnou aktualizací. Ve stejném roce také sociální síť Facebook integrovala SDK pro hry vytvořené v Unity engine. V roce 2016 pak obě firmy společně vytvořili novou herní platformu pro PC hry.

Unity pak prošlo ještě mnoha úpravami a vylepšeními jednotlivých komponent (případně přidáním nových). V roce 2017 společnost začala realizovat plány pro využití enginu i mimo herní průmysl (například přidáním nového systému animací pro vytváření filmů). V roce 2018 pak byly přidáni funkce pro strojové učení, například funkce pro učení z návyků reálných hráčů.

Další průlomovou funkcionalitou bylo představení Scriptable Render Pipeline (SRP) v roce 2018. Tato technologie umožňuje uživateli kontrolovat renderování pomocí C# scriptů. Původně byly nabízeny dvě možnosti - High Definition Render Pipeline (HDRP) sloužící pro vytváření ultra realistické grafiky s vysokou fidelitou pro nejvyšší kategorii her, ale i pro využití v architektuře či automobilovém průmyslu. Druhou možností byla Lightweight Render Pipeline (LWRP) sloužící především pro mobilní vývoj a využití s virtuální realitou. LWRP byla později nahrazena univerzálnější Universal Render Pipeline (URP). V současnosti Unity také nabízí možnost vytvořit si a přizpůsobit vlastní SRP.

Přehled

Klíčové komponenty 
Herní engine je komplexní vývojové prostředí složené z různých komponent. Mezi ty stěžejní lze zařadit:

Vykreslovací engine 
Část zajišťující renderování, tedy vykreslování reálně vypadajících obrazů na základě dat zpracovaných grafickou kartou - tvarů, materiálů, světel apod. Kromě základního vestavěného řešení poskytuje Unity pokročilejším uživatelům také možnost tento proces ovládat pomocí scriptů, díky funkcionalitě Scriptable rendering pipeline. Díky tomu je možné například vytvářet ultra-realistickou HD grafiku.

Fyzikální engine 
Slouží k simulaci fyzikálních zákonů jako například gravitace, pohybu, působení síly a dalších. K tomu, aby byl objekt řízen fyzikálním enginem musí mít připojenou komponentu Rigidbody (Rigidbody 2D). Patří sem také vyhodnocení vzájemného působení objektů mezi sebou (kolizí). Hranice objektů určují další speciální komponenty Collidery. Logika kolize je pak řešena pomocí scriptů.

Skriptování 
Pomocí skriptů se vytváří herní mechaniky. Jedná se o část popisující a ovládající logiku hry. Pomocí skriptů lze například přidávat, odebírat a měnit různé předměty ve scéně, kontrolovat dodržení pravidel hry, uchovávat důležité hodnoty, řídit kolize objektů, číst vstupy od hráče (pohyb a kliknutí myši) atd.

Programovacím jazykem pro psaní scriptů v Unity je C#, jedná se o objektově orientovaný, statický programovací jazyk vyvinutý společností Microsoft.

V některých verzích Unity z roku 2017 a starších byly ještě podporovány jazyky Boo a UnityScript (jakási verze JavaScriptu pro Unity). Podpora těchto jazyků však byla v roce 2017 ukončená a hlavním jazykem pro skriptování v Unity tak zůstal C#.

Unity uživatelům poskytuje velmi rozsáhlou dokumentaci celého ScriptingAPI.

Zvukový engine 
Kromě grafické a logické části je nedílnou součástí také část zvuková. Základní funckionalitou je načtení, dekomprimace a přehrání zvukové stopy. Unity kromě toho nabízí i pokročilejší funkce, jako integrace více různých zdrojů zvuku dohromady pomocí Audio mixeru. Uživateli nabízí kontrolu nad těmito zdroji, může pro ně určit prahové hodnoty a na nich definovat různá pravidla. Mezi další pokročilejší funkce patří například produkce Dopplerova jevu, ozvěn, změn výšek tónů a další.

Další komponenty 
Další důležité komponenty herního enginu Unity jsou Multithreading (rozdělení rozsáhlé aplikace do logických vláken, která se pak pomocí různých optimalizačních algoritmů střídají o procesorový čas) a s tím související Správa paměti. Dále Síťování - část zajišťující komunikaci přes internet (online multiplayer), animace, umělá inteligence a další.

Podporované platformy 
Unity je multiplatformní software. Editor je podporovaný pro nejrozšířenější operační systémy, Microsoft Windows, macOS a Linux, a jeho pomocí lze vytvářet aplikace pro více než 25 platforem, včetně mobilních, desktopových, herních konzolí, virtuální a rozšířené reality. Mezi nejznámější platformy patří iOS, Android, Windows, macOS, Linux, WebGL, PlayStation 4, PlayStation 5, Xbox One, Xbox Series X a Series S, Oculus Rift, Android TV, tvOS, Nintendo Switch, ARCore, ukončená platforma Google Stadia, Microsoft HoloLens, MagicLeap.

V roce 2020 Unity stále dominuje trhu mobilních her (přes 50% veškerých her pro mobily běží na Unity enginu). Tržní podíl přes 60% drží také na trhu s VR a AR obsahem.

Licence 
Do roku 2016 se Unity dalo pořídit jednorázovým nákupem licence, ve zmíněném roce pak společnost přešla na obchodní model předplatného na určitý čas. V současnosti Unity nabízí více možností předplatného (plánů), z nichž jeden je zdarma pro osobní užití jednotlivců, či malé společnosti, které ročně negenerují obrat více než 100,000 dolarů.

Unity Asset Store 
Obchod, kde uživatelé mohou prodávat / kupovat vlastní vytvořené objekty (případně i celé projekty) k dalšímu použití. Do poloviny roku 2018 dosáhl počet stažení přes Unity Asset Store 40 milionů.

Další možnosti využití 
V roce 2010 se Unity Technologies rozhodlo využít svůj herní engine také v jiných odvětvích, konkrétně v automobilovém a filmovém průmyslu. Ve spolupráci s filmařem Neillem Blomkampem pak v roce 2017 vznikly dva krátké počítačově generované filmy Adam: The Mirror a Adam: The Prophet.

V automobilovém průmyslu se Unity využívá pro vytváření modelů nových aut ve virtuální realitě, sestavení virtuálních montážních linek a výcviku nových pracovníků. Další obory na které se Unity Technologies soustředí jsou architektura, strojírenství a stavebnictví.

Reference

Externí odkazy 
 
 oficiální stránka http://unity.com/
 Oficiální stránka dokumentace (anglicky) https://docs.unity3d.com/Manual/index.html
 Oficiální výuková stránka (anglicky) https://learn.unity.com/

Herní enginy