cBournhonesque / lightyear

A networking library to make multiplayer games for the Bevy game engine
https://cbournhonesque.github.io/lightyear/book
Apache License 2.0
335 stars 32 forks source link

Web Usability #253

Open simbleau opened 3 months ago

simbleau commented 3 months ago

Hey there!

I find myself in the market for a WebTransport capable crate, in support of an MMO that targets wasm32 architecture.

I'm unsure if there is a crate that's already production ready, what the state of lightyear is, etc.

Regardless, there are a few issues I'm finding that are crucial to me switching from WebRtc (bevy_rtc) to a WebTransport solution... maybe more to come.

Filing this issue as the umbrella for necessary issues before I consider this experimentally ready:

Is there any way to prioritize these issues, or help lead the community (or myself) into helping?

Nul-led commented 3 months ago

The main issue with using WT in prod is that WT in itself isn't really production ready yet :/

Primary issue here is of course the Webkit implementation as well as the (still) unstable Webtransport API.

Edit: If you still plan on using WT in production and the performance isn't a critical aspect, then running a parallel Websocket transport as fallback would be a good idea.

simbleau commented 3 months ago

The main issue with using WT in prod is that WT in itself isn't really production ready yet :/

Ah yeah, I was meaning "experimentally ready". My game still needs a year or two to cook, and I'm also bottlenecked on WebGPU, which isn't stable in Safari or Firefox.

I'm OK using an unstable transport, however, it needs to be stable enough I'm not in a bind where I can't even run or test my game. I still need to work on it.

cBournhonesque commented 3 months ago

I would say the main blocker is https://github.com/cBournhonesque/lightyear/issues/144

The other ones are somewhat minor:

But i don't really know what to do for issue 144, and I don't really have the expertise for it

simbleau commented 3 months ago

I'll help give #144 a nudge, as I agree that is the biggest blocker. For the time being I could circumnavigate #251 by testing on Chrome only (I already do, given that I need WebGPU), but I need a serious answer for how #144 would be solved longterm with a short-term workaround. It's too annoying to need a new window anytime I need to test multiplayer.