Nexus Znači nema loših lijenih portova u gaming svijetu ili se pravimo?
Molio bih za početak da mi ne stavljaš riječi u usta. Ja to nisam rekao, već sam se osvrnuo na tvoju konstataciju o lijenim developerima jer pokazuješ da nisi upoznat s općenitim procesom razvoja softvera, a kamoli s procesom izrade igara.
Mislim, daj ajde objasni kada imaš svo to znanje i nauči me nešto, umjesto sarkastičnih postova za koje prozivaš druge po forumu.
Nema problema, rado ću se raspisati, a prije nego što podrugljivim tonom nastupaš prema mom znanju, bilo bi lijepo da ne ulaziš u rasprave s neopravdanim samopouzdanjem u vlastito (ne)znanje. Dapače, mislim da se ne mora ni biti developer da se dobije percepcija toga kako se razvija softver. Potrebno je samo malo truda. Poučen prethodnim uzaludnim pokušajima da ti se ukaže na to da si bio u krivu, jednostavno mi prvi potez nije potrošiti vrijeme na nešto što neće imati ikakav utjecaj. Unatoč tome, iako nemam puno iskustva jer radim u struci tek dvije godine, rado ću podijeliti svoja zapažanja.
Kada govorimo o inženjerskom dijelu, uzeo bih tri primjera. Prvi će biti razvoj nekog web servisa. Drugi će se dotaknuti razvoja igara, a treći se dotiče izrade enginea. Krenimo redom.
Prilikom izrade nekog web servisa, moraš računati na barem tri sloja razvoja. To će biti backend, tamo gdje ćeš imati poslovnu logiku, frontend, koji služi da prikazuje podatke koji se obrađuju na backendu te bazu podataka koja mora spremati te iste podatke. Svaki od tih slojeva koristi svoje tehnologije. Tehnologija se bira na temelju projektnih potreba, neće se birati unaprijed jer se time sama arhitektura dovodi u situacije gdje neće biti kompatibilna. Unatoč tome, do takvih problema i dalje dolazi.
Isplanirati izradu čitave aplikacije unaprijed nije izvedivo, već postoji niz prilagodbi. Možda ažuriranje neke biblioteke onemogući korištenje ostalih biblioteka jer još nisu ažurirane pa postanu nekompatibilne. Možda je za implementaciju ključnog zahtjeva potrebno više biblioteka koje onda treba nekako iskoristiti samo da proradi (jer su takvi zahtjevi klijenta), no međusobno ne rade na stabilan način. Možda u kombinaciji niza biblioteka naiđeš baš na jedan bug koji je toliko rijedak da je samo prijavljen na jednom threadu na GitHubu autora. I sve se to radi pod pritiskom budžeta i vremena.
Da bi stvar bila još bolja, idemo dodati novi sloj. Svaka se aplikacija mora negdje verzionirati te kada dođe vrijeme da se neki reprezentativan primjerak postavi na server, potrebno je složiti deployment. To je pak zahtjevno jer se moraju osigurati resursi, koji su ponovno potencijalno ograničeni budžetom, što dovodi do kompromisa, a to dovodi do nestabilnosti poslužitelja i nepredvidivog ponašanja.
Sve ovo za jednu web aplikaciju.
No bolje da se prebacimo bliže tematici ovoga foruma. Dotaknimo se razvoja igara. Danas se većina igara temelji na Unreal Engineu ili Unityju. Unity se s razlogom koristi u manjim naslovima jer Unreal Engine, korištenjem C++ jezika, nudi veću fleksibilnost, no ona dolazi i s puno većim rizikom. C++ je snažan jezik jer omogućava baratanje memorijom. To nije najjednostavnija stvar te ako dođe do propusta (do čega često dolazi), dolazi do curenja memorije i ogromnih problema u izvršavanju koda koje postaje nepredvidivo. Sve to pod pritiskom budžeta i vremena.
Idemo to sve prenijeti na još nižu razinu, na izradu enginea. Tu stvari postaju još kompliciranije. Riječ je doslovnom simuliranju zakona fizike. Razvoj enginea je najteži zalogaj u čitavoj industriji. Riječ je o procesu eksperimentiranja i inoviranja. Nekada će nastati čudo, nekada će nastati nestabilni krš. Jedini način da saznaš je da kreneš raditi i vidiš gdje ćeš završiti.
Zagrebao sam po površini razvoja nekog softvera. Nisi ni svjestan koliko ova tema još može ići u dubinu. Banalizirati toliko kompleksan proces svaljivanjem svega na lijenost developera pokazuje koliko nisi upoznat s time o čemu pričaš, a s kolikim samopouzdanjem ulaziš u rasprave.
I čisto kao dodatak. Mora da je Decima engine djelo lijenih programera s obzirom da je Horizon: Zero Dawn na PC-u imao problem s curenjem memorije.
EDIT: Da ne bi bilo da se nisam dotaknuo. Menadžment često nema doticaja s tehnologijom, već samo s tumačenjem i prijenosom zahtjeva te diktiranjem rokova. Ti rokovi znaju biti brutalni, ponekad i neljudski, pogotovo u gaming industriji. I nakon svega toga, lijenost developera je očiti uzrok svakog problema u industriji.