Počítačové hry a animace Cvičení 1 – Unity3D
Představení Unity3D http://unity3d.com/unity/download game engine + level editor, script editor rapid game development, podpora prakticky všech platforem scene-graph + per game object script (C#, JavaScript) Free a Pro licence Free pro nekomerční použití a malé týmy placená plnohodnotná Pro licence Free je ožezaná o část funkcionality.
Proč Unity3D? vhodné pro projekty rozsahem bodobné PHA semestrálce poskytuje vhodnou úroveň abstrakce, složitost odpovídá potřebám studenta PHA čisté API spousta dokumentace, tutoriálů jednoduché sdílení assetů mobilní platformy, konzole, Linux, ...
Alternativy? Lowlevel knihovny (čisté DX, OpenGL, vlastní FW, ...) Tým za semestr typicky nějak odladí načítání modelů a nějaké to vykreslování, ke gameplay se vetšinou nedostane. Zájemci: PGR2, bakalářka/diplomka na DCGI ;) Highlevel knihovny, jednoduchý engine (XNA, Ogre3D, ...) Rešení četných bugů, nedostatek funkcionality, tým se vetšinou ke gameplay dostane. Obrovské AAA engine (CryEngine, UDK, ...) Tým většinou za semest nestihne enginu porozumět, plave v příliš složitém editoru, nemá k dispozici kvalitní dokumentaci atd.
Unity Asset Store Hra = Engine + Assety Asset: jakýkoliv stavební blok hry model, textura, materiál, zvuk, chování nepřítele, skript, ... možnost stahovat/kupovat přímo v editoru pravidla předmětu: multimedialní assety vlastní + free skipty pouze vlastní obrovská výhoda Unity3D
Skriptování v C# Unity podporuje skriptováni v C# a JavaScript (resp. nadstavbu JS). V PHA budeme psát v C#. Potřeba pro: menu, gui, kameru herní logiku, AI multiplayer, ... Netřeba řešit: načítání assetů, změnu levelů, herní smyčku, vykreslování, přehrávání animací, lowlevel síťové komunikace, ...
Praktická část - instalace
Praktická část - registrace
Nastavení projektu - verzování U placené verze je dostupný Asset Server. nemáme, nechceme, máme vlastní SVN, git, ... defaultní chování editoru: spousta binárních metadat v jednom adresáři (Library) nevhodné pro verzování nutno změnit
Nastavení projektu - verzování
Nastavení projektu - verzování Unity vytvoří automaticky v projektu adresáře: Assets, ProjectSettings, Library, Temp Co je potřeba „dávat do SVN“? Assets, ProjectSettings btw. všechny reporty, dokumentaci atd. v pdf... Co „nedávat do SVN“? Library, Temp Dodržujte štábní kulturu v repozitáři! pořádek ve složce Assets – viz vzorový projekt (AngryBots)
Seznámení s editorem Praktická ukázka... Scene graph GameObject, components Prefab jednoduchý C# script