Unreal Engine 5 ported to WebGPU
twitter.com
twitter.com
As someone who knows very little about this space, is this just a hack for fun that nobody would actually use, or does it herald the possibility of an entirely new set of games that run in the browser?
IIUC the reason HTML5 was dropped in the first place was for the big render re-work that went on during 4.27 + 5.0. So now seems like a good time to add modern WebGPU support back.
Do have to ask, isn't your business model for "theimmersiveweb" built around this WebGPU capability? Providing that tech to others or making your site a marketplace for web games?
What's the benefit to your company in this relationship?
99.99% just a fun hack. Running an engine like this in the browser is massively overkill in the sense that most of the code & features are going to be dead weight you don't actually want. You can't actually run any UE5 game in this way that actually benefits from UE5's advancements over UE4 or Unity or whatever, the assets are too big. You're not exactly going to stream 10GB+ of models & textures on-demand. You could build such a thing, but the engagement you're asking from the user at that point certainly justifies just being a native app and providing a much better experience.
That said, Unreal Engine is also pushing into the non-AAA gaming domain, and it's possible a smaller, easily run indie game ends up using the engine and still sees value in a browser-based deployment. Something on the scale of Vampire Survivors ( https://poncle.itch.io/vampire-survivors ), although that's using Unity but in theory there's no reason you couldn't do the same with UE5.
The browser is still pretty bad for deploying large applications like a UE5 game, so your guess is as good as mine when it comes to 'will people be able to actually ship this way'.
> The browser is still pretty bad for deploying large applications like a UE5 game
Please wait, downloading 80gb of content....don't refresh page or clear browser cache...ever
I do appreciate the achievement here, but it's not something I personally would want.Realistically even the toughest AAA games can be tuned to few GBs of code and the assets required for the initial area. I remember on UE4 you could compile the entire executable with some small game in waaaay less than a GB without particular difficulty. You can use this approach and stream the rest later.
This is especially doable if you keep the game state and menus/UI in the html + JS and avoid that part of UE entirely, so you just launch whatever is your map and game and those states.
WebAssembly is working on adding support for 64 bit address space though.
Seems likely to be a hack that nobody would use.
I doubt they are exporting pure JS interacting with WebGPU, but no idea really
https://codelabs.developers.google.com/your-first-webgpu-app
Games are already pushing 100GB when you download them up-front, with redundant streaming it's not hard to imagine that piling up to over a TB of bandwidth for one user.
Of course, if you combine bad networks, lack of storage capacity and large projects, you can be sitting around a while, or may not have the best experience. Keep in mind though, that the browsers don't usually evict data from the cache unless you've used up the storage quota, the system is under storage pressure, or the origin has not been accessed in a while. According to them
I know this is super early, but I wonder how useful this is considering how bloated UE5 projects tends to be. I'd be interested in seeing what a slimmed down demo looks like.
On the other hand the strong sandbox of the web is highly desirable for games which are often closed source and made with low security standards. Native sandboxing may be better for performance but won't be as reliable which is a tradeoff that it is nice to have the option for.
The fact that this game can potentially be archived and playable on any device in the future is also very nice.
There's no sure-fire way to cache large amounts of data in a browser, all you can do is pray that the browser decides to keep it. The more data you load, the less likely that is.
It's a problem that has to be solved at the standards level, adding some kind of "persistent data" permission, but it's been a known issue for years and there's been no progress.
If the browser reports that the request was granted that storage should not be cleared except by explicit user request.
Let's see how they'll do content streaming / no loadtimes
The latest active plugin for C#/.NET is UnrealSharp (https://github.com/UnrealSharp/UnrealSharp). They have an active Discord: https://discord.gg/HQuJUYFxeV
I've done it a few times, and I've learned to steer well clear of either creating or relying on such bindings if at all possible.
https://m.youtube.com/watch?v=UBgam9XUHs0
But a person will want to read the documentation as well to answer the herp derp why not just c# drool gurgle questions.