Optimizacija Deep Rock Galactic: Survivor za mobilne uređaje
Public- 19 Sep, 2026

Prenijeti Deep Rock Galactic: Survivor na mobilne uređaje značilo je uzeti bullet-heaven igru s PC-a i natjerati je da radi na hardveru s daleko manjim budžetom GPU-a, CPU-a i memorije. Port je radio Piktiv dok se grana za PC još aktivno razvijala, a timovi su se toliko razišli da je spajanje išlo samo u jednom smjeru: s PC-a na mobilnu verziju, ali nikad obrnuto. Takvo razdvajanje dalo je Piktivu slobodu da se prema izvornim sustavima odnosi drastično — da rastavlja ustaljene pristupe i ponovno ih gradi prema sasvim drukčijem skupu zadataka optimizacije. Glavno ograničenje bila je memorija: gotovo svi ciljani uređaji nosili su 4 GB RAM-a, osim jednog iPada koji je imao samo 3 GB. Na njemu je timu ostajalo otprilike 1 850 MB za sve, a prelazak tog ograničenja značio je pad.
Rad na performansama usredotočio se na sustave čija cijena raste s brojem neprijatelja. Brojevi štete izvorno su bili GameObjects s TextMesh Pro, ali generiranje tekstualne mreže odjednom za tisuću neprijatelja postajalo je usko grlo. Rješenje je bio obični Unity sustav čestica sa sprite-listom znamenki od 0 do 9. Pronalaženje puta prešlo je s ugrađenog NavMesh sustava, koji se loše snalazi kad tisuće agenata utiru rutu svaki za sebe, na pristup kroz flow-field, gdje cijena ovisi o površini, a ne o broju agenata. Fizički upiti ubrzani su KD-stablom za prostorne odabire — primjerice, da se pronađu svi neprijatelji u radijusu granate — iako je to zahtijevalo česte ponovne izgradnje kako su se neprijatelji kretali. U renderiranju neprijatelja otprilike tisuću skinned mesh renderera zamijenjeno je zapečenom animacijom vrhova: svaki ključni kadar pohranjen je u teksturi i reproduciran shaderom na GPU-u, što svodi trošak CPU-a gotovo na nulu i otvara GPU-instanсiranje na jednoj zajedničkoj mreži i materijalu.
Dublji tehnički detalji objašnjavaju kako te zamjene funkcioniraju. Flow-field preokreće model troška pronalaska puta: preko razine se postavlja mreža i, počevši od cilja, pločice crtaju strelice prema susjedima koji već imaju strelice, sve dok cijelo polje ne bude pokriveno. Trošak tada ovisi o pokrivenoj površini, a ne o broju agenata, i može se dodatno ograničiti izračunom graničnog okvira oko svih neprijatelja i igrača te ažuriranjem polja samo unutar tog područja. KD-stablo rekurzivno dijeli prostor, tako da upit "točka i radijus" brzo vraća sve unutra, zamjenjujući teže fizičke upite. Ti su se sustavi slijevali u lanac Burst poslova dug 10–15 ovisnosti, koji izmješta sve neprijatelje izvan uobičajenog fizičkog sustava i osjetno podiže donju granicu broja sličica u sekundi.
Addressables su imali središnju ulogu u tome da se stane u ograničenje iPada s 3 GB. Budući da igra nikad ne prikazuje više od jednog bioma odjednom, Piktiv je izdvojio grafičke assete i postavke pojedinih bioma tako da se učitavaju samo kad je potrebno. Cijena toga je što Addressables unose asinkronost u kod koji je prije bio sinkron, a pregradnja sustava na async može postati ozbiljan arhitektonski izazov, no ovdje se to isplatilo. Testiranje se oslanjalo na automatizirani mjerni sustav koji je pokretao šest scenarija kroz sve biome: osnovni s igračem koji miruje, tisuću neprijatelja koji napreduju ili 500 neprijatelja plus oružje koje automatski puca. Tijekom cijelog procesa mjereni su CPU, GPU i memorija, a Unity Profiler je vodio rane audite CPU-a. Jedan scenarij koji je u deset sekundi stvarao oko 4 000 plavih kocaka za pokupljanje bio je prije optimizacije ozbiljan udarac, a nakon nje postao je nemjerljiv. Geometrija razine, koja se proceduralno gradi od pojedinačnih objekata, također je spojena u batcheve kroz prilagođene draw naredbe, jer fiksna kamera odozgo omogućuje lako izračunavanje vidljivog područja.
Za timove koji razmišljaju o sličnom portu, zaključci se ne tiču toliko jednog trika koliko rasporeda podataka i suradnje među sustavima. Premještanje podataka u komponente i natrag postaje skupo kad se tisuće entiteta izvršavaju svaki kadar, pa se isplati držati sve u nativnim spremnicima i provlačiti te iste spremnike kroz cijeli cjevovod. A igri koja je trebala koristiti ECS ili Data-Oriented Technology Stack nije potrebna potpuna prerada: ovaj se projekt oslonio na Burst kompajler i nativne tipove podataka, ne prevodeći cijelu igru. Deep Rock Galactic: Survivor dostupna je na Steamu, Xboxu, App Storeu i Google Playu.