Lekce 1 - Úvod do Unity 3D
Vítejte v úvodní lekci do Unity 3D, populárního multiplatformního enginu pro tvorbu 2D a 3D her. V dnešní lekci si technologii uvedeme a dále si můžete vybrat navazující kurz podle toho, zda chcete tvořit 2D nebo 3D hru.
Co je Unity 3D?
Unity je jeden z nejpoužívanějších enginů v dnešní době. Unity engine lze použít pro vytváření například těchto her: MMO hry (buď díky vestavěnému Unity multiplayer pluginu nebo díky řešení třetí strany - Photon Network), FPS hry, závodní hry, real-time strategie, tahové strategie, střílečky z třetího pohledu, RPG hry, adventury a mnoho, mnoho dalších. Za vytvořené projekty v Unity mohu uvést některé vlastní:
Space Invaders Remake Doba tvorby: 2 dny čistého času
Tower Defense Hra Doba tvorby: 2 týdny čistého času
Stažení a licence
Pokud plánujete pracovat v Unity, raději už začněte stahovat, má přes 1 GB. Na stránce ke stažení Unity již vidíme, že má několik edic podle toho, kolik naše hra vydělává peněz včetně edice zadarmo.
My samozřejmě zvolíme edici Personal (záložka Individual), která je zadarmo, pokud naše hra nevydělává nebo není financována jiným způsobem více než $100.000 ročně. Jelikož je částka v dolarech, tak pokud ještě nejste milionáři, tak nemáte problém Pro vážnější herní studia můžeme případně využít další edice, které za příjem v řádech milionů ročně chtějí poplatek v řádech tisíců korun měsíčně.
Mezi edicemi je rozdíl v zobrazování loga Unity po otevření vašeho zkompilovaného projektu (připraveného projektu k hraní/spuštění), a v několika funkcích a vlastnostech Unity navíc. Pokud nejste větší studio, bohatě si vystačíte s Unity Free.
Platformy
Unity umožňuje export na tyto platformy (za export na některé platformy se platí):
- PC/MAC/LINUX
- Android
- iOS
- Web Player (díky pluginu v prohlížeči hrajete hru bez nutnosti stažení/instalace)
- Chrome Native (podobné jako web player, ale jen pro Google Chrome)
- Flash Player
- Xbox 360
- PS3
- Wii U
Programovací jazyk
Unity 3D usiluje o to, aby byl život lepší a jednodušší pro herní vývojáře. Umožňuje kreativním lidem vytvářet vysoce kvalitní hry.
Samotný engine je naprogramován v C++ a vy v něm dále vytváříte skripty v C#, trochu upraveném JavaScriptu nebo v Boo - jazyce velmi podobném Python. V tomto tutoriálu budeme programovat v C#, protože se jedná o jednoduchý a moderní jazyk, také je v Unity nejčastější volbou. Kurzy předpokládají, že znáte základy C# a OOP v C#.
Dále se v Unity prosazuje metoda tzv. pluginů. Těch existuje několik druhů, např. Android/iOS plugin. V případě, že se programováním na danou platformu zabýváte opravdu vážně, je taktéž možné koupit PRO edici plug-inů.
Fungování her v Unity
- Každá hra má své assety (zdroje). Jsou to prakticky všechny soubory, které bude hra obsahovat - skripty, 3D modely, textury, zvuky, mapy atd. Tyto assety můžeme použít již hotové a tak hru sestavit jako stavebnici.
- Hra se skládá z několika scén. To jsou prakticky levely (nebo mapy) hry.
- Scéna se skládá z herních objektů - GameObjects.
- Herní objekty se skládají z komponent, to jsou jejich skripty.
Unity vs. vlastní herní engine
Pro programování her máme v zásadě dvě možnosti:
- Vytvořit si vlastní engine, čímž se pro C# zabýváme v kurzu C# - Tvorba her v MonoGame
- Použít již vytvořený herní engine, což je to, co budeme dělat zde s Unity 3D dělat
Zjednodušeně můžeme říci, že při tvorbě vlastního enginu se naučíte lépe programovat, ale vytvoříte horší hru. Záleží jen na vás, co je pro vás priorita.
Vytvořit si vlastní engine
Je těžké udělat engine na zobrazování 3D objektů, jak složité asi bude vytvořit celý engine pro zobrazování textur, počítání fyziky, stíny, odlesky, kolize, apod? Další nevýhodou je, že se 3D hry obvykle programují v C++, což může být pro začátečníka, kterého zrovna napadlo, že chce vytvořit nějakou hru, dost složité. Proto si z těchto dvou hlavních nevýhod tvoří herní enginy většinou jen velké společnosti, které potřebují mít co největší kontrolu na svým projektem. Vlastní engine má jednu zásadní výhodu. Je váš, víte co jste kde a jak naprogramovali a to může představovat velkou výhodu. Můžete přinášet nové technologie, získat maximální výkon a podobně.
Použít již vytvořený herní engine
Jednou z hlavních výhod je, že volně šiřitelné enginy mají většinou svůj vlastní store(obchod), ve kterém si můžete zdarma a nebo za poplatek zpřístupnit či pořídit různé balíčky, již vytvořených modelů, skriptů, textur, šablon pro projekty (level design). Her je dnes všude spoustu a kdybychom znovu vynalézali kolo, nebyla by ta naše dost dobrá a snadno by zapadla mezi ostatní. Další výhodou je, že když nevíte, stačí googlit o sto šest a ve většině případů, sice někdy po delší době hledání, najdete co hledáte. Poslední výhodou, kterou bych chtěl vypíchnout, je multiplatformnost. Můžete namítnout, že i když si vytvoříte vlastní engine, můžete ho vytvořit tak, aby fungoval jak na mobilu tak na Playstation. Ale např. uživateli Unity si stačí stáhnout doplněk a kliknout na tlačítko export, rázem má verze pro všechny operační systémy i na mobilní platformu.
Nyní jsme si unity představili i nainstalovali
V příští lekci, Unity (C#) Android: Nastavení prostředí, začneme programovat 2D hru pro Android.