Recenzija knjige "Unity Game Development Essentials"

Naslov: Unity Game Development Essentials
Autori: Will Goldstone
Jezik: engleski
Broj stranica: 316
Izdanje: listopad 2009.
ISBN: 184719818X
ISBN 13: 978-1-847198-18-1
Teme i tehnologije: Unity
Ocjena: 4/5

Dugo očekivana - napokon je tu! Zapravo - ja ne govorim o knjizi - već o mogućnosti svakoga od nas da programira profesionalne 3D igre. Unity je dugo očekivani sistem razvojnog okružja, plugina za preglednik i gomile drugih nevjerojatnih stvari za kojima smo imali potrebu već dulje vremena, no nismo dobili niti u jednom od trenutno popularnih sistema.

Čim sam (igrom slučaja) otkrio Unity, ostao sam zapanjen njegovim mogućnostima. Da, prva stvar koju sam vidio bio je poznati demo s otokom - ništa slično nisam prije toga vidio u web pregledniku. I radilo je bez "štucanja" - brzinom nevjerojatnom za jedan plugin. 

Nakon instalacije razvojnog okružja (koje je besplatno u svojoj osnovnoj formi) shvatio sam da se radi o revolucionarnom produktu. Ne samo da svima omogućava da pišu visokokvalitetne igre, već implementira sve moderne koncepte koji se danas koriste u razvoju igara - od fizike do renderiranja. Sve što je ostalo za nas korisnike jest da - pišemo igre.

Ova knjiga predstavlja revolucionarno razvojno okružje i pomaže nam u prvim koracima u svijetu Unityja. Nakon uvodnog poglavlja o osnovnim 3D konceptima, sljedeće poglavlje uvodi vas u mogućnosti razvojnog okružja. Korak po korak, knjiga predstavlja alate i načine njihovog korištenja.

Knjiga pokriva velik broj koncepata u Unityju, od kojih ovom prilikom želim naglasiti dva: razvoj baziran na komponentama i skriptiranje. Nekoliko riječi o oba koncepta:

Razvoj baziran na komponentama

Industrija igara prešla je dug put od svog rođenja do sazrijevanja. S tehničkog gledišta, postoje različite filozofije o tome što čini savršeni sistem. Debate o arhitekturi savršenog API-ja su svakodnevne.

Ipak, iz današnje točke gledišta, neki obrasci dizajna kompjuterskih igara ranije su zaista nedostajali. Osnovni razlozi su to što je broj korištenih klasa kao i dubina njihove hijerarhije eksponencijalno rasla s kompleksnošću igre, što je otežavalo snalaženje u kodu, a svaka promjena ili proširenje funkcionalnosti proizvodilo je velik otpor razvojnih programera. 

Razvoj baziran na komponentama rješava navedene probleme, uvodeći novi način korištenja klasa - klasa postaje nosioc pojedine funkcionalnosti - komponenta, a objekti u igri postaju "spremnici" koji sadrže proizvoljne kombinacije tih funkcionalnosti. Koristeći kompoziciju više nego nasljeđivanje, Unity uspijeva pobijediti loše koncepte iz prošlosti. 

Ova knjiga obiluje korisnim primjerima koji će vas pokrenuti u smjeru programiranja pomoću komponenti.

Skriptiranje

Sljedeći snažan koncept unutar Unityja jest skriptiranje. Skriptiranje se najčešće dovodi u vezu s tzv. weak typed programiranjem, što je slučaj i u Unityju. To znači da Unity za vrijeme kompajliranja nije tako striktan kao strong typed kompajleri, tj. dozvoljava da se određeni dio grešaka pojavi tek za vrijeme izvođenja aplikacije. Ovakav pristup autoru daje veću slobodu, ali isto tako i veću odgovornost što se tiče pokrivanja svih mogućnosti koje se mogu dogoditi za vrijeme izvođenja. 

Skripte su u načelu tekstualne datoteke koje su napisane u jednom od tri jezika: Javascript, C# ili Boo. Javascript je jezik koje je korišten u ovoj knjizi (spomenuo bih i to da je Javascript u Unityju po sintaksi zapravo sličniji Actionscriptu 3). Svaka skripta može pristupati propertyjima i metodama objekta za koji je vezana, kao i komponentama tog objekta (uključujući i druge skripte). Skripte se također smatraju komponentama i dodaju se objektima jednostavnim dovlačenjem iz biblioteke i spuštanjem na željeni objekt.

S instalacijom Unityja dolazi određeni broj vrlo korisnih skripti. Knjiga objašnjava korištenje ovih skripti, kao i pisanje vlastitih.

Osim ova dva koncepta, postoje i mnogi drugi pokriveni ovom knjigom, poput:
- detekcija sudara, kruta tijela i fizika
- teksture i svjetla
- referenciranje i pristup komponentama
- zvuk i ulazne kontrole
- sistemi emitiranja čestica (partycle systems)
- izbornik i GUI

Sve u svemu - jako dobra knjiga (trenutno prva i jedina Unity knjiga) koja će vam pomoći da zaronite u razvoj pomoću revolucionarnog Unity 3D alata.

Danko Kozar, veljača 2010.