Unity developer

Unity developer/-ka je specijalizovan/-a za kreiranje video-igara koristeći game engine Unity. Poseduje podrobno razumevanje principa razvoja igara, programskih jezika i tehnika dizajna. Unity developer/-ka je odgovoran/-a za oživljavanje vizije gejm dizajnera implementacijom mehanika igre, korisničkih interfejsa i interaktivnih elemenata. U svom svakodnevnom radu, Unity developer/-ka koristi C# ili UnityScript (varijantu JavaScript-a) za pisanje koda koji kontroliše ponašanje objekata i likova u igri. Pošto je Unity multiplatformski engine, osoba na ovoj pozicji mora poznavati sve sisteme na kojima bi igra radila (PC, konzole i mobilne telefone).


Blisko sarađuje sa gejm dizajnerima kako bi integrisao/-la art, animacije i zvučne efekte u igru. Takođe, optimizuje performanse i rešava sve tehničke probleme koji se mogu pojaviti tokom razvoja igre. Može da kreira prilagođene skripte i plugin-ove koji poboljšavaju funkcionalnost Unity-a ili da sarađuje sa drugim developerima na integraciji third-party alata i biblioteka. Sve u svemu, Unity developer/-ka poseduje odlične tehničke veštine, kreativnost i sposobnost za rešavanje problema.

Alati

Unity

Visual Studio

MonoDevelop

Blender

Photoshop

Substance Painter

Maya

3ds Max

Adobe Illustrator

Saradnja sa drugim timovima

Unity developer/-ka blisko sarađuje sa gejm dizajnerima kako bi razumeo/-la njihovu viziju, odredio/-la tehničke zahteve i implementirao/-la mehanike igre i sisteme u skladu sa tim. Pruža feedback o izvodljivosti određenih dizajnerskih ideja i sarađuje na iteracijama i usavršavanju mehanika igre kako bi se postiglo željeno igračko iskustvo. Takođe, sarađuje sa artistima i animatorima. Oni udruženo rade na integraciji arta, animacija i vizuelnih efekata u game engine. Unity developer/-ka obezbeđuje pravilno uvođenje, optimizovanje i prikazivanje asset-a u okruženju igre. Takođe može blisko sarađivati sa dizajnerima zvuka i kompozitorima kako bi integrisao/-la auditivne elemente i stvorio/-la koherentno audio-vizuelno iskustvo za igrače.


Pored toga, Unity developer/-ka često sarađuje sa drugim programerima ili inženjerima u razvojnom timu. Oni mogu da rade zajedno na razvoju i integraciji custom alata, skripti ili plugin-ova, kako bi poboljšali proces razvoja igre ili proširili funkcionalnost Unity-a. Saradnja sa QA testerima takođe je ključna, jer Unity developer/-ka treba da popravi sve bagove ili probleme koji se pojave tokom testiranja. Njihovi zajednički napori doprinose stvaranju imerzivnog i prijatnog igračkog iskustva.

Veštine

U zavisnosti od senioriteta, od Unity developera se očekuje da može da savlada, uradi i isporuči sledeće stvari:

Hard skills

  • Programiranje:
    • poznaje jezike kao što su C# ili UnityScript da bi napisao/-la kod koji kontroliše ponašanje objekata u igri, implementira mehanike igre i druge funkcije.
  • Unity game engine:
    • zna kako da radi sa Unity-em, uvodi i optimizuje asset-e, kreira objekte u igri, rukuje animacijama i implementira elemente korisničkog interfejsa.
  • Troubleshooting:
    • otklanja bagove u kodu, optimizuje performanse i rešava probleme kompatibilnosti.

Soft skills

  • Saradnja:
    • ima razvijene komunikacione veštine, razume različite perspektive i radi sa ostatkom tima na postizanju zajedničkog cilja i stvaranju jedinstvenog igračkog iskustva.
  • Prilagodljivost:
    • prihvata promene, revizije i feedback tokom razvojnog procesa igre, i prilagođava se novim tehnologijama, alatima i metodologijama.
  • Rešavanje problema i kreativnost:
    • razmišlja kreativno i pristupa problemima iz različitih uglova kako bi prevazišao/-la izazove i pronašao/-la inovativna rešenja.

Senioritet

U zavisnosti od senioriteta, od Unity developera se očekuje da može da savlada, uradi i isporuči sledeće stvari:

Junior

  • Implementira osnovne mehanike igre, kao što su kretanje karaktera, detekcija sudara, osnovno ponašanje neprijatelja i drugi osnovni elementi igre.
  • Identifikuje i popravlja uobičajene bagove, rešava runtime greške i osnovne tehničke probleme koji se mogu pojaviti tokom razvoja. 
  • Prati dizajnerske i tehničke smernice, implementira specifikacije u vezi sa UI/UX dizajnom, integracijom asset-a, optimizacijom performansi i drugim zahtevima projekta.
  • Otvoren/-a za feedback, preuzima inicijativu za proširivanje svojih znanja i veština, i efikasno doprinosi kao deo razvojnog tima.

Medior

  • Samostalno dizajnira složene mehanike, poput naprednog ponašanja veštačke inteligencije, simulacija zasnovanih na fizici i kompleksnije interakcije igrača u svetu igre.
  • Optimizuje performanse igre, analizira i poboljšava efikasnost koda, implementira level-of-detail sisteme i upravlja korišćenjem resursa.
  • Mentoriše juniore, daje smernice i pregleda njihov kod kako bi osigurao/-la poštovanje najboljih praksi i standarda kvaliteta.
  • Nezavisno identifikuje i rešava probleme koji se javljaju tokom razvoja igre, bilo da se odnose na performanse, kompatibilnost ili funkcionalnost.

Senior

  • Upravlja tehničkim aspektom razvoja igre, definiše arhitekturu i framework projekta, i donosi odluke u vezi sa implementacijom složenih sistema.
  • Mentoriše juniore i mediore, pruža vredne uvide, pregleda kod, nudi konstruktivan feedback i pomaže drugim programerima da unaprede svoje veštine i znanje.
  • Identifikuje bottleneck-ove, optimizuje korišćenje resursa i obezbeđuje da igra nesmetano radi na različitim platformama i uređajima.
  • Aktivno istražuje nove alate, framework-ove i tehnike koje mogu poboljšati proces razvoja ili uvesti inovativne feature-e.
UNITY DEVELOPER // PROGRAMMING //
UNITY DEVELOPER // PROGRAMMING //

Obrazovanje

Programeri igara obično kombinuju formalno obrazovanje i samoobrazovanje kako bi savladali svoju veštinu. Mnogi započinju sticanjem diplomskog stepena iz računarskih nauka, softverskog inženjeringa ili srodnog polja. Ovi programi pružaju čvrste osnove u programskim jezicima, algoritmima i strukturama podataka.

Međutim, dinamična priroda gejming industrije često zahteva dodatno, specijalizovano znanje. Programeri igara često se kontinuirano usavršavaju, prateći najnovije alate, tehnologije i trendove industrije. Onlajn kursevi, radionice i učešće u zajednicama razvoja igara doprinose njihovom ekspertizom. Praktično iskustvo kroz stažiranje ili lične projekte je ključno, omogućavajući budućim programerima da primene teorijsko znanje na stvarne izazove razvoja igara.

Resursi

Knjige

  • Unity in Action: Multiplatform Game Development in C#” – Joe Hocking
  • “Mastering Unity 2D Game Development” – Simon Jackson
  • “Learning C# by Developing Games with Unity” – Harrison Ferrone
  • Unity Game Development Cookbook” – Paris Buttfield-Addison, Jon Manning, Tim Nugent
  • Unity Game Development Essentials” – Will Goldstone

Pojedinci

  • Sebastian Lague (@SebastianLague)
  • Brackeys (@Brackeys)
  • Mike Geig (@mikegeig)
  • Jason Weimann (@JasonWeimann)
  • Ryan Hipple (@roboryantron)

Kako izgleda intervju za ovu poziciju?

Novosti

Debatni klub Matematičkog fakulteta Univerziteta u Beogradu organizuje 11. aprila sa početkom u 18 časova u prostorijama Matematičkog fakulteta (Svetog Nikole 39) javnu debatu i panel diskusiju “Ovaj dom bi uveo video igre u obaveznu lektiru”
Razvoj video igara možemo sagledati kroz tehnološki i kreativni aspekt. Pošto je tehnološki aspekt razvoja igara u velikoj meri povezan sa kreativnim, slobodno možemo reći da je gejming programiranje svet za sebe. Gejming industrija pruža mogućnost za razvoj eksperata u najrazličitijim oblastima tehnologije, nudeći mnoštvo pravaca kada su u pitanju karijerni putevi.
Razgovarali smo sa preko 20 seniora u domaćem gejmingu. Kad pogledaš ovih šest epizoda trebalo bi da ti bude mnogo jasnije čime u gejmingu možeš i želiš da se baviš
UNITY DEVELOPER // PROGRAMMING //
UNITY DEVELOPER // PROGRAMMING //