Even though WebGL and WebGL2 are implementations of the GLES2 and GLES3 APIs you usually can't just take a non-trivial GLES2/3 code base and expect it to work without hickups on WebGL, what's going on under the hood is just too different.
It is definitely true though that you need to employ old-school batching tricks to get any sort of performance out of WebGL, but that's also not surprising, because WebGL is only a GL by name, internally it works entirely different (for instance on Windows, WebGL implementations are backed by D3D).
No wonder studios rather bet on streaming than a tech that will never deliver.
That's also why it was such a security nightmare. It was a complete escape from the browser sandbox.
Hence why the gaming industry is focusing on streaming instead.
Mobile, handhelds and cloud streaming, is where the indie party is going on.
I bet WebGPU is going to be equally the same, ShaderToy and 3D commerce visualisation tools will be updated for it, and that is it.
Specially given that it made the same mistake of WebGL, lagging 10 years behind native APIs.
(NaCl was better in those areas, but required to stamp out one binary for each target CPU architecture)
A video game of this caliber you are discussing is typically entitled to:
- have a dowload and installation process that might span over say 20min or more
- load slowly, because it needs to push a ton of assets through
- demand a ton of resources such CPU, GPU, threads, memory etc. to achieve amazing graphics and simulation
- being the primary foreground process or possibly the only one
None of these things apply to the typical web. Quite the contrary: most web devs would get fired or ridiculed if they demanded these resources.
So I assume that browsers optimize for the typical usage, which is hypertext.
As it stands, everyone is going with cloud streaming instead.
Still uses a browser.
I still find it amazing that this game never made with this in mind, the web tech at the time on the OnePlus One was nowhere near able to run this in browser and it works perfectly today!
What blows my mind with this technology is little things: porting the game to the browser gave me a half-working mobile port basically for free (had to implement touch input handling in Neverball). On top of that, thanks to SDL2 and the game controller web API, I can attach a game controller to my phone and play the game in the browser on my phone with a game controller. It just seems unreal that this combination of technology just works.