Game Dev Internship - Ubisoft 2020

Ubisoft
Katarina Živanović
13.07.2020
DA LI SI GEJMER SA ZNANJEM C++?

Ako je odgovor DA, nastavi da čitaš a mi ćemo prestati da koristimo caps lock jer smo sada privukli tvoju pažnju! Ubisoft Belgrade organizuje svoj drugi internship program! Prošli smo startovali u decembru 2018. i trajao je tri meseca. Primili smo 10 studenata, a njih 8 je i dalje kod nas i rade kao programeri. I mi i oni smo naučili dosta kroz tu praksu. Zato smo i odlučili da je održimo ponovo. Ako te interesuje kako je raditi pvp mod na third person tactical shooter-u može ti biti zanimljivo da vidiš to što mi ovde razvijamo. Pokazalo se da je najbolji način za to praktičan rad. Za početak ćeš se sa Ubisoftovim tool-ovima i procesima upoznati preko prezentacija koje će mentori držati. Već od drugog meseca počećeš sa radom na realnim taskovima. Od mentora ćeš dobijati povratnu informaciju na sve što radiš. Kada prođu ta tri meseca dobijaš feedback na celokupnu praksu, a ako je sve dobro prošlo i ponudu za posao :) 

Kako izgleda proces selekcije

Ako se prijaviš za praksu proći ćeš kroz proces selekcije koji se sastoji iz tri koraka:

1. Prvo ćeš raditi C++ test. Test se radi preko Codingame-a i nije komplikovan, ima 13 pitanja koja će te podsetiti na pitalice sa fakulteta. Na test će ti otići oko sat vremena
2. Ako je rezultat testa dobar zvaće te neka od naših regruterki. 15ak minuta pričaćete o tome šta želiš da radiš nakon prakse. Deo razgovora biće i na engleskom, ali nemoj da te to plaši, teme će biti opšte
3. Na kraju te čeka intervju sa jednim od naših Lead Programmer-a i jednom regruterkom. Nekih sat, sat i po pričaćete o testu, tvom iskustvu na faksu i dosadašnjim projektima kako bismo videli koliko se uklapaš u naše planove za praktikante. Ovo ti možda deluje najstresnije, ali su nam prethodni praktikanti pričali da im je ovo bio najopušteniji korak

Timovi u Ubisoftu

Kom timu ćeš se pridružiti zavisi od tvojih želja, tehničkog znanja kao i potreba samih projekata. Trudimo se da sve ovo uzmemo u obzir pre donošenja odluke! Naši timovi broje između 5 i 10 članova i podeljeni su prema sledećim oblastima:

Kao praktikant u rendering timu imaćeš priliku da radiš na rendering pipeline-u naših AAA igara, zasnovanom na DirectX i Vulkan API-ju. Bićeš deo jednog od naših rendering timova koji rade na renderovanju svetova, post efekata, kompoziciji slike, upravljanju resursima i optimizaciji procesa.

Kao praktikant u engine timu razvijaćeš nove i prilagođavati postojeće low-level sisteme naših AAA game engine-a, koji su vodeći u industriji. Naš svakodnevni rad uključuje razvoj game engine-a za rastući broj gaming platformi: PlayStation 5, Xbox Series X, PlayStation 4, Xbox One, Nintendo Switch, Stadia and PC.

Kao praktikant u online timu bavićeš se složenim i raznovrsnim game servisima. Razvoj video igre nije završen kada je ona objavljenja i upravo online sistemi omogućavaju neophodnu fleksibilnost u tom periodu. Mnogim sistemima se upravlja ili se prave na serverskoj strani umesto da budu implementirani u sam engine.
 
Kao praktikant u gameplay timu imaćeš priliku da radiš na različitim sistemima koji direktno utiču na iskustvo igrača. Neke od oblasti su mehanika igre, kretanje igrača i kamere, sistemi progresije, AI, UI itd.
 
Iskustva prethodnih praktikanata
 
1. Kako si se pripremao za praksu? – Predrag Palibrk 

Pre prakse sam baš hteo da se bavim game developmentom u Unity-u ili Unreal enginu, pa sam zbog toga i istraživao o tome, radio tutorijale i igrao se s tim. Između ostalog, spremao sam se i preko sajta CodinGame, što je po meni odličan način da se obnovi C++, ali i neki algoritmi. Pritom, sve je organizovano kao da praviš igricu, tako da je i vrlo zabavno. Takođe, pošto sam C++ odavno učio, bilo mi je korisno da pročitam neke kratke knjige namenjene kao podsetnik baš za ovakve situacije - spremanje za praksu ili novi posao. 
 
2. Šta ti se najviše svidelo na praksi? – Nikola Lazarević 

Prilika da radim na zadacima koji izgledaju baš kao oni koje inače rade programeri u Ubisoftu, ali zapravo moj rad u početku ne ulazi u finalni izgled igre. Taj princip kreira okruženje u kojem možeš da učiš o internim sistemima i alatima, programiranju i o industriji generalno, na pravi način i bez pritiska. Naravno to ucenje je propraćeno predavanjima i uvek dostupnom pomoću mentora. Praksa u Ubisoftu je bila moj prvi posao, i sve navedeno je doprinelo da se neizbezni stres "prvog posla u životu" svede na minimum. Kompleksnost zadataka se postepeno povećavala tokom prakse i kao plus, do kraja prakse sam kao intern imao priliku da zapravo doprinesem feature-u koji je uključen u finalni izgled igre.
 
3. Kakvo je tvoje iskustvo u radu sa mentorom? – Miloš Ivanović 

Moja komunikacija i saradnja sa mentorom je uvek bila odlična. Od samog početka prakse, mogao sam da računam na njegovu potpunu pomoć i podršku. Njegovo odlično tehničko znanje doprinelo je tome da ja vrlo brzo "uđem u štos" i budem potpuno spreman za rad, dok je, zbog svog iskustva, uvek imao sjajne savete o navikavanju na moj prvi posao. Nakon što se završila praksa, nastavili smo da radimo u istom timu, i mogu da kažem da se njegova uloga mentora nije završila sa praksom - ni godinu dana kasnije, nije neuobičajeno da ću zatražiti pomoć od njega, niti da će on biti spreman da je pruži - kako meni, tako i drugim članovima našeg tima.
 
4. Šta si sve naučio tokom prakse? – Miloš Denić 

Pre prakse u Ubisoftu sam uglavnom radio sam ili u manjem timu od 2,3 osobe. Zato sam pre svega naučio kako raditi u mnogo većem timu i kako funkcioniše sav taj proces od dobijanja zadatka od strane menadžera do njegovog završetka. Najbitnija veština koju sam naučio a koju je moguće primeniti na skoro sve u životu je kakav pristup treba imati pri rešavanju zadatka. A to je postavljanje četiri osnovna pitanja: "Šta? Zašto? Kako? Kada?". Ako imate odgovore na ta četiri pitanja verovatno ste rešili problem u roku i kako treba. U Ubisoftu se koristi i dosta internih alata koje je potrebno naučiti za svakodnevni rad. Naučio sam dosta i o programiranju radeći sa iskusnim programerima kao i o samom razvoju AAA video igara što je i očekivano.
 
5. Kako si uklopio praksu sa predavanjima/ispitima? – Strahinja Rodić 

Kada sam se odlučio za praksu u Ubisoftu, znao sam da ću dosta vremena provesti u kancelariji, ali sam isto tako znao da će mi biti višestruko korisnije steći znanje, iskustvo i upoznati ljude sličnih interesovanja nego da samo idem na fakultet. Imao sam sreću da većina predavanja nije obavezna u završnoj godini studija na RAF-u i sreću da imam sjajne drugare sa faksa koji su mi dostavljali beleške i davali mi korisne informacije. :) Pored toga, trudio sam se maksimalno da učim na vreme (iako sam ceo život kampanjac) i da sve projekte/domaće završavam među prvima, jer mi je motivacija bila da što pre završim fakultet kako bih mogao da se posvetim onome što volim. Jedna od sjajnih stvari je što nisam bio sam u tome, i drugi praktikanti (pa i neke kolege) su i dalje studenti i onda kada vidite da se neko drugi isto tako trudi da završi fakultet pored posla, bude lakše i osećate se motivisanije (bar ja). I definitivno bih sve uradio opet, pogotovu ako ste na završnoj godina studija, jer kraj je blizu i može da se postigne uz malo odricanja(raditi za faks nekoliko sati posle posla par puta nedeljno), a dobit je višestruka!
 
6. Šta ti je bio najupečatljiviji momenat/događaj tokom prakse? – Dejan Lazarević 

Posle svih zadataka koji su nam bili namenjeni tokom prakse, najupečatljiviji momenat je bio rešavanje naših prvih bug-ova. U početku je izgledalo kao da nijedan bug nema smisla i da iza njega stoji samo neka magija koju nismo u stanju da razumemo. Već u startu se može krenuti pogrešnim putem koji ne vodi do adekvatnog rešenja, a ako i parcijalno rešava pomenuti problem prouzrokuje još dodatnih. Ako se takva situacija desi to je jasan indikator da smo na pogrešnom putu i da treba da promenimo način razmišljanja i pristup problemu. Tokom intezivnog testiranja i pronalaska pravog uzročnika na scenu dolaze sva potencijalna rešenja koja smo sakupili tokom istraživanja. Kako prvi deo debagovanja nije bio trivijalan, tako sad ni deo implementacije rešenja nije uvek jednostavan. Od mogućih rešenja treba izabrati najoptimalnije koje ce najmanje uticati na performanse i koje se lepo uklapa u postojeći kod. Nekada to zahteva i mali refaktor dela koda gde se zapravo problem nalazi. Nakon svih ovih faza i utrošenog vremena, tumaranja po projektu i pokušaja da se razume šta i gde je zapravo uzročnik problema u nekom momentu se sve kockice sklope i sada sve konačno ima smisla i trud se na kraju isplati.
 
7. Kakav je tim u kom si radio? – Aleksandar Zdravković 

Kada sam dolazio u firmu, najviše me je brinulo kako ću se uklopiti sa novim kolegama, s obzirom da sam najmladji. Svi su se potrudili da se jako brzo uklopim u ceo tim, ali i u društvo. Nikad se nije osetila neka takmičarska ili negativna atmosfera, od početka smo se svi zajedno smejali i pomagali jedni drugima, kako i treba da bude. Osim što su mi kolege, pre svega, oni su i moje društvo sa kojima redovno idem na ručak ili na druženje posle posla.
 
8. Zbog čega si odlučio da ostaneš u Ubisoftu nakon prakse? – Filip Grujić 

​Na praksi sam bio prijatno iznenađen ljudima sa kojima sam radio. Da, svi smo radili i rešavali neke svoje probleme, ali koliko god puta da sam zapitkivao o nekim, sada već, jednostavnim stvarima nailazio sam na kolege koje su uvek bile voljne da pomognu. Atmosfera je uvek bila opuštena i smeh i šala su se uvek čuli. To, kao i prilika koju sam dobio da napravim nešto "svoje", neki deo igre koji ću moći svakome da pokažem da sam ja uradio, su razlozi koji su uticali na moju odluku da ostanem u Ubisoftu nakon prakse.
 
Piši nam za sve što te interesuje u vezi prakse:
 
Zorana Stracenski – zorana.stracenski@ubisoft.com
Sofija Marković – sofija.markovic@ubisoft.com
Katarina Živanović – katarina.zivanovic@ubisoft.com
 

Ostali blog tekstovi poslodavca