Što PlayCanvasov prelazak na ES2020 i WebGL2 otkriva o realnim ograničenjima starijih preglednika u 2026.

Što PlayCanvasov prelazak na ES2020 i WebGL2 otkriva o realnim ograničenjima starijih preglednika u 2026.

PlayCanvas povlači crtu: ES2020 + WebGL2 kao novi minimum

PlayCanvas je u posljednjim verzijama enginea tiho, ali vrlo odlučno, podigao ljestvicu. Službeni cilj su sada preglednici koji podržavaju ES2020 JavaScript i WebGL2. WebGL1 ostaje podržan samo kroz starije grane enginea, bez garancije za nove značajke i optimizacije.

Ova promjena nije samo interni detalj verzioniranja. To je jasan signal da se granica kompatibilnosti na webu više ne definira samo GPU mogućnostima, već podjednako i JavaScript toolchainom, verzijom ECMAScript standarda i razinom implementacije preglednika. Drugim riječima, stari preglednik danas znači i stari rendering pipeline, stari garbage collector i staru sigurnosnu arhitekturu.

Što konkretno znači „ES2020 ciljano”

Podrška za ES2020 u praksi znači da engine može koristiti modernu sintaksu i značajke bez dodatnih polyfillova i transpilacije. To se odnosi na:

  • modularni kod (ES moduli) i statičku analizu ovisnosti,
  • naprednije asinkrone uzorke (async/await bez dodatnih runtime slojeva),
  • bolje performanse u JIT kompilatorima optimiziranima za noviji standard,
  • čišći memory management i manje ručnih workarounda oko starijih API-ja.

Za engine poput PlayCanvasa to znači jednostavniji build pipeline, manje posebnih slučajeva u kodu i mogućnost agresivnijih optimizacija. Primjer je eliminacija starih polyfillova za Promise ili iteratore, što smanjuje veličinu bundlea i ubrzava inicijalno učitavanje igre.

Za developere to istovremeno znači i jasnu poruku: ako ciljate PlayCanvas 2.x, ciljate i preglednike koji su u stanju izvoditi moderan JavaScript bez slojeva kompatibilnosti. Stariji mobilni preglednici, ugrađeni webviewi u starim OS verzijama i zastarjeli kiosk sustavi više nisu prvi građani u ovom ekosustavu.

WebGL2 kao radni konj, WebGL1 kao naslijeđe

PlayCanvasov prelazak na WebGL2 kao osnovni rendering backend formalizira trend koji je u zajednici prisutan već godinama. WebGL1 je funkcionalan, ali ograničen: nedostatak uniform buffer objekata (UBO), ograničen pristup više render targeta, manje fleksibilan teksturni pipeline i otežano implementiranje modernih PBR tehnika.

WebGL2 donosi:

  • bolju podršku za više render targeta (MRT) i napredne post-processing efekte,
  • instancirani rendering za veći broj objekata uz manji CPU overhead,
  • naprednije formate tekstura i kompresije,
  • bolju kontrolu nad depth/stencil bufferima i frame buffer konfiguracijama.

U praksi, to omogućuje složenije rendering passeve, stabilniji frame pacing i više FPS-a na istom hardveru. Engine developeri više ne moraju dizajnirati svaki shader i svaki render pass tako da prolazi kroz najmanji zajednički nazivnik WebGL1 ograničenja.

Stari projekti na WebGL1: svjestan odabir tehničkog duga

Ako vaš projekt i dalje ovisi o WebGL1, PlayCanvas vam poručuje: ostanite na starijoj grani enginea i prihvatite posljedice. To praktično znači:

  • bez novih optimizacija u renderingu, cullingu i asset streamingu,
  • bez najnovijih nadogradnji fizikalno baziranog renderinga (PBR),
  • bez pristupa eksperimentalnoj ili stabiliziranoj WebGPU integraciji,
  • sporiji tempo sigurnosnih i bugfix nadogradnji.

Tipičan primjer je dugoročni B2B projekt za industrijsku vizualizaciju koji mora raditi u ugrađenom webviewu na starom Android uređaju u proizvodnoj hali. Takav tim često ne može mijenjati hardver ni OS, pa bira zadržavanje na WebGL1 i staroj verziji enginea. No time svjesno prihvaća slabije performanse, ograničen set efekata i sve teži proces integracije s novim alatima.

Odluka za WebGL1 u 2026. godini više nije samo odluka za širu kompatibilnost. To je odluka protiv budućih performansi, protiv sve bogatijeg PBR modela i protiv jednostavne integracije s WebGPU putem zajedničkog koda.

Novi projekti: WebGL2 kao baza, WebGPU kao fast-path

Za nove projekte poruka je izravna: bazni cilj je WebGL2, dok se WebGPU tretira kao brži, ali ne univerzalno dostupan backend. To ima nekoliko praktičnih posljedica za planiranje arhitekture:

  • Shader kod se piše tako da je prenosiv između WebGL2 i WebGPU varijante, često kroz apstrakcijski sloj ili zajednički izvor (npr. GLSL + automatski prijevod u WGSL).
  • Asset pipeline mora podržavati različite formate tekstura i kompresije, s fallbackovima za WebGL2 i optimalnim varijantama za WebGPU.
  • Memory layout i organizacija podataka planiraju se tako da iskorištavaju WebGL2 mogućnosti (UBO, instancing), ali bez oslanjanja na isključivo WebGPU značajke.

Razlika u performansama na modernom hardveru može biti višestruka u korist WebGPU-a: stabilniji frame pacing, niži CPU overhead i bolja paralelizacija. Ipak, većina web igara i interaktivnih 3D iskustava i dalje isporučuje WebGL2 kao zadani put, jer pokrivenost publike još uvijek nije na razini gdje bi WebGPU mogao biti jedini cilj.

Tipičan deployment scenarij danas izgleda ovako: aplikacija na startu detektira podršku za WebGPU. Ako je dostupna, koristi ga kao primarni backend za rendering. Ako nije, prelazi na WebGL2 bez promjene logike igre, uz minimalne razlike u vizualnoj kvaliteti ili post-processing lancu.

Gaussian splatting, PBR i napredni pipelineovi

Jedan od razloga zašto stariji engine buildovi brzo zastarijevaju su novi rendering pipelineovi koji se pojavljuju gotovo svake godine. Gaussian splatting za prikaz točkastih oblaka, napredne varijante PBR-a s boljim modelima indirektnog osvjetljenja i hibridni pristupi rasterizaciji i ray-tracingu sve se češće pojavljuju prvo u WebGL2/WebGPU kombinacijama.

Primjer: implementacija Gaussian splattinga na WebGL1 zahtijevala bi složene workarounde, ograničen broj točaka i agresivne kompromise u kvaliteti. Na WebGL2 i WebGPU isti algoritam može koristiti instanciranje, više render targeta i učinkovitije memorijske pristupe, što omogućuje prikaz gusto naseljenih oblaka točaka uz prihvatljiv FPS i stabilan frame pacing.

PlayCanvas, kao i drugi industrijski enginei, želi da takve tehnike budu dio standardne ponude enginea, a ne eksperimentalni dodatak. To je moguće tek kada se može računati na WebGL2 značajke kao minimum.

Realna ograničenja starijih preglednika u 2026.

Prelazak na ES2020 + WebGL2 kao minimum jasno osvjetljava gdje su stvarne granice starijih preglednika. To nisu samo manjak određenog WebGL ekstenzije ili nedostatak WebGPU-a, već cijeli skup ograničenja:

  • sporiji i manje optimiziran JavaScript JIT kompilator,
  • nedostatak modernih API-ja za rad s binarnim podacima i memorijom,
  • nestabilan ili nepredvidljiv garbage collector pod opterećenjem,
  • zastarjeli sigurnosni model, što otežava korištenje novih web standarda.

Za 3D web aplikacije to znači više micro-stuttera, lošiji frame pacing i veći rizik od padova performansi pri većem broju draw callova ili kompleksnijim shaderima. U praksi, developeri se sve teže mogu osloniti na to da će takvi preglednici pružiti iskustvo koje je prihvatljivo za igre, edukativne simulacije ili B2B konfiguratore.

Stoga se sve više timova odlučuje na jasnu segmentaciju publike: moderni preglednici dobivaju punu verziju WebGL2/WebGPU iskustva, dok stariji uređaji ili webviewi dobivaju pojednostavljenu varijantu, ili uopće ne dobivaju 3D verziju, već statičke rendere ili 2D prikaze.

Polyfill ili tehnički dug: neugodan izbor

Za developere koji još održavaju projekte na starim mobilnim preglednicima ili ugrađenim webviewima, izbor je sve češće binaran: agresivni polyfill ili svjestan tehnički dug. Polyfill pristup pokušava zakrpati nedostatke preglednika slojem JavaScript emulacije, no to dolazi uz cijenu povećanog bundlea, duljeg učitavanja i dodatnog CPU opterećenja.

Suprotno tome, prihvaćanje tehničkog duga znači ostanak na starijoj verziji enginea, odricanje od novih značajki i planiranje buduće migracije koja će s vremenom postajati sve skuplja. PlayCanvasov potez samo ubrzava trenutak u kojem će takve odluke postati neizbježne.

Šira slika: gdje je crta modernog 3D weba u 2026.

PlayCanvas nije usamljeni slučaj. Sličan trend vidljiv je i u drugim engineima i bibliotekama: WebGL1 se polako, ali sigurno, gura u „legacy” zonu. WebGL2 ostaje radni konj za masovno dostupne 3D web aplikacije, dok WebGPU preuzima ulogu brzog traka za korisnike na najnovijim preglednicima i uređajima.

Za širu WebGL zajednicu to znači jasnije definiranu hijerarhiju:

  • WebGPU – premium iskustvo i maksimalne performanse na modernom hardveru,
  • WebGL2 – standardni cilj i baza za većinu igara i interaktivnih aplikacija,
  • WebGL1 – naslijeđeni sloj za specifične niše i zastarjele platforme.

Prelazak PlayCanvasa na ES2020 + WebGL2 kao minimum nije samo tehnička odluka jednog enginea. To je jasan pokazatelj gdje se u 2026. godini povlači crta između modernog i zaostalog 3D weba. Tko želi ostati na modernoj strani te crte, morat će prilagoditi ne samo rendering pipeline, nego i cijeli razvojni i distribucijski model svojih web 3D projekata.

Natrag na vrh