KUSH ËSHTË PROGRAMUES KRYESOR (INDIE MOBILE) DHE SI FUNKSIONOJNË

SI U BËRA PROGRAMUES KRYESOR (indie mobile)

Emri im është Branislav Vajagić dhe zyrtarisht kam filluar programimin e lojërave në fund të vitit 2001. Kur them zyrtarisht, dua të them se u bë puna ime. Para kësaj, unë  angazhohesha me lojëra në çdo mënyrë të mundshme, siç bëjnë shumë njerëz: duke e pasur hobi dhe duke qenë entuziast. Kam luajtur lojëra dhe jam përpjekur të krijoj diçka timen. Këto ishin ditët e Spectrums, Commodores e kështu me radhë. Ishte një përvojë e shkëlqyer, argëtim i pastër. Sa i përket anës së biznesit të gjërave, fillova në Metamorph Studio, më pas u transferova në disa studio lokale, si Level Bit, më pas në bashkëprodhimin serbo-izraelit TabTale dhe më vonë punova në Eipix. Midis tyre, kam punuar në mënyrë të pavarur dhe tani jam në pozicionin e Programuesit Kryesor në Yboga Studio. 

Në fëmijëri, fillova të luaja lojëra të ndryshme në makineri të vjetra. Nuk zgjodha të punoja me lojërat sepse kisha një plan të madh. Thjesht më pëlqyen lojërat dhe kur u shfaq mundësia, atëherë e shfrytëzova. Mundësia u shfaq çuditërisht kur Goran Rajšiq dhe Nikola Vitkoviç erdhën nga skena komike nëntokësore e ish-Jugosllavisë. Ata vendosën të ndërmarrin një hap surreal – të fillojnë të prodhojnë një lojë, e cila nuk ishte dicka e vogël në atë kohë. Më ndodhi të vija në kontakt me njerëzit e duhur dhe hyra në skenën e lojërave. Thjesht ndodhi, nuk ishte planifikuar.   

Para kësaj, kam pasur disa përvoja gjysmë-profesionale dhe jam marrë pak me zhvillimin e uebit. Ishte profesionale në kuptimin që ishte punë me pagesë, por nuk ishte tërësisht profesionale për sa i përket ekipit që u mblodh dhe filloi të punonte. Pastaj ndodhi kjo dhe nuk e dija kurrë se çfarë do të ndodhte më pas nëse do të kisha vazhduar në atë rrugë. Përsa i përket përvojës joprofesionale, gjithmonë ka pasur projekte amatore të llojeve të ndryshme, jo vetëm lojëra.

Më pëlqen të them se jam si i suksesshmi dhe i famshmi Bill Gates dhe Mark Zuckerberg – braktisës I universitetit. Nuk e mbarova zyrtarisht arsimin që fillova. Shkova në universitet dhe më pas e lashë. Ishte Fakulteti i Matematikës, ku unë isha duke u diplomuar në shkenca kompjuterike. Nga ky këndvështrim, mendoj se arsimi formal luan një rol të rëndësishëm. Aty mund të mësoni gjëra që nuk do t’i mësonit ndryshe. Mund të duket e mërzitshme dhe e vështirë, por është shumë e dobishme. Është e vështirë ta shtysh veten të mësosh gjëra të tilla vetë, por kur një profesor të shtyn, thjesht duhet ta bësh. Kishte edhe gjëra të së njëjtës natyrë që personalisht nuk më interesonin shumë. Nuk kam asgjë kundër matematikës, por thjesht nuk më interesonte. Kishte disa përplasje mes meje dhe universitetit. Pastaj erdhi mundësia për të punuar në lojëra dhe unë e pranova. Ashtu siç nuk ishte kjo e planifikuar, as largimi nga arsimi formal nuk ishte planifikuar. Unë thjesht u zhyta në zhvillimin e lojërave. Për fat të mirë, sot, shumë mësime formale mund të merren përmes internetit, dhe pjesa më e madhe e tyre janë falas. Kjo ka avantazhet e saj – askush nuk ju ngacmon për të bërë asgjë. Dhe gjithashtu ka të metat e veta – askush nuk ju ngacmon për të bërë asgjë, kështu që ju mund të hiqni dorë lehtësisht. Disa drejtime, veçanërisht programimi, janë mjaft sfiduese. Duhet të durosh shumë, por kur e kalon atë fazë, është e dobishme. Këtu ka një problem tjetër. Edukimi formal përdoret shpesh si një lloj filtri, gjë që është plotësisht e kuptueshme. Kur dikush duhet të punësojë dikë, ai shikon përvojën e punës dhe arsimin, dhe më pas arsimi mund të jetë një filtër – nëse dikush nuk ka mësuar asgjë, ndoshta nuk di asgjë, kështu që pse do t’i punësonin? Po kështu, arsimi nuk duhet të thotë asgjë për personin. Arsimi formal është një lloj sporti i veçantë; aty mësoni mjaft mirë se si të kaloni provimet, por kjo nuk do të thotë domosdoshmërisht se e zotëroni lëndën. Përsëri, nuk do të thotë as që ju nuk e zotëroni. Unë kam shumë të njohur nga universiteti im që janë njerëz dhe njohës të shkëlqyer, dhe disa njerëz kanë mbaruar universitetin dhe janë plotësisht të specializuar në gjëra të tjera – ata janë shumë të mirë në punën e tyre dhe nuk ka të bëjë fare me arsimimin e tyre formal. Në raste të tilla, nuk është një filtër aq i rëndësishëm. Nëse jam duke kërkuar për dikë të mirë në matematikë, nuk mund ta konkludoj kurrë këtë bazuar në kredencialet formale. Kjo është arsyeja pse qëndrimi im është pak i përzier. Për fat të mirë, them unë, sot mund të mësojmë shumë në internet. Dhe shpesh vizitoj kurse të ndryshme nga universitete të ndryshme botërore sepse mund të mësosh diçka që të ndihmon.  

Të mësuarit e vazhdueshëm është pjesë integrale e punës. Nëse përshtatet me orarin e punës varet nga mjedisi në të cilin punon dikush. Unë kam qenë shumë me fat; të gjitha mjediset në të cilat kam punuar kanë qenë të tilla ku ka pasur shumë liri në këtë drejtim. Kushdo që donte të përmirësohej mundej. Të gjitha burimet ishin në dispozicion, askush nuk e kishte problem nëse dikush kalonte kohë pune për përmirësim personal. Dhe mendoj se kështu duhet të jetë, të paktën në këtë biznes. Dhe mënyra për të arritur atje, mendoj, është individuale. Për mua, zakonisht ndodh kur hasim një problem, kështu që më duhet të luftoj për ta zgjidhur atë. Ndonjëherë kam mundësinë ta ndjek, të interesohem dhe më pas të filloj të gërmoj më thellë.

Unë nuk kisha asnjë mentor në kuptimin klasik, por në çdo mënyrë tjetër – patjetër. Mentori im do të ishte një personalitet kolektiv: pak librat, pak videot, pak kolegët dhe bashkëpunëtorët. Sigurisht, disa profesorë, veçanërisht asistentë në fakultet. Ishin disa prej tyre të cilët ishin të rëndësishëm për mua. Kohët e fundit mentorët më të mëdhenj kanë qenë videot dhe kolegët. Pavarësisht moshës, përvojës, pozicionit… Të gjithë mund të mësojmë shumë nga kolegët tanë.

ÇFARË E BËN NJË PROGRAMUES KRYESOR (indie mobile)?

Përveç njohjes së kodit, kërkohen aftësi jo-teknike si aftësitë e përgjithshme organizative, aftësitë e menaxhimit ose thjesht komunikimi me njerëzit. Meqenëse kjo është pjesë e punës, mendoj se është një nga aftësitë e rëndësishme që nuk lidhet me programimin. Edhe pse, në përvojën time, pjesa më e madhe e kësaj vjen me kalimin e kohës përmes ndërveprimeve me njerëz që punojnë në pozicione të ngjashme. Nëse dikush ka ndonjë lloj edukimi në këto fusha, formal apo joformal, sigurisht që është i dobishme. Por shumica e njerëzve me të cilët kam pasur mundësinë të komunikoj, të cilët punojnë në pozicione të ngjashme, mendojnë se kjo është ndërtuar me kalimin e kohës për shkak të nevojave të vetë punës.

Pozicioni I Programuesit Kryesor mund të ndryshojë shumë në varësi të kontekstit dhe madhësisë së ekipit. Nëse ekipi është i vogël, ky pozicion është një përzierje e detyrave menaxheriale-organizative dhe vetë programimit. Plus, disa mentorime, nëse keni kolegë më pak me përvojë në ekip. Nëse ekipi është më i madh, është e ngjashme, por ju do të fokusoheni më pak në gjëra të tjera. Në një ekip të vogël, ju shpesh bëni gjëra që nuk lidhen vetëm me programimin. Ju mund të merreni me disa punë burokratike, dizajn lojërash, testime dhe operacione të drejtpërdrejta. E thënë thjesht, dikush duhet ta bëjë këtë, dhe nëse nuk keni njerëz mjaftueshëm, kushdo që mundet, e bën. Kjo më ndodhi gjatë karrierës sime. Nëse është një kompani më e madhe si Epic Games ose Ubisoft, supozoj se Programuesit e tyre janë pak më të fokusuar në detyra të përcaktuara saktë dhe nuk kanë aq shumë detyra të lidhura indirekt me pozicionin në ditën e tyre të punës. Në fund të fundit, pozicioni i Programuesit Kryesor mbetet tek kodimi dhe bashkëpunimi me anëtarët e ekipit.

Kam punuar edhe në industrinë financiare si Programues për një periudhë kohe. Dallimi më i madh është se në lojëra, ka një mungesë të plotë përgjegjësie. Kur ngatërroni diçka, askush nuk do të vdesi.
Ky fakt është mjaft çlirues sepse nuk po krijoni një skaner për të zbuluar sëmundjen e dikujt. Dikush me siguri do të mërzitet, por në fund të fundit, ato janë thjesht lojëra, kështu që nuk është aq e frikshme. Mendoj se ky është një ndryshim i madh midis lojërave dhe industrive të tjera të IT.

Në sektorin financiar, ekziston një shtresë më rigoroze e testimit të softuerit, sepse nëse dikush klikon diçka që keni bërë dhe humbet para, ky mund të jetë një problem i madh. Në lojëra, është pak më ndryshe. Kjo nuk do të thotë se nuk ka asnjë përgjegjësi – nëse loja juaj është e keqe, kompania juaj do të dështojë, kështu që nuk është e parëndësishme. Por është ende ndryshe nga monitorimi i mjekësisë apo infrastrukturës, kontrolli i trafikut ajror e kështu me radhë. Natyra e vetë punës është gjithashtu e ndryshme. Në sektorin financiar, ka tregti me frekuencë të lartë dhe ka një fokus të madh në mënyrën se si ekzekutohen transaksionet sa më shpejt që të jetë e mundur. Këto shpejtësi maten në pjesë shumë të vogla të sekondës dhe njerëzit shkojnë aq larg sa të programojnë harduerin. Ata përpiqen ta afrojnë fizikisht kompjuterin sa më afër bursës për të arritur këto shpejtësi. Edhe këtu, eksziston një problem i ngjashëm – ju dëshironi të shfaqni sa më shumë korniza për sekondë në ekran. Por nëse jeni në industrinë e lojërave celulare, për fat të mirë, dikush e ka bërë pak më të lehtë për ju, siç thonë prodhuesit e telefonave celularë: “Telefonat tanë funksionojnë me 60 korniza për sekondë. Ndoshta je më i mirë se kaq, por nuk do të të bënte mirë.” 

Krahasuar me industritë e tjera, ndoshta ndryshimi kryesor është se shumëllojshmëria e problemeve me të cilat përballet një Programues  Lojërash është shumë më e madhe. Ka më pak specializim. Kur specializoheni në diçka si analizimi i fotove nga teleskopi Hubble, kjo është shumë specifike. Ju keni një sërë problemesh me të cilat merreni, madje ato mund të jenë të pazgjidhshme, kështu që është e vështirë për ju. Por kur krijoni lojëra, zakonisht bini në kontakt me gjithçka që ekziston në lojëra. Dhe në lojëra, ka gjithçka që mund të mendojmë. Kështu që unë mendoj se diversiteti është një nga dallimet kryesore.

„Kada je nešto tvoj posao iz snova, očekuješ da će uvek biti zanimljivo i lepo raditi ga. Međutim, na svemu što sam radio, bilo i je i nečeg dosadnog, i nečeg zanimljivog."

ÇFARË BËJNË PROGRAMUESIT KRYESORË? (indie mobile)

Qëllimi kryesor është të kemi një lojë që funksionon dhe është sa më shumë pa gabime – për të siguruar cilësinë e kodit për mirëmbajtje më të lehtë të projektit në të ardhmen, në mënyrë që të vazhdojë të mirëmbahet ose të mund të përdoren pjesë të tij për projektin e ardhshëm. Po aq e rëndësishme është që një Programues Kryesor të ndihmojë kolegët më pak me përvojë të përmirësohen dhe të bëhen më të pavarur. Për të dhënë njohuri të fituara gjatë eksperiencës dhe për të mësuar diçka prej tyre. Mendoj se qëllimi kryesor është cilësia e vetë produktit dhe cilësia e kodit, për mirëmbajtjen e ardhshme të projektit, por edhe bashkëpunimi me kolegët.  

Sa i përket ekipit tim, aktualisht jemi një ekip i vogël, jemi gjashtë. Në fakt, ne ndahemi midis disa projekteve: fillojmë në një dhe përfundojmë në një tjetër. Përsa i përket metodologjisë, më duhet të pranoj se kam provuar gjithçka dhe nuk jam shumë i kënaqur me asnjë metodologji. Ne përdorim atë që përfundimisht rezulton të jetë më e përshtatshme për ne. Konkretisht, në Yboga, ne jemi një ekip i ri, ende po njihemi me njëri tjetrin, ndaj ende po eksperimentojmë me metodologjitë që përdorim. Ne përdorim disa gjurmues të problemeve, përpiqemi të planifikojmë relativisht mirë atë që mundemi.
I përmbahemi disi agile, adhurues i të cilës nuk jam, të paktën jo në çdo pjesë të produksionit. Disa nga këto metodologji janë më efektive për mendimin tim, dhe disa kur punojë nga distanca. Nuk kam një metodologji të preferuar. Në këtë projekt, ne jemi ende duke eksploruar se cili do të jetë më i miri për ne, kështu që pasi ta vërtetojmë këtë, ndoshta do t’i përmbahemi atij.

Një Programues Kryesor kryesisht komunikon dhe bashkëpunon me një Producent sepse ai është zakonisht personi që bashkon të gjitha ekipet e tjera në një entitet. Kështu përcaktohen planet dhe detyrat për çdo periudhë të caktuar. Duke qenë se jemi një ekip i vogël, unë bashkëpunoj me të gjithë. Gjithashtu, Programuesi Kryesor komunikon shumë me Drejtorin Artistik sepse vetë grafika kërkon teknika për shkak të kërkesave teknike të platformës për të cilën po zhvillohet loja, ndaj duhet shumë bashkëpunim. Unë gjithmonë kam bashkëpunuar me të gjithë, por supozoj se është fizikisht e pamundur kur skuadrat janë më të mëdha. Ndoshta në një vend si Blizzard, Programuesi Kryesor komunikon ekskluzivisht me një Producent që është përgjegjës për atë projekt. Varet gjithashtu nga lloji i ekipit që është. Nëse është një ekip që punon në mbështetjen e serverit backend, ai person ndoshta duhet të komunikojë me pozicione të ndryshme, si p.sh. njerëzit që merren me harduerin, veçanërisht nëse po ndërtoni fermat tuaja të serverave. 

Përsa i përket rrjedhës së punës, ne marrim dizajnin e lojës dhe bëjmë kolektivisht një plan për atë që duam të arrijmë në periudhën e ardhshme. Pastaj ne thjesht e ndajmë atë në detyra më të vogla. Më vonë e ndajmë, që është përsëri pjesa ime e punës – për të caktuar se kush do të bëjë çfarë. Dhe pastaj fillojmë të punojmë. Nëse detyra është më e madhe, ne biem dakord për arkitekturën e kodit kryesor dhe të gjithë fillojnë të zbatojnë atë që kanë për të bërë. Nëse detyrat janë më të vogla dhe të gjithë tashmë janë mjaft të njohur me arkitekturën e gjerë, atëherë kushdo që merr diçka, fillon të punojë me të. Në një moment të caktuar, detyra ime është të bëj rishikimin e kodit, i cili bëhet aq shpesh sa mund ta lejojë koha. Rrjedha e punës është mjaft e lodhshme, ka të bëjë me kodimin, diskutimet dhe testimin e kodit, si në mënyrë të pavarur ashtu edhe përmes lojës. Ndonjëherë nuk është keq të bësh teste në Unity, megjithëse nuk kam parë Programuesit e Lojërave t’i përdorin këto teste shpesh deri më tani. Ne nuk i përdorim aq shumë. Më pëlqen të them se qëllimi i një Unity Test është të testojë disa kode dhe në këtë mënyrë të zvogëlojë numrin e gabimeve, por nga ana tjetër, një Unity Test është gjithashtu kod. Mund të bëni lehtësisht një gabim në një Unity Test, dhe pastaj çfarë? Sigurisht, ajo ka dobinë e saj, kështu që kushdo që e pëlqen, mund ta përdorë. 

DOKUMENTACIONI DHE MJETET (indie mobile)

Kur bëhet fjalë për dokumentacionin, ai kryesisht zbret në disa fragmente të dizajnit të lojës, sepse është thelbësore të përcaktohet pjesa e programimit. Ajo që unë prodhoj janë shpesh listat e detyrave, detyra për të cilat do të punojmë të gjithë. Dhe ndoshta në fillim të projektit, ose kur njerëz të rinj vijnë në bord, prodhoj dokumente që lidhen me standardet e kodimit ose rregullat e përgjithshme të kodimit. Dhe, sigurisht, në fillim të çdo projekti apo pjese të projektit, si Programues Kryesor, duhet të prodhoj një dokument që lidhet me arkitekturën e vetë kodit.

Këto dokumente mund të jenë të shkurtra dhe të gjata, ato mund të përfshijnë edhe skica diagramesh, në varësi të bashkëpunimit me programues të tjerë. Nëse tashmë e njohim mjaft mirë njëri-tjetrin, atëherë edhe dokumentat e thjeshta mund të përcjellin shumë, por nëse nuk e njohim, atëherë ndonjëherë edhe një enciklopedi nuk mjafton, megjithëse zakonisht mjafton. Kjo është ajo që duhet të prodhojë një Programues Kryesor dhe ajo që duhet të konsumojë janë kryesisht dokumentet e prodhimit ose ato të dizajnit të lojës. Dhe, sigurisht, ajo që secili prej nesh duhet të konsultohet janë kalendarët – pasi ne kryesisht bëjmë plane dhe vendosim afate për të arritur diçka.

Përsa i përket softuerit, unë përdor gjithçka që më duket e dobishme në një moment të caktuar. Meqenëse aktualisht po zhvillojmë lojëra duke përdorur Unity, sigurisht, ka Unity, Visual Studio dhe mjete të ndryshme të browser-it (Jira, Confluence, Google Docs, Google Spreadsheets). Shpesh më pëlqen të përdor mjete vizatimi diagramesh. Unë kam përdorur Miro, një tabelë e bardhë në internet për bashkëpunime. Kjo funksionon mirë për mua, sepse disa gjëra janë më të lehta për t’u përfaqësuar vizualisht, edhe pse më vonë përkthehet në tekst, që është kod. Unë përdor gjithashtu redaktorë të ndryshëm të vegjël për JSONs, për konvertimin e skedarëve të ndryshëm. Prandaj, unë përdor gjithashtu Visual Studio Code si redaktues teksti ose për disa gjëra të tjera që nuk lidhen rreptësisht me kodin.
Unë shpesh mbaj një skedar teksti ku shënoj çdo gjë që më vjen në mendje. Çdo ditë, përdor Discord, Slack, Zoom, Skype dhe të gjitha llojet e programeve të komunikimit.

DHE SË FUNDMI

Si shënim i fundit, unë do të largoja iluzionin që kanë shumë persona që duan të hyjnë në industrinë e lojrave. Kur diçka është puna juaj e ëndrrave, ju prisni që ajo të jetë gjithmonë interesante dhe e këndshme për t’u bërë. Megjithatë, kudo që kam punuar, ka pasur diçka të mërzitshme por dhe diçka interesante. Sa herë që bëj një hap përpara, atëherë kur shikoj prapa, më duket sikur: “Oh, si mund ta kem bërë këtë?” Dhe për sa kohë që është kështu, mendoj se është mirë. Kur një person nuk mund të shikojë prapa dhe të thotë: “Oh, kjo ishte marrëzi”, atëherë ai nuk ka përparuar.
Unë kam qenë me fat që kam punuar në një sërë projektesh, kështu që secili ishte një përvojë e ndryshme, unike për mua. Ishte gjithmonë interesante dhe gjithmonë e mërzitshme, sepse çdo prodhim lojërash arrin një moment që është standarde –, ju keni një detyrë dhe duhet ta bëni atë, pavarësisht nëse ju pëlqen apo jo. Loja nuk ekziston nëse nuk i ka të gjithë elementët, dhe sado të mërzitshëm që mund të jenë disa elementë, për shembull, integrimi i reklamave në lojë, duhet bërë. Pra, bluarja në MMORPG na përgatiti për bluarjen në punë, prandaj sigurohuni që jeni vërtet të përgatitur për të!

Lajme

Platforma unike digjitale për orientim profesional në sektorin e video lojërave është lokalizuar në tre gjuhë të tjera, me një version shtesë të destinuar për përdoruesit nga i gjithë rajoni!