With WASM and WebGL being mature technologies, I'm not sure why there aren't more video games published this way. For really big games with lots of assets, having those assets in local storage makes sense. But I wouldn't mind if a game "installer" is just your browser asking "This game wants to use up to 20 GB of local disc space. Is that okay?"
Technical reasons I know of:
- Support from major engines is still bad: Unreal Engine does not have web exports. Godot 4 does not support them when using C#. That only leaves Unity.
- While WebGL is mature, it's based on openGL es3, which is an ancient api/shading language with limited features. If you were previously targeting vulkan/dx12, now you have to restrict your feature set or find (costly) workarounds to make webgl support happen
- WebGPU could be a better fit, but support is still not ubiquitous (Firefox, Linux or older phones are especially bad)
- SDL_GPU (SDL3) still has no WebGPU backend
Unreal Engine 5 does support the web, albeit as a third party implementation (my company)
We spent the last several years building out a WebGPU RHI for UE5, along with tooling to make games load fast using asset streaming, while using less memory. We were recently featured by Gamesbeat.
You can read more about it below or check out our website:
https://gamesbeat.com/simplystream-unlocks-web-compatibility...
https://simplystream.com/
I’ve always wondered a bit about the ssr side of these things a bit. Something like time crisis where the main video is pre-rendered and streamed but the interactive elements (enemies, explosions) are superimposed in front on the client. Feels like you could make a very low bandwidth experience (around the same cost as a YouTube video plus some assets?).
But why not just render everything 3D? GPUs are more than good enough and it will look more consistent.
The fact the site died after being posted here might be an indication why :-P.
For what purpose, though? Why saddle yourself with the overhead & restrictions of WASM and the limitations of WebGL (or even WebGPU), just to run in a browser? The typical answer for running in a browser is the fast deployment, but if the user has to sit through a 20GB download anyway, then what's the point? Just to avoid needing an install wizard? And in case you aren't aware, 20GB would actually be a relatively small game. 60GB+ is quite common now (the more recent call of duties tip the scales at 140GB)
> but if the user has to sit through a 20GB download anyway, then what's the point?
They don't have to unless the game makes them. Assets can be streamed in. This Half Life 2 port streams in each chapter so you are playing without having the entire game downloaded. World of Warcraft is over 100GB but you can start playing with only a fraction complete and it will continue downloading as you play
Half Life 2 is only ~4-6gb and was designed to run on video cards with 128-512mb of RAM, and it didn't even do texture streaming so you just need to have those assets at load time. Sure you can stream those low res textures at an acceptable rate. That's wholly different from streaming the textures for a modern game, which are at least an order of magnitude larger, and are expecting to stream in from NVME/SSD storage.
This website is also a proof of concept, it doesn't care if people are actually able to play it consistently. It can afford to just say "anyone with less than 100mbps internet gets a shitty experience, lol don't care" and nobody will complain, because it's a free tech demo. Not an actual product trying to sell copies and make money. And certainly not anything remotely modern, we are talking about an over 20 year old game here. Technology did, in fact, get a little bit faster and more capable over those last 20 years, you know
Performance of the game is much more important than download time
Its really common to sacrifice disk space for runtime perf
For gamers 100GB is not a big deal, CoD is like 200GB and its extremely popular
I disagree with your assertion that games running in a browser are not performant enough. WebAssembly being ~45% slower than native sounds scary, sure, but that's basically what you can expect from using any non-native language anyway. So if Unity is performant enough where all C# code has similar overhead then it should all be fine.
Plus not all games are AAA.
Because you'd be missing the market and monetization layer that Steam so conveniently provides.
Tech people underestimate how much gamers care about performance
You see that a lot with all the game streaming platforms like Stadia
There's a whole mainstream culture of custom building PCs to maximize performance/value and YT channels focused on game perf like digital foundry are super popular
Remember that any time the browser gets more free-reign on the PC it will be 0.01% used in good faith and 99.99% either unintentionally misused or maliciously abused to make computers worse for people who don't know how to diagnose these things.
Just look at web notifications. Maybe it's nice that you can get email alerts on your PC without having to install an app, but now every news site and sketchy clickfarm on the planet is trying to send notifications to get grandma back on their website, showing her ads.
Users are so accustomed to popups and cookie banners and what have you, they've been trained to click "sure, accept, whatever, just let me use the website" so permissions prompts may as well not exist.
I do not like the effort to make webapps as capable as desktop apps. Visiting a website and hitting "accept" which could easily be done by accident should not be offering anywhere near the level of trust and permissions to my system as installing an application. The friction of installing an application is not an inconvenience, it's a feature.