Jedinstvo3d. Početak rada, praktični savjeti

Dakle, danas bih vam želio reći o Unityju (barem onima koji to još nisu upoznati). Naravno, na Habréu ima ljudi koji znaju o čemu se radi, ali pretraga daje katastrofalno mali broj tema u kojima se spominje ta tema - dvije jednostavno prijavljuju nove verzije, jedna je ukratko predstavlja, a druga je posvećena njezinoj upotrebi. “Neoprostivo, moramo ovo popraviti!” pomislio sam i odlučio napisati kratku prezentaciju kako bih popularizirao tehnologiju. Ako ste već u temi, ne morate čitati dalje.

Da budem iskren, kada sam na Wikipediji pročitao o besplatnom (barem s potpuno normalnom funkcionalnošću i besplatnom licencom) 3D motoru s normalnim IDE-om, ugrađenim normalan fizika, audio engine i direktna implementacija mrežnog multiplayera na kojem možete raditi aplikacije za sve, osim možda za nixeve (Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, XBox 360 su podržani i rade normalno), Već sam osjetio kvaku.

Kad sam saznao da se bilo koja Unity aplikacija može kompajlirati u posebnu verziju za dodatak ugrađen u preglednik, i možete vidjeti iskrenu, punopravnu tride u prozoru Firefoxa, praktički bez smanjenja kvalitete modela i rezolucije teksture - Bio sam gotovo siguran da je to tako uvijek u takvim slučajevima, potpuna besmislica.

A kada sam sebi stvorio ovo čudo i uvjerio se u istinitost svega navedenog, skoro sam se zaljubio.

Mnogo puta su se rađale tehnologije koje su sebi postavile cilj dovesti pošteno tride na Internet. Sjetimo se katastrofalnog VRML-a, malo manje katastrofalnih ActiveWorldsa... Danas ih se gotovo nitko ne sjeća. Uskoro će cijeli svijet biti ispunjen HTML5, izlazi novi Flash s 3D akceleracijom... Ali dok se to ne dogodi, svijetom multimedijskih sadržaja na webu, uz Javu i Silverlight, vlada trenutna verzija Flasha. Možda čak i samo Flash. Razvojni programeri s poteškoćama koriste druge tehnologije, to je razumljivo - teško je natjerati korisnika da instalira još jedan dodatak treće strane samo da bi igrao jednu igru/pregledao jednu stranicu.

Međutim, s izlaskom nove, treće verzije gore spomenutog motora, možete razmisliti o preispitivanju svojih stavova o omiljenoj bljeskalici. Na kraju, ako su divovi flash igračaka poput Kongregatea obratili pozornost na ovu tehnologiju (konkretno, raspisali su natječaj za najbolju igru ​​na Unityju) – vrijedi je barem pogledati.

Možete pogledati na mnogo mjesta, ali kao primjer ću dati nekoliko linkova. Slijedeći poveznice od vas će se tražiti da instalirate dodatak - težak je kilobajta i radi bez ponovnog pokretanja preglednika (nažalost, veličina demoa nije se mogla izračunati, pa budite oprezni - dimenzije mogu biti oko 30-50 metara):

  • Bootcamp je demo za treću verziju, pucačina iz trećeg lica, moglo bi se reći zaštitno lice cijelog enginea u ovom trenutku. Također pri dnu možete kliknuti na druge demonstracije - većina se odnosi na starije verzije, ali još uvijek možete gledati
  • Odjeljak Unity na Kongregate.com - ovdje su igre već prilagođene za web, ne teže više od običnih flash diskova
  • Popis igara na offsiteu - također možete vidjeti
Pokušajmo shvatiti kakva je ovo zvijer i je li stvarno tako dobra kao što je naslikana na službenoj stranici.

Za i protiv

Za početak, definirajmo pojmove. Unity je potpuni motor za igre, dizajniran tako da se cijeli razvojni proces (dobro, osim pripreme resursa i skriptiranja) odvija u uključenom Everything Editoru. Obično takva formulacija pitanja znači neodrživo čudovište, obraslo sporim GUI-jem, nemojte se igrati s njim, osmišljeno kako bi se tinejdžeri iz kategorije "gamedev-wannabis" osjećali uključeni u gamedev. Ali još ne biste trebali zatvoriti karticu s ovom temom - Unity nije iz ovog testa. Dakle, što je tako dobro u Unityju? Pogledajmo, a ujedno i usporedimo s UDK - SDK za UnrealEngine 3, koji je Epic Games nedavno učinio besplatnim za nezavisne programere.

Dobro jedinstvo:

  • Sa svojim IDE-om kombinira uređivač scene (također uređivač za sve što je dolje navedeno), uređivač objekata igre, pa čak i jednostavan uređivač skripti. Osim toga, komplet uključuje generator stabala a la SpeedTree (nije loše) i generator terena (standardno, praktično);
  • Mogućnosti skriptiranja - za razliku od UDK-a, u kojem možete pisati samo na ugrađenom samostalnom jeziku, Unity ima tri dostupna jezika: JavaScript, C# i Python dijalekt koji se zove Boo. Nisam to osobno provjerio, ali u ruskoj zajednici bilo je fraza da je brzina izvršavanja skripte u UDK-u nekoliko puta niža (to je razumljivo - u Unityju, naposljetku, skripte se kompajliraju u izvorni kod);
  • Više platformi - kao što je gore spomenuto, podržani su Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 i XBox 360. I naravno, ne zaboravite web dodatak. Nisu svi dostupni pod besplatnom licencom (zapravo, međugradnje su dostupne samo za Windows, Mac i Web), ali to je sasvim razumljivo. U sustavu Windows i Mac sve se kompajlira bez ikakvih promjena u kodu; za web ćete, naravno, morati smanjiti resurse - preuzimanje 400 metara za otvaranje jedne razine u pregledniku nije baš zgodno. U nastavku ću opisati rad web verzije;
  • Razina grafike je prilično moderna - osim toga, UDK je, naravno, inferioran Unityju u pogledu broja implementiranih značajki - uostalom, UnrealEngine se može nazvati jednim od vodećih brodova u ovom području, a teško ga je nadmašiti . Ali Unity ima odgođeno osvjetljenje, ugrađeni uređivač sjenčanja, standardni skup efekata naknadne obrade (potpuni popis, možete napisati vlastiti, naravno), sada moderan SSAO - ukratko, cijeli set alata za stvaranje postoji AAA projekt. Usput, radi svjetlosne karte više nego adekvatno i brzo;
  • Physics engine - ima sve što jedan physics engine treba moći. Napravite vlastiti Half-Life 2 s znate već čime? Lako!
  • Izvedba i skalabilnost - bez oklijevanja dajemo "izvrsno". Budući da motor sam obavlja većinu rutinskih poslova u vezi s tim i obavlja odličan posao;
  • Pokretanje bilo koje aplikacije u web dodatku - o tome smo već pričali, ali nije grijeh spomenuti to opet.
  • Niska cijena za licencu - samo 1500 USD. I besplatna verzija, bez nekih dodataka;
Ovako nekako. Sada raspravimo zašto je to loše:
  • Zatvoreno je. Oni. Neće vam dati izvorne kodove čak ni uz licencu. Kod UDK-a, ako sam sve dobro shvatio, slika je ista - izvorni kodovi se licenciraju posebno, za više novca. Međutim, u Unityju možete koristiti skripte za potpuno istu stvar koju bismo mi učinili s izvornim kodom - možete modificirati gotovo sve... Ali svejedno, izvorni kod je bolji u svakom pogledu, tako da je ovo minus - kod najmanje za one koji bi htjeli dodati fiziku treće strane ili isti SpeedTree;
  • DOBIT.
Da budem iskren, još ne vidim stvarne nedostatke. Motor je stabilan, produktivan, jednostavan za korištenje - što vam više treba? Definitivno postoje neki nedostaci. Stoga sam često nailazio na izvještaje o čudno funkcionirajućem aditivnom miješanju animacija. Neki se ljudi žale na nedostatak dodjeljivanja više materijala terenima - ne znam, nisam to probao. Ali je li to stvarno značajno u svjetlu gore navedenih prednosti? Za mene ne.

Činjenica je da je većini malih timova glavni problem uvijek bio motor (i nedostatak ideja i dobrog umijeća, naravno, ali ne govorimo o tome sada). Pisanje od nule je teško za jedinog programera u timu, s obzirom na to da motor nije samo 3D renderer, već je i hrpa cjevovodnih alata - importeri, editori, preglednici... Nemoguć zadatak, osim ako se ne pridržavate minimalizma . Minimalizam nije loš, ima toliko prekrasnih igrica napravljenih u omiljenom 8-bitnom stilu da ih ne možemo ni nabrojati... Ali većina su jednodnevni projekti (Minecraft se ne broji, da. I po usput, također nije napisano od nule, već u LWJGL). Kada je riječ o igri koja će se igrati danima, potreban vam je potpuni motor, a onda krećemo u potragu za besplatnim rješenjima. Ogre, Irrlicht i još nekoliko njima sličnih su dobri, naravno, ali a) oni su moralno stari i b) njihovo proučavanje i dovođenje u radno stanje zahtijeva puno vremena i veliku teoretsku bazu iza leđa. Naravno, pomoću njih možete napisati cool projekt koji se može prodati (Torchlight on Ogre je primjer za to), ali još uvijek trebate više od jednog programera. Postoje i setovi a la "igre bez znanja programskih jezika", poput GameMakera, ali to su igračke, da budemo iskreni.

U slučaju Unityja, imamo gotov cjevovod, gotov renderer, gotove fizičke, audio i mrežne biblioteke, možemo kodirati na poznatom jeziku - zapravo, sa strane kodiranja samo trebamo znati osnove, recimo, Javascript, i provedite tjedan dana udubljujući se u službenu pomoć za zakivanje FPS-a. Minus jedna prepreka na putu do oslobađanja. Ako netko ne vjeruje u kvalitetu koda koji je napisao netko drugi i koji se ne može ispraviti, neka provjeri, uopće nije tako loš.

Kako izgleda

Na slike se može kliknuti.

Zapravo IDE:

Upravo u IDE-u možete kliknuti gumb "Play" i testirati trenutnu scenu u stvarnom vremenu:

Ugrađeni inspektor klase istražuje, oprostite na tautologiji, klase za varijable i omogućuje vam da mijenjate varijable u skriptama u hodu, bez gledanja u kôd. I ne samo ints, već i materijali, teksture, modeli... To štedi puno vremena. Dokumentacija za API u dobroj formi ukazuje da se ne piše, na primjer, put do teksture izravno u skriptu, već jednostavno napravite prazno svojstvo odgovarajućeg tipa kao prazno svojstvo klase i odaberite u inspektoru koji vam je potreban:

Inspektori montažnih objekata (desno) i entiteta (lijevo). Grubo rečeno, s desne strane su prazni objekti, s lijeve su oni objekti koji postoje u trenutnoj sceni. Zgodno je da tijekom pokretanja razine u uređivaču (gumb "reproduciraj") možete pauzirati pokretanje i vidjeti trenutno stanje objekata - puno rjeđe morate čitati zapisnike ili prikazati liniju za otklanjanje pogrešaka na HUD-u da biste vidjeli ponašanje jedne male varijable:

I na kraju ću reći...

Da rezimiramo svo verbalno smeće do ove točke, ako radite AAA projekt, najvjerojatnije ćete napisati vlastiti motor. Ili već imate motor iz prethodnog projekta. Ili ćete kupiti nešto na razini notornog UnrealEngine 3 sa izvorima. Ali ovo je ako radite AAA projekt s desetak ljudi samo na kodiranju.

Ako imate samo deset ljudi u studiju (a kamoli dvoje), pisanje vlastitog motora obično je preskupo. Iskušenje da skočite na val potpunih 3D igara temeljenih na pregledniku (Java omotač za Ogre se ne računa. Stvarno) vrijedi isprobati Unity u praksi. Brzina i složenost razvoja obične casual igre temeljene na pregledniku na njemu nije veća nego na Flashu, ali je grafička superiornost očita. I nitko još nije otkazao wow efekt.

Na kraju, u Unityju se mogu raditi web stranice (sporno, ali moguće), prezentacije, vizualizirati znanstvene projekte... Sve bi se to moglo napisati ručno, u čistom OpenGL-u, ali nakon usporedbe vremena i kvalitete implementacije, ipak sam sklon koristiti Unity. Bljesak zasad Također ga ne uzimamo u obzir - pričekat ćemo izdanje hardverskog 3D ubrzanja.

Takve će riječi izazvati oluju emocija među pristašama drugih motora. “Da, sve ovo postoji u %enginename%”, “%gamename% i %gamenaname% napravljeni su na %enginename%, i sve to bez podlog sveproždirućeg povlačenja i ispuštanja…

Savjetujem vam da samo Unityju date priliku - osvaja svojom praktičnošću, mogućnostima, fleksibilnošću i brzinom razvoja (barem je mene osvojio). I osim toga... Hej, ovo je puna nit u pregledniku! :)

Razvoj računalne tehnologije doveo je do stvaranja raznih pomoćnih i zabavnih aplikacija. S tim u vezi, na tržištu softvera pojavile su se platforme za izradu aplikacija, od kojih je jedna Unity game engine, koji je punopravni alat za razvoj aplikacija za različite platforme. Igre u njemu mogu biti izrađene u dvodimenzionalnom ili trodimenzionalnom formatu.

Program se distribuira pod plaćenom i besplatnom licencom. U prvom slučaju, korisnik dobiva punopravni alat sa svim raspoloživim mogućnostima. U besplatnoj licenci moguć je i razvoj igara, ali je funkcionalnost lišena nekih značajki. Osim toga, ova verzija ima ograničen broj podržanih platformi. Ako je budući proizvod namijenjen za PC, Android ili web player, onda neće biti problema. Rad s drugim platformama zahtijevat će kupnju plaćene licence. Danas mnogi programeri odabiru Unity (game engine) za svoje projekte. Igre stvorene u njemu uvijek oduševljavaju kvalitetom sučelja i visokim performansama!

Sučelje

Mnogi programeri savjetuju početnicima da koriste Unity. Može se u potpunosti istražiti u samo nekoliko tjedana zahvaljujući jednostavnom sučelju. Jednostavnost korištenja ni na koji način ne narušava funkcionalnost, pa čak i profesionalni programeri provode svoje ideje koristeći ovaj motor.

Radni prostor u njemu podijeljen je u nekoliko dijelova:

  • u Sceni možete odabrati kut i pogledati scenu;
  • Hijerarhija sadrži sve objekte scene;
  • Inspektor će vam pomoći promijeniti željeni objekt;
  • Alatna traka je skup alata;
  • Projekt sadrži sve resurse projekta.

Mogućnosti

Razvoj u Unityju moguć je u Javascriptu i C#. Za punu funkcionalnost morat ćete koristiti oba jezika. NVIDIA PhysX tehnologija je odgovorna za fizičku komponentu, pokazujući izvrsne rezultate.

Unity game engine oduševljava svojim mogućnostima pri radu s objektima. Mogu se kombinirati, isprazniti, ispuniti komponentama povezanim sa skriptom i dodijeliti bilo koja imena i oznake koji poboljšavaju interakciju s kodom. Objekti se mogu spajati na razne sudarače, što će ubrzati i pojednostaviti razvoj.

Animacija modela najčešće se provodi u programima trećih strana, ali među programskim alatima još uvijek postoje vrijedna rješenja za provedbu takvog zadatka.

Materijali su sastavni dio projekta pa je i interakcija s njima izvrsna. Praktično korištenje tekstura pomoći će dati objektu bilo kakav izgled, a shaderi će ga učiniti mnogo ljepšim.

Razvojni proces

Unity game engine nastao je još 2005. godine i tada nije bio osobito popularan zbog malog broja značajki. Međutim, programeri su često objavljivali ažuriranja, čineći svoj proizvod boljim. Stalno dodavanje novih platformi privuklo je pozornost korisnika. Funkcionalnost je postupno proširena, a jednostavnost korištenja poboljšana.

Novi efekti doveli su grafiku na modernu razinu. Ažurirana fizika učinila je igru ​​življom i realističnijom. Rad sa skriptama se također stalno poboljšavao, što je posebno privuklo programere. S pojavom sponzora, Unity je ubrzao razvoj i danas zauzima vodeće mjesto među konkurencijom.

Značajke Unityja 5

Tehnologije kao što su Level of Detail i Occlusion Culling podigle su razvoj igara na sljedeću razinu, a te se inovacije pojavljuju u Unity 5. Motor igre, zajedno s takvim alatima, promijenit će način na koji se izračunavaju detalji. Sada će uređaj trebati samo obraditi ono što igrač vidi, što će poboljšati performanse.

Razina detalja će pogoršati detalje udaljenih objekata na lokaciji. Opterećenje procesora će se osjetno smanjiti, ali igrač neće primijetiti pogoršanje grafike.

Prednosti

Početnici će odmah cijeniti Unity (motor igre). Obuka u njemu je što je moguće jednostavnija, ali osim toga, proizvod se može pohvaliti velikim brojem drugih prednosti, a evo glavnih:

  • Zgodno sučelje koje sadrži sve potrebne elemente.
  • Ogroman broj podržanih platformi koje će vam omogućiti stvaranje igara ne samo za računalo, već i za pametni telefon, igraću konzolu i niz drugih uređaja.
  • Širok raspon mogućnosti za rad sa skriptama. Unity je u interakciji s dva popularna programska jezika, što osigurava veliku brzinu kompilacije skripte.
  • Niz alata za izradu visokokvalitetne grafike. Razni načini osvjetljenja, shaderi, efekti i druge tehnologije omogućit će pristojan vizualni dizajn.
  • Izvrstan fizički motor.
  • Visoke performanse.
  • Besplatna verzija programa koja svakome omogućuje isprobavanje njegovih mogućnosti.

Mane

Korisnici koji ne govore engleski mogu naići na probleme u korištenju Unityja. Motor igre na ruskom trenutno još nije dostupan. Također ne postoje lokalizatori za ovu platformu.

Osim toga, Unity je potpuno zatvoren, te je nemoguće dobiti izvorne kodove. Dodavanje fizike treće strane ili nešto slično neće raditi. Međutim, vrijedi napomenuti da su dostupne skripte sasvim dovoljne, zbog čega bi bilo pogrešno nazvati takav nedostatak ozbiljnim. Mnogi se ljudi uopće ne suočavaju s potrebom nabave izvornog koda.

Nedostaci se mogu pojaviti i kod razvoja velikih igara ili jednostavno u nekim malim detaljima. Ali svi nedostaci se stalno ispravljaju, a okruženje se brzo poboljšava.

Usporedba s konkurentskim proizvodima

Program ima nekoliko konkurenata, a među njima su UDK i CryENGIN. Sva tri ova predstavnika su vrijedna pažnje, ali svaki od njih ima jedinstvene aspekte. U žanru FPS pucačina, UDK ima prednost zbog upotrebe jedinstvenog programskog jezika. U nekim slučajevima ovo poboljšava rukovanje skriptama.

CryENGINE je više dizajniran za platforme nove generacije, koje će pružiti igre s nevjerojatnom grafikom. Međutim, takva prilagodba ne dopušta da bude univerzalna. Unity se često koristi za izradu mobilnih igara. Motor igre vam omogućuje da razvijete pristojne proizvode za bilo koju platformu. Sva ova razvojna okruženja imaju svoje prednosti i nemoguće je odabrati ono najbolje. Međutim, Unity je taj koji brzo raste i ima sve šanse da u budućnosti zauzme prvo mjesto među svojim konkurentima.

zaključke

Ako planirate izraditi projekt velikih razmjera, najbolje je koristiti vlastito razvojno okruženje. Za sve ostale slučajeve savršen je Unity game engine. Malo je vjerojatno da će pomoći u realizaciji AAA, projekta na kojem rade deseci ljudi. No vjerojatnost da će takav tim koristiti javno dostupno razvojno okruženje iznimno je mala.

Unity je stvoren za srednje i male projekte. Za jednog ili nekoliko programera, to će pružiti dovoljno mogućnosti i pomoći u realizaciji svake ideje.

Među svim današnjim platformama, web okruženje je izuzetno privlačno i možete ga osvojiti bez ikakvih problema. Unity će pokazati veliku brzinu razvoja i maksimalnu pogodnost. Dobiveni proizvod može vas stvarno iznenaditi!

Sve prednosti predstavljene platforme izdvajaju je od ostalih. A ako ste zainteresirani za razvoj igrica, onda ovu kopiju svakako vrijedi isprobati. Brojne mogućnosti, praktični alati, fleksibilna postavka radnog prostora i sve ostale značajke oživjeće svaku ideju!

Dakle, danas bih vam želio reći o Unityju (barem onima koji to još nisu upoznati). Naravno, na Habréu ima ljudi koji znaju o čemu se radi, ali pretraga daje katastrofalno mali broj tema u kojima se spominje ta tema - dvije jednostavno prijavljuju nove verzije, jedna je ukratko predstavlja, a druga je posvećena njezinoj upotrebi. “Neoprostivo, moramo ovo popraviti!” pomislio sam i odlučio napisati kratku prezentaciju kako bih popularizirao tehnologiju. Ako ste već u temi, ne morate čitati dalje.

Da budem iskren, kada sam na Wikipediji pročitao o besplatnom (barem s potpuno normalnom funkcionalnošću i besplatnom licencom) 3D motoru s normalnim IDE-om, ugrađenim normalan fizika, audio engine i direktna implementacija mrežnog multiplayera na kojem možete raditi aplikacije za sve, osim možda za nixeve (Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, XBox 360 su podržani i rade normalno), Već sam osjetio kvaku.

Kad sam saznao da se bilo koja Unity aplikacija može kompajlirati u posebnu verziju za dodatak ugrađen u preglednik, i možete vidjeti iskrenu, punopravnu tride u prozoru Firefoxa, praktički bez smanjenja kvalitete modela i rezolucije teksture - Bio sam gotovo siguran da je to tako uvijek u takvim slučajevima, potpuna besmislica.

A kada sam sebi stvorio ovo čudo i uvjerio se u istinitost svega navedenog, skoro sam se zaljubio.

Mnogo puta su se rađale tehnologije koje su sebi postavile cilj dovesti pošteno tride na Internet. Sjetimo se katastrofalnog VRML-a, malo manje katastrofalnih ActiveWorldsa... Danas ih se gotovo nitko ne sjeća. Uskoro će cijeli svijet biti ispunjen HTML5, izlazi novi Flash s 3D akceleracijom... Ali dok se to ne dogodi, svijetom multimedijskih sadržaja na webu, uz Javu i Silverlight, vlada trenutna verzija Flasha. Možda čak i samo Flash. Razvojni programeri s poteškoćama koriste druge tehnologije, to je razumljivo - teško je natjerati korisnika da instalira još jedan dodatak treće strane samo da bi igrao jednu igru/pregledao jednu stranicu.

Međutim, s izlaskom nove, treće verzije gore spomenutog motora, možete razmisliti o preispitivanju svojih stavova o omiljenoj bljeskalici. Na kraju, ako su divovi flash igračaka poput Kongregatea obratili pozornost na ovu tehnologiju (konkretno, raspisali su natječaj za najbolju igru ​​na Unityju) – vrijedi je barem pogledati.

Možete pogledati na mnogo mjesta, ali kao primjer ću dati nekoliko linkova. Slijedeći poveznice od vas će se tražiti da instalirate dodatak - težak je kilobajta i radi bez ponovnog pokretanja preglednika (nažalost, veličina demoa nije se mogla izračunati, pa budite oprezni - dimenzije mogu biti oko 30-50 metara):

  • Bootcamp je demo za treću verziju, pucačina iz trećeg lica, moglo bi se reći zaštitno lice cijelog enginea u ovom trenutku. Također pri dnu možete kliknuti na druge demonstracije - većina se odnosi na starije verzije, ali još uvijek možete gledati
  • Odjeljak Unity na Kongregate.com - ovdje su igre već prilagođene za web, ne teže više od običnih flash diskova
  • Popis igara na offsiteu - također možete vidjeti
Pokušajmo shvatiti kakva je ovo zvijer i je li stvarno tako dobra kao što je naslikana na službenoj stranici.

Za i protiv

Za početak, definirajmo pojmove. Unity je potpuni motor za igre, dizajniran tako da se cijeli razvojni proces (dobro, osim pripreme resursa i skriptiranja) odvija u uključenom Everything Editoru. Obično takva formulacija pitanja znači neodrživo čudovište, obraslo sporim GUI-jem, nemojte se igrati s njim, osmišljeno kako bi se tinejdžeri iz kategorije "gamedev-wannabis" osjećali uključeni u gamedev. Ali još ne biste trebali zatvoriti karticu s ovom temom - Unity nije iz ovog testa. Dakle, što je tako dobro u Unityju? Pogledajmo, a ujedno i usporedimo s UDK - SDK za UnrealEngine 3, koji je Epic Games nedavno učinio besplatnim za nezavisne programere.

Dobro jedinstvo:

  • Sa svojim IDE-om kombinira uređivač scene (također uređivač za sve što je dolje navedeno), uređivač objekata igre, pa čak i jednostavan uređivač skripti. Osim toga, komplet uključuje generator stabala a la SpeedTree (nije loše) i generator terena (standardno, praktično);
  • Mogućnosti skriptiranja - za razliku od UDK-a, u kojem možete pisati samo na ugrađenom samostalnom jeziku, Unity ima tri dostupna jezika: JavaScript, C# i Python dijalekt koji se zove Boo. Nisam to osobno provjerio, ali u ruskoj zajednici bilo je fraza da je brzina izvršavanja skripte u UDK-u nekoliko puta niža (to je razumljivo - u Unityju, naposljetku, skripte se kompajliraju u izvorni kod);
  • Više platformi - kao što je gore spomenuto, podržani su Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 i XBox 360. I naravno, ne zaboravite web dodatak. Nisu svi dostupni pod besplatnom licencom (zapravo, međugradnje su dostupne samo za Windows, Mac i Web), ali to je sasvim razumljivo. U sustavu Windows i Mac sve se kompajlira bez ikakvih promjena u kodu; za web ćete, naravno, morati smanjiti resurse - preuzimanje 400 metara za otvaranje jedne razine u pregledniku nije baš zgodno. U nastavku ću opisati rad web verzije;
  • Razina grafike je prilično moderna - osim toga, UDK je, naravno, inferioran Unityju u pogledu broja implementiranih značajki - uostalom, UnrealEngine se može nazvati jednim od vodećih brodova u ovom području, a teško ga je nadmašiti . Ali Unity ima odgođeno osvjetljenje, ugrađeni uređivač sjenčanja, standardni skup efekata naknadne obrade (potpuni popis, možete napisati vlastiti, naravno), sada moderan SSAO - ukratko, cijeli set alata za stvaranje postoji AAA projekt. Usput, radi svjetlosne karte više nego adekvatno i brzo;
  • Physics engine - ima sve što jedan physics engine treba moći. Napravite vlastiti Half-Life 2 s znate već čime? Lako!
  • Izvedba i skalabilnost - bez oklijevanja dajemo "izvrsno". Budući da motor sam obavlja većinu rutinskih poslova u vezi s tim i obavlja odličan posao;
  • Pokretanje bilo koje aplikacije u web dodatku - o tome smo već pričali, ali nije grijeh spomenuti to opet.
  • Niska cijena za licencu - samo 1500 USD. I besplatna verzija, bez nekih dodataka;
Ovako nekako. Sada raspravimo zašto je to loše:
  • Zatvoreno je. Oni. Neće vam dati izvorne kodove čak ni uz licencu. Kod UDK-a, ako sam sve dobro shvatio, slika je ista - izvorni kodovi se licenciraju posebno, za više novca. Međutim, u Unityju možete koristiti skripte za potpuno istu stvar koju bismo mi učinili s izvornim kodom - možete modificirati gotovo sve... Ali svejedno, izvorni kod je bolji u svakom pogledu, tako da je ovo minus - kod najmanje za one koji bi htjeli dodati fiziku treće strane ili isti SpeedTree;
  • DOBIT.
Da budem iskren, još ne vidim stvarne nedostatke. Motor je stabilan, produktivan, jednostavan za korištenje - što vam više treba? Definitivno postoje neki nedostaci. Stoga sam često nailazio na izvještaje o čudno funkcionirajućem aditivnom miješanju animacija. Neki se ljudi žale na nedostatak dodjeljivanja više materijala terenima - ne znam, nisam to probao. Ali je li to stvarno značajno u svjetlu gore navedenih prednosti? Za mene ne.

Činjenica je da je većini malih timova glavni problem uvijek bio motor (i nedostatak ideja i dobrog umijeća, naravno, ali ne govorimo o tome sada). Pisanje od nule je teško za jedinog programera u timu, s obzirom na to da motor nije samo 3D renderer, već je i hrpa cjevovodnih alata - importeri, editori, preglednici... Nemoguć zadatak, osim ako se ne pridržavate minimalizma . Minimalizam nije loš, ima toliko prekrasnih igrica napravljenih u omiljenom 8-bitnom stilu da ih ne možemo ni nabrojati... Ali većina su jednodnevni projekti (Minecraft se ne broji, da. I po usput, također nije napisano od nule, već u LWJGL). Kada je riječ o igri koja će se igrati danima, potreban vam je potpuni motor, a onda krećemo u potragu za besplatnim rješenjima. Ogre, Irrlicht i još nekoliko njima sličnih su dobri, naravno, ali a) oni su moralno stari i b) njihovo proučavanje i dovođenje u radno stanje zahtijeva puno vremena i veliku teoretsku bazu iza leđa. Naravno, pomoću njih možete napisati cool projekt koji se može prodati (Torchlight on Ogre je primjer za to), ali još uvijek trebate više od jednog programera. Postoje i setovi a la "igre bez znanja programskih jezika", poput GameMakera, ali to su igračke, da budemo iskreni.

U slučaju Unityja, imamo gotov cjevovod, gotov renderer, gotove fizičke, audio i mrežne biblioteke, možemo kodirati na poznatom jeziku - zapravo, sa strane kodiranja samo trebamo znati osnove, recimo, Javascript, i provedite tjedan dana udubljujući se u službenu pomoć za zakivanje FPS-a. Minus jedna prepreka na putu do oslobađanja. Ako netko ne vjeruje u kvalitetu koda koji je napisao netko drugi i koji se ne može ispraviti, neka provjeri, uopće nije tako loš.

Kako izgleda

Na slike se može kliknuti.

Zapravo IDE:

Upravo u IDE-u možete kliknuti gumb "Play" i testirati trenutnu scenu u stvarnom vremenu:

Ugrađeni inspektor klase istražuje, oprostite na tautologiji, klase za varijable i omogućuje vam da mijenjate varijable u skriptama u hodu, bez gledanja u kôd. I ne samo ints, već i materijali, teksture, modeli... To štedi puno vremena. Dokumentacija za API u dobroj formi ukazuje da se ne piše, na primjer, put do teksture izravno u skriptu, već jednostavno napravite prazno svojstvo odgovarajućeg tipa kao prazno svojstvo klase i odaberite u inspektoru koji vam je potreban:

Inspektori montažnih objekata (desno) i entiteta (lijevo). Grubo rečeno, s desne strane su prazni objekti, s lijeve su oni objekti koji postoje u trenutnoj sceni. Zgodno je da tijekom pokretanja razine u uređivaču (gumb "reproduciraj") možete pauzirati pokretanje i vidjeti trenutno stanje objekata - puno rjeđe morate čitati zapisnike ili prikazati liniju za otklanjanje pogrešaka na HUD-u da biste vidjeli ponašanje jedne male varijable:

I na kraju ću reći...

Da rezimiramo svo verbalno smeće do ove točke, ako radite AAA projekt, najvjerojatnije ćete napisati vlastiti motor. Ili već imate motor iz prethodnog projekta. Ili ćete kupiti nešto na razini notornog UnrealEngine 3 sa izvorima. Ali ovo je ako radite AAA projekt s desetak ljudi samo na kodiranju.

Ako imate samo deset ljudi u studiju (a kamoli dvoje), pisanje vlastitog motora obično je preskupo. Iskušenje da skočite na val potpunih 3D igara temeljenih na pregledniku (Java omotač za Ogre se ne računa. Stvarno) vrijedi isprobati Unity u praksi. Brzina i složenost razvoja obične casual igre temeljene na pregledniku na njemu nije veća nego na Flashu, ali je grafička superiornost očita. I nitko još nije otkazao wow efekt.

Na kraju, u Unityju se mogu raditi web stranice (sporno, ali moguće), prezentacije, vizualizirati znanstvene projekte... Sve bi se to moglo napisati ručno, u čistom OpenGL-u, ali nakon usporedbe vremena i kvalitete implementacije, ipak sam sklon koristiti Unity. Bljesak zasad Također ga ne uzimamo u obzir - pričekat ćemo izdanje hardverskog 3D ubrzanja.

Takve će riječi izazvati oluju emocija među pristašama drugih motora. “Da, sve ovo postoji u %enginename%”, “%gamename% i %gamenaname% napravljeni su na %enginename%, i sve to bez podlog sveproždirućeg povlačenja i ispuštanja…

Savjetujem vam da samo Unityju date priliku - osvaja svojom praktičnošću, mogućnostima, fleksibilnošću i brzinom razvoja (barem je mene osvojio). I osim toga... Hej, ovo je puna nit u pregledniku! :)

Unity je motor za igre koji vam omogućuje stvaranje igara za većinu popularnih platformi. Pomoću ovog pokretača razvijaju se igre koje se izvode na osobnim računalima (pokreću Windows, MacOS, Linux), na pametnim telefonima i tabletima (iOS, Android, Windows Phone) te na igraćim konzolama (PS, Xbox, Wii).

Ovaj game engine iznimno je popularan među indie programerima, startupima i ostalim školarcima. Nekoliko je razloga za njegovu nevjerojatnu popularnost:

Prvo Ono što je jasno jest da u jednom okruženju možete stvoriti aplikaciju koja će raditi na gotovo svim zamislivim uređajima sa zaslonom u boji (pa čak i Chromebookovima - iz preglednika). I, naravno, takve kiflice vrlo su učinkovite u privlačenju obožavatelja među mladim talentima koji traže čarobnu pilulu koja će im omogućiti sve odjednom. Naravno, ovo je sasvim dovoljan razlog da volite Unity. Ali u vezi s ovom značajkom, kao i obično, postoji nekoliko nijansi:

  • Nakon što postavite i premjestite modele, morat ćete se brinuti o korisničkom sučelju: sučelje za unos na većini uređaja koji mogu pokrenuti vašu igru ​​vrlo je različito. Naravno, ovo nije globalni problem, a njegovo rješavanje će vam oduzeti mnogo manje vremena nego razvijanje aplikacije za svaki uređaj posebno. Isto tako, prilagođavanje grafičkog sučelja za različite dijagonale i različite formate prikaza neće trajati nekoliko čovjek-godina.
  • Brzina rada. Svaki obrazovani programer razumije da univerzalnost i više platformi često povećavaju opterećenje računalnih sustava računala. Mnoge su igre razvijene na Unityju, uključujući i one koje se izvode na konzolama, ali su u pogledu grafike gotovo uvijek bile inferiornije od vrhunskih igara razdoblja u kojem su izdane. Naravno, na ovom motoru možete kreirati igrice sa fantastičnom grafikom, ali, čudno, za to su vam potrebne vrlo čiste ruke.
  • Svestranost sa sobom donosi složenost prilagodbe. Nijedan filmski hit za PC ili konzolu nije nastao u Unityju, što na neki način nagovještava granice njegovih mogućnosti.

Drugo, politika cijena i politika distribucije motora vrlo su ugodni i humani: u freemium verziji možete razvijati komercijalne igre za sve platforme odjednom. A Pro verzija košta samo 1500 dolara i pruža dodatne mogućnosti, prvenstveno vezane uz značajke i grafiku.

Treći, intuitivno uređivačko sučelje i korištenje programskih jezika koji se lako uče: C# i JavaScript - bez potrebe da se bavite C-om i drugim jezicima za čije učenje je potrebna dvadeset i jedna godina.

Četvrta, gotovo virusno širenje ovog motora u zajednici razvijača igara. Ovdje veliku ulogu igra činjenica da je proizvod vrlo kvalitetan i jedinstven. Također igra ulogu što svaki mladi programer smatra svojom dužnošću objaviti prototip svoje "revolucionarne" igre na svom omiljenom forumu, mjestu za dijeljenje datoteka i torrent trackeru, dodajući vlastitu kap u moru Unity igara.

Ali u tome i jest njegova glavna čar: jednostavnost razvoja aplikacija za mobilne uređaje, s punom municijom. Motor Unity koristi se za razvoj velikog broja igara za mobilne platforme, uključujući bestselere poput Temple Run ili Dead Trigger.

Općenito, nakon proučavanja Unityja, njegove povijesti i slučajeva korištenja, imam izuzetno pozitivan dojam o ovom softverskom proizvodu.

putem Stanislava Gerasimenko, programera igara

Prilično popularan. Ako su prije računalne igrice bile samo zabava za uski krug ljubitelja, sada ovo područje dolazi na sasvim novu razinu. Sve više i više ljudi postaje zainteresirano za računalne igre, a stalno se objavljuju projekti koji su prikladni za određene uzraste i ciljne skupine (primjerice, obiteljske igre).

Naravno, netko stoji iza toga - u većini slučajeva radi se o cijeloj tvrtki koja se sastoji od nekoliko podružnica, od kojih se svaka bavi svojom djelatnošću. Zajedno stvaraju najistaknutije i najatraktivnije računalne igre našeg vremena. Međutim, vrijedi napomenuti da se nedavno pojavio veliki broj indie igara - projekata neovisnih programera. To može biti jedna osoba, ili mala grupa istomišljenika, ali najvažnije je da nemaju ogroman budžet, stotine radnika s visokom stručnom spremom. A sada svatko može napisati vlastitu igru, jer postoje i posebna radna okruženja i gotove jezgre, na primjer Unity game engine. U ovom ćete članku saznati što je to i zašto je potrebno.

Srž igre

Vrijedno je početi ne s onim što je konkretno motor igre Unity, već s onim što je motor u načelu. Zamislite da pišete računalnu igricu – trebate napisati apsolutno sav kod od nule, apsolutno sve najmanje pokrete likova, pokrete protivnika, interakcije s okolinom i tisuće drugih detalja. Nevjerojatno teško, zar ne? Motor vam može znatno olakšati proces stvaranja.

Ovo je srž projekta koja sadrži sve osnovne skripte. To jest, umjesto da stvarate igru ​​od nule, možete uzeti gotovu jezgru i na njoj graditi onoliko slojeva svog sadržaja koliko želite. Nema potrebe brinuti se da je nezakonito - ne kradete kernel, samo ga koristite kao što to rade milijuni drugih. Korištenje pokretača igara koje su izradili drugi vrlo je uobičajena tehnika, samo najveće tvrtke imaju sredstva i mogućnosti za stvaranje vlastitog pokretača igara u velikoj mjeri. Ako nemate proračun za ovo, bolje je koristiti Unity game engine. Ali zašto on?

Zašto Jedinstvo?

Postoji ogroman broj različitih motora koji su dostupni na internetu, djelomično besplatni ili potpuno plaćeni. Omogućit će vam izradu projekata u 2D i 3D, dati vam pristup raznim značajkama i tako dalje. Ali zašto biste među njima trebali odabrati Unity game engine, a ne bilo koji drugi?

Zapravo, nitko vas ne prisiljava na takav izbor - na primjer, postoji vrlo dobar UDK kernel, koji mnogi ljudi također koriste za stvaranje 3D igara. Ako vas ne zanima 3D slika, možete jednostavno izraditi 2D projekt s odgovarajućim motorom. Ali Unity je najpopularniji i najkvalitetniji 3D motor koji je danas dostupan, pa biste svakako trebali razmisliti o njegovoj upotrebi. Unity 3D igraći motor ima niz ozbiljnih prednosti u odnosu na druge, o čemu će biti riječi u nastavku.

Prednosti jedinstva

Unity je novi motor za stvaranje 3D igara. Mnogi ljudi se pitaju zašto bi ga izabrali. Kao što je ranije spomenuto, nitko vas ne tjera da ga odaberete. Međutim, sada ćete saznati zašto se toliko izdvaja od ostalih.

Prvo, ovo je razvojno okruženje - imate izuzetno praktičan i funkcionalan IDE, koji istovremeno sadrži uređivač scene, uređivač objekata, pa čak i mali uređivač skripti. Što se tiče potonjeg, ovaj plus je posebno uočljiv u usporedbi s ostalima, jer većina motora već ima svoj vlastiti skriptni jezik, koji morate koristiti u svakom slučaju. U slučaju Unityja, možete koristiti ili lokalni jezik ili bilo koji drugi.

Zasebno je vrijedno spomenuti razinu grafike koja se može stvoriti u igri - prilično je visoka u usporedbi s većinom drugih motora. I, naravno, vrijedi istaknuti najvišu razinu fizike - možete stvoriti projekt ne gori od bilo kojeg modernog remek-djela, naravno, uz odgovarajuću vještinu.

Zaključno, vrijedi spomenuti trošak - s tim se suočavaju mnogi početnici. U ovom slučaju nije previsoka - samo tisuću i pol dolara. Ako želite, možete koristiti besplatnu verziju - ona je potpuno funkcionalna, ali nema određeni broj korisnih značajki. Također, gotovi projekt će stalno prikazivati ​​logo Unityja tijekom igre. Sada razumijete zašto je Unity 3D popularan motor za igre. Ali zar to zapravo nema nikakvih nedostataka? Sada razgovarajmo o ovome.

Nedostaci jedinstva

Mnogi su pokušali pronaći nedostatke u ovom motoru, ali s poteškoćama, pritužbe su se nakupile samo oko jedne stvari - zatvorenog izvornog koda. U određenom smislu, ovo su stvarno nedostaci - možete koristiti samo kernel koji vam programer ponudi, ne možete napraviti nikakve promjene na njemu, čak i ako znate kako to učiniti. Čak i uzimajući u obzir činjenicu da ste platili tisuću i pol dolara, licenca vam još uvijek ne daje pristup samoj jezgri. Ali ako pogledate s druge strane, gotovo nijedan moderni motor ne daje vam pristup kodu kernela, tako da se ovaj minus može smatrati ozbiljnim nedostatkom s natezanjem. I ne možemo pronaći nikakve druge nedostatke u ovom divnom motoru.

Korištenje Unityja

Upotreba ovog motora već je spomenuta ranije - IDE za njega je jednostavno izvrstan. Rijetko se može naći ovako funkcionalno razvojno okruženje koje nije preopterećeno nepotrebnim detaljima, te nije potpuno ogoljeno i nezgodno. U Unityju je sve urađeno savršeno - možete odmah pristupiti uređivaču scene igre, objektima igre, pa čak i skriptama primijenjenim na njih. Možete vidjeti isječak onoga na čemu ste radili u stvarnom vremenu izravno u IDE-u. Unity u tome jednostavno nema konkurencije – ovaj motor je odličan.

Rusko jedinstvo

Ako ne znate engleski, ne brinite, još uvijek možete koristiti Unity. Motor igre na ruskom postoji i aktivno se podržava, tako da možete jednostavno stvarati remek-djela igre u prevedenoj verziji. Štoviše, postoji ogromna internetska zajednica koja govori ruski jezik posvećena ovom motoru - tamo možete saznati najnovije vijesti, pročitati mišljenja iskusnih korisnika i postaviti pitanja koja vas zanimaju. Unity3D na ruskom je sasvim moguć.

Dodavanje skripti

Gore je već rečeno da nećete moći promijeniti kod kernela. Ali u isto vrijeme možete dodati vlastite skripte, kao i preuzeti one koje su izradili drugi korisnici.