Izvestaj sa Hackathon takmičenja

Timovi sa RAFa:

· Infinity: Miloš Biljanović, Dejan Pekter, Uroš Joksimović, Oroš Jozef

· Tanja Vetrović Panković (3 mesto): Nikola Stoiljković

· Mićko the Komplajler (bez nagrade): Nikola Smiljković, Dimitrije Dimić

Nordeus Hackathon je takmičenje koje organizuje kompanija Nordeus u 24 časovnom pravljenju igara. Tema igrice se saznaje na dan takmičenja. Može se prijaviti bilo ko, od pojedinaca do timova, s tim što više šanse imaju timovi jer bi se od pojedinaca kasnije sastavili timovi. Svaki tim broji 4 člana (uloge unutar tima, odredjuje sam tim. Može biti dizajnera, programera, testera, šta god. Mi smo, što kako dolikuje RAF-u, u timu imali 4 programera). Takmičenje se održava u prostorijama Nordeusa, gde oni obezbeđuju uglavnom sve. Svaki tim ima svoju kancelariju (u različitim bojama, za svaki tim se izvlači boja i na osnovu toga i dobijaju i kancelariju) sa opremom koju koriste ljudi iz Nordeusa (odlicna oprema, savremeni računari sa 2 monitora, u svim kancelarijama). Takođe su obezbedili i hranu, i najavili da su to neograničene količine hrane, slatkiša i pica, što se ispostavilo kao potpuno tačno. Svaki takmičar je mogao uvek da se prošeta do kuhinje i da se osveži ili zasladi. Organizacija je zaista bila odlična.

Ove godine se na takmičenje prijavilo preko 200 ljudi, od kojih je samo 48 (12 timova, od kojih jedan tim nije mogao da prisustvuje) ušlo u finale i oni su zapravo proveli 24h praveći igru. Prošle godine smo se takođe prijavili na takmičenje, ali na žalost (ili više na sreću jer svaki tim može da učestvuje samo jednom, a prošle godine nismo bili toliko spremni kao ove) nismo prošli u finale. Tako smo i ove godine očekivali da nećemo proći, ali smo sve jedno poslali prijavu (prijvljivanje ide ekipno ili individualno, gde svako šalje svoj CV i na osnovu toga oni biraju finaliste). Jedva sam poverovao kad smo saznali da smo prošli u finale. To je samo po sebi veliki uspeh, biti među 48 od 200 prijavljenih ljudi. Kako smo saznali da smo prošli, odmah smo počeli sa pripremama. Ja sam imao najviše iskustva u programiranju igara u timu, tako da je na meni bio posao da za manje od 7 dana naučim ostale kako se programiraju igre.(Kao tehnologiju, koristili smo javu sa lwjgl openGL nastavkom i nadograđenim code-base-om – engine-om, koji sam počeo pisati pre pola godine i koji je bio zgodan za pravljenje igara). Takmičenje se održavalo u subotu i odlučili smo da petak iskoristimo za odmaranje, jer nam je potrebno da u subotu budemo 24h koncentrisani. Tako smo vežbali do četvrtka, kada smo na kraju pokušali i uspeli da na brzaka zajedno sastavimo jednu manju igru. Posle odmora u petak, bili smo više nego spremni za izazov. Znali smo da nam je ovo jedina prilika na hackathon-u i da je moramo iskoristiti dobro.

Stigli smo na mesto takmičenje malo ranije i gledali smo kako se ostali timovi okupljaju. Sasvim prijatna i prijateljska atmosfera ljudi, čovek prosto nema osećaj da je došao na takmičenje. Sve je počelo slikanjem, grupnom fotografijom svih takmičara, a onda i pojedinačno timova. Svaki takmičar je dobio identifikacionu karticu, i posle slikanja i smeštanja u kancelariju, dobio je i majicu u boji tima (naš tim je dobio sive majice).

Usledila je kratka prezentacija o takmičenju, gde je ponovo ponovljeno šta sme da se koristi, šta ne sme i gde su nam pretstavljeni ostali detalji takmičenja. Na kraju prezentacije saznali smo i ovogodišnju temu takmicnja: Shoot’em Up. To je tip igrice gde postoji igrač kojeg napada što veći broj neprijatelja a njegov cilj je da izbegava metke i da ih sve upuca. Još pre takmičenja siguran sam da su mnogi razmišljali o tome koja bi tema mogla da bude na takmičenju, ja nisam izuzetak, i baš sam o tome razmisljao da bih najmanje voleo da mi dođe tema neke pucačine, ali sve jedno, tema je bila tu i mi smo morali da je ostvarimo. Imali smo još pola sata pre početka takmičenja da sredimo mašine na kojima ćemo raditi i da postavimo radno okruženje. Svakom timu su bili dodeljeni mentori(oni su se menjali na 6 sati), koji obilaze timove i prate njihov napredak i tu su ako je timu potrebna nekam pomoć. Odbrojavanje je počelo i takmičenje je otpočelo snažnim urlikom trube kroz prostorije Nordeus-a tačno u 12:00.

Svi timovi su se povukli u svoje kancelarije, gde će provesti narednih 24h praveći demo igrice koji će na kraju javno predstaviti pred žirijem. Mi nismo gubili vreme. Još unapred smo dogovorili tempo rada. Prvih sat vremena smo iskoristili za ideje. Ideja je osvanula da hocemo da pravimo tenkove. Onda smo počeli da širimo ideju i da ubacujemo stvari koje želimo da naša igrica sadrži. Sve elemente igrice smo podelili u grupe: 1. Ono sto mora da se nađe u igri 2.Ono sto je poželjno da se nađe u igri 3. Ono što ćemo ubaciti ako stignemo. Tako smo poređali prioritete i znali šta treba kad raditi. Takođe smo, po uzoru prethodnog pobednika na hackathon-u, na tabli (postojale su 2 table u svim kancelarijama) nacrtali pravougaonik i podelili na 24 polja, gde svako polje pretstavlja jedan sat, nakon isteka svakog sata, neko je ustao i precrtao jedno polje. Tako smo po satima podelili sve elemente koje treba implementirati i pokušali da tu podelu i pratimo.

Nakon sat vremena, počeli smo sa implementacijom. Josš pre takmičenja smo se dogovorili kako ce sve ići. Zbog najviše iskustva i zato što sam najupoznatiji sa korišćenim tehnologijama, ja ću početi da implementiram centralni deo koda, jedan od članova tima ce biti uz mene i brinuti se da ne napravim propust, i nakon što su neke osnovne stvari implementirane (par osnovnih abstraktnih klasa), onda će se i ostali članovi tima nadovezati na rad. Tako je bilo, nakon sat vremena(2 sata od početka takmičenja), svi smo imali svoja zaduženja i odrađivali smo svoj deo igre. Tokom programiranja, pravili smo kratke pauze, i imali smo igrivu verziju tenkova nakon 3-4 sati, gde je igrač mogao da se kreće sa tenkom i da puca i pomera kutije unaokolo a nakon 5 sati smo imali i neprijatelje koji neumoljivo pokušavaju da unište igrača (Ja sam bio zadužen za sam tenk, Dejan i Miloš su pravili Kutije a Uroš je pravio neprijatelja). To su bile stvari koje su morale postojati u našoj igri. Tu smo shvatili da smo završili osnovu. Napravili smo kratke konsultacije i prionuli na implementiranje onoga što je bilo 2 po redu na listi. Onda smo se podelili. Miloš i Dejan će nastaviti da implementiraju teren, gde smo želeli da ubacimo vodu(preko čega samo posebni tenkovi mogu da se kreću),šumu(za sakrivanje tenkova), led(na njemu tenkovi proklizavaju) i ostale podloge za tenk. Uroš i ja ćemo raditi na tenkovima, ubacivaćemo različita oružija na tenk i razne vrste tenkova, i onda ćemo implementirati radnju (cilj je bio napraviti da igrač dobija pare ubijanjem neprijateljskih tenkova i da te pare koristi na kupovinu novih delova za sopstveni tenk). Granicu za implementaciju tih stvari smo odredili 14 sat. To smo skoro uspeli da ispostujemo, zavrisili smo 15om satu. Sada smo opet napravili prekid da se dogovorimo oko nailazećih problema. Najveći problem je bio umor. Srećom najbitnije stvari su bile implementirane, i znali smo u tom trenutku da ne smemo započeti veliku stvar, jer će nas umor spreciti da to i odradimo. Tako smo odustali od prvobitne ideje da teren po kome se tenk kreće bude beskonačan (kao i naziv našeg tima: infinity) i da ćemo za prezentaciju napraviti jedan nivo u kome ćemo prezentovati sve što smo uradili. Dejan i Miloš će početi da rade na nivo-u, Uroš ce ubaciti jednostavan combo u igru (broji vam se koliko ste neprijatelja ubili za redom), ja cu ubaciti glavni meni i pokušati da ubacim par efekata u igru. Ovo su bili za mene najteži sati na hackathon-u, kad posle 15 sati rada, i preko 50 fajlova sa po min 100 redova koda morate da se snađete u celom tom neredu i da dodate jos koda, najjednostavnije stvari postaju ogromni problemi. U tim satima, sećam se, krenuo bih da kucam red koda, i setim se da je potrebno na nekom drugom mestu ubaciti red koda, kad to uradim, više se ne sećam gde sam pre toga bio. Tada nam je bilo potrebno da skupimo svu koncentraciju samo da bi smo znali šta radimo. Na kraju smo uspeli ipak sve implementirati i ostalo nam je još vremena da ubacimo zvukove u igru i da je maksimalno ispoliramo za prezentaciju (koliko je to bilo moguće posle 22 sati rada, mnogi bug-ovi su nam promakli).

Naše poliranje je prekinula ista ona truba koja je objavila početak takmičenja pre 24h, samo sto u tom trenutku nije zvučala tako dobro, već nam je bolno probadala uši. Ostalo nam je pola sata da spakujemo rad i da ga osposobimo za prezentaciju. Svi smo bili zadovoljni onim što smo uradili. Pre takmičenja smo mislili da ćemo na takmicenju imati problema sa sukobom ideja ili bar neke rasprave, ali mi smo završili projekad bez ijednog sukoba ideja(Iako smo se unapred dogovorili kako ćemo te sukobe rešavati). Ja sam bio najviše iznenađen time. Sve vreme smo radili složno, timski rad je zaista bio odličan, i to je na mene ostavilo jako pozitivan utisak.

Oko 13h su počele prezentacije radova. Tokom prezentacija timovi su igrali svoje igre, i objašnjavli šta su sve uradili u proteklih 24h, dok je žiri (koji se sastojao od ljudi koji su zaposleni u Nordeus-u) hvatao beleske. Bilo je tu puno zaista lepih

igara, ideja i složenih implementacija. Svaki tim se potrudio da svoju igricu dovede na najviši mogući nivo i da ubaci neke svoje ideje u svoju igricu. I mi smo se potrudili da u što boljem svetlu prezentujemo našu igricu. Ispostavlo se da je naša igrica izgledala najgore, jer u timu nismo imali dizajnera, i to se bolno videlo na našoj igrici.

Posle prezentacija, žiri se povukao na 3 sata u svoje prostorije gde će detaljno većati o tome koji rad je bio najbolji, kao i lično isprobavati igrice. Mi takmicari smo imali slobodno vreme za stoni fudbal(u kome je bio organizovan mini turnir, gde će pobednici biti nagrađeni), i ostale igrice koje su nam bile na raspolaganju u Nordeus-u. Ja lično sam se u tom vremenskom periodu najvše trudio da ne zaspim, kao i većina takmičara. I konačno, posle relativno kratkog vremena, došao je trenutak koji smo svi čekali.

Postojalo je više nagrada, pa se u skladu sa tim, dodeljivali su ih jedan po jedan. Pošto je bilo 6 nagrada (sa tim 50% šanse da smo dobili nagradu), mi smo se nadali da ćemo dobiti bar neku nagradu.

(svaki član tima je dobio nagradu)

Za tehničku kompleksnost nagrađen je tim „@area25“ dobili eksterne HDD

Za najbolji multimedijalni sadrzaj nagradjen je tim „Phoenix Game Studio dobili su razor miševe

Za gameplay je nagradjen „Gari“ tim iz Novog Sada, jedini tim koji je bio mlađi od nas (uglanvom 19 godišnjaci) i najmlađi na takmicenju, dobili su grafičke kartice

glavne nagrade:

3 nagrada dobio je tim „Tanja Vetrović Panković“, dobili su sony play station 3 slim, tim sa RAF-a

2 nagradu dobio je tim „SG Indians“ i oni su dobili Samsung Galaxy S3. Oni su pravili isto igricu sa tenkovima(u sega stilu), i ovde smo se najviše razočarali, jer nismo verovali da možemo da osvojimo prvo mesto, kao i da su prva dva mesta igrice sa tenkovima.

I onda smo začuli ime sopstvenog tima.

1 nagrada „Infinity“, dobili smo iPad. Potpuno smo bili iznenađeni i oduševljeni.

Iz prva nije nam bilo jasno zašto smo baš mi pobedili, jer smo zaista videli par kvalitetnih igara, zato smo postavili to pitanje članu žirija, koji nam je rekao da je to zbog toga što su probali sve igrice, i našu je bio najbolji osećaj igrati, zato što je bila pomalo haoticna zbog talasa navale neprijatelja. Mi smo igru napravili tako da bude zanimljiva (Zanimljiva i nama, jer smo želeli da u prvom redu mi možemo da je igramo) i izazovna – saznali smo da je bila dovoljno izazovna i da žiri nije uspeo da je pređe.

Sveukupno je hackathon bio jako pozitivan doživljaj iz mog profesionalnog pogleda. Zaista prijateljska atmosfera takmičara i ljudi iz Nordeus-a, sasvim nov doživljaj timskog rada, prosto preporučujem svakome, čak i onima koji ne žele da se bave pravljenjem igara.

2046-izvestaj-sa-hackathon-takmicenja