I ja konja za trku imam: UNITY 5 vs UNREAL ENGINE 4 vs C++


Jedna od najčešćih nedoumica budućih programera u svijetu izrade videoigara jest:

Koji engine bi bio najbolji za moju videoigru?

Iako se na prvu čini kako su razlike minimalne, oni malo iskusniji već znaju na koja pitanja i potencijalnu problematiku trebaju obraćati pažnju.

U Unrealu su rađene igre poput: Deus Ex, Bioshock, Assassins Creed Chrinicles, Abzu i nova indie igra Hello Neighbour.

S druge strane, u Unityju su nastale igre poput: Deux Ex:The Fall, Assasins Creed: Identity, Heartstone: Heroes of Warcraft i Kerbal Space Program.

U svakom slučaju, oba engina su nam pružila nebrojene sate zabave, stoga smo se odlučili malo raspisati o njima.

Koja je onda razlika između Unitya i Unreal enginea? I koju ulogu tu ima C++ i C#? 

Želiš li napraviti 2D platformer ili 3D shooter?
Da li je igra namijenjena za konzole, mobitele ili web browsere? 

Iako oba enginea mogu obaviti posao, odgovori na ova i slična pitanja pomoći će ti da lakše odabereš engine koji će bolje odgovarati tvojim potrebama.

Unity

Unity igre programiraju se u Javascriptu ili C#, te iako je moguće raditi 3D igre, pretežito se koristi za 2D igre i mobilne aplikacije.

Zašto?

Iako je moćan i kao 3D engine, grafički nije na istom levelu kao Unreal engine. Što i nije toliki problem ukoliko ne planiraš raditi na grafici koja će lijepo izgledati i na novijem hardveru (next-gen).

Unity 3D pokriva i nešto širi spektar platforma; Windows PC, Mac OS X, Linux, Web Player, WebGL, VR(uključujući Hololens), SteamOS, iOS, Android, Windows Phone 8, Tizen, Android TV i Samsung SMART TV, kao i Xbox One, Xbox 360, PS4, Playstation Vita, i Wii U.

Uz široki spektar platforma Unityima ima i nešto veću ponudu tutoriala i vodiča, aktivnu zajednicu, i veliki asset store za dodatne sadržaje poput animacija, 3D modela likova i objekata, tekstura, glazbe i slično.

No, Unity Technologies je malo kompleksniji po pitanju poslovanja te nudi čak četiri različita modela plaćanja i korištenja: Personal (besplatan), Plus (35 dolara mjesečno po korisniku), Pro (125 dolara mjesečno po korisniku) i Enterprise namijenjen nešto većim ili zahtjevnijim game develop studijima. Svaki od navedenih modela Unityja s rastom cijene pruža i dodatne mogućnosti korištenja enginea.

Unreal

Unreal engine koristi isključivo C++ što, ukoliko nemaš iskustva u programiranju, može djelovati pomalo komplicirano za svladavanje.
S druge strane, Unreal je lakši za svladati ukoliko si početnik jer nudi i Blueprint sustav vizualnog kodiranja uz koji tehnički nećeš morati naučiti kodiranje.

Naravno, ovaj sustav ima ponekih limitacija no idealan je za početnike koji žele čim prije napraviti svoj prvi projekt i spremni su se prilagoditi ponuđenim funkcionalnostima.

Unreal nudi Profiler koji omogućava da pratiš performance uz igru te optimiziraš dijelove koji se predugo učitavaju, animacije koje usporavaju igru i slično. Ovaj moćan engine omogućava ti da napraviš igre grafički usporedive s najvećim AAA naslovima. Iako takve grafike nisu najbitnije, uvijek je dobro imati mogućnost izabrati između 2D i 3D s opcijom da grafiku potjeraš i ˝malo dalje˝.

Po iskustvu korisnika Unity i Unreal engina, indie programerima je ipak, čini se, draža opcija naplate korištenja usluga kakvu nudi Epic Games za Unreal Engine. 


Naime, UE4 možete instalirati besplatno te se služiti svim postojećim funkcijama unutar softvera (osim objekata iz asset storea koji se dodatno naplaćuju), a nakon što projekt izađe na tržište i ostvari zaradu, Epic Games si uzima 5% dobiti kao naknadu za korištenje njihova engina.

Još jedna odlična stvar su nepovratna sredstva koje Epic daje za inovativne projekte rađene u Unreal engineu. Fond sada iznosi 5 milijuna dolara a sredstva koje odobravaju variraju između 5 i 50 tisuća dolara.

Neke od projekata koje je Epic financirao možete pogledati ovdje: Epic Grants

C++

Uz sve spomenute prednosti, zašto bi onda bilo tko radio u C++u?
Velika većina game engine-a (ne samo Unity i Unreal) su građeni u C++

Ako želiš maksimalno iskoristiti ono što ovi programi nude, znanje C++ je neophodno.

Prednost C++ je što možeš sam izgraditi svoj game engine (ili prilagoditi postojeći) tako da dodaš funkcionalnosti koje nedostaju ili dapače izrežeš funkcionalnosti koje nećeš koristiti a koje bi zauzele procesorsku ili grafičku snagu računala.

Za razliku od vizualnih game engine-a koji pokušavaju čim lakše i preglednije prikazati sve funkcionalnosti neke igre, C++ od tebe zahtjeva da samostalno i na vrlo abstraktni način organiziraš i napišeš kod jedne cijele igre. U sebi objedinjuje najveću mogući efikasnost računala kao i najveći raspon funkcionalnosti.

I nakon sveg ovog, što izabrati?

Ako želiš raditi 2d ili mobilne video igre te imati pristup najvećem tržištu grafika, zvukova i modela – Unity

Ako želiš raditi kompleksnije 3d igre gdje grafika igra ključnu ulogu – Unreal

Ako ne želiš nikakve granice i optimizacija računala je ključ – C++

Ako želiš savladati neku od ovih vještina baci oko na naše tečajeve:  Machina tečajevi