-
Notifications
You must be signed in to change notification settings - Fork 123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Explain the network protocol and its current limitations #150
Comments
I am interested in helping with this. @philpax |
Happy to brainstorm about client-side prediction and server reconciliation :) I've written a bit about this. |
Go for it! Fork the repo, add a Markdown file to docs/src, and add a link to it under the Once you get started, I'll assign the issue to you 👌 |
Awesome! I've seen your articles before and they're great - I've shared them with other people to help explain the intricacies of networking. We can't do any work on prediction until we have #6 - but I'll definitely catch up with you and others once we get there 😄 |
Have you considered using WebRTC at first, for its ability to support UDP? Here is an implementation example of a javascript server & client: https://geckos.io/ |
For UDP on the web, geckos has a few problems that make it neat for small projects but unpractical at scale, notably requiring all the ports of a machine to be open, not working in docker/kubernetes... Instead, although support is still limited to chrome-based browsers, using WebTransport (based on QUIC) would likely be a better choice. Although there is no rust implementation yet, there is a C++ one: https://github.com/google/quiche |
Matchbox could potentially be used for UDP traffic over the web, but using WebTransport is likely preferable anyhow. I'm not sure if WT will work with pure QUIC (i.e. our existing Quinn), or if there's another layer that needs to be implemented first. More research is definitely needed in this area! |
The guide should have a document explaining the current state of the network protocol, what our next steps are, and what the current limitations are.
Here's a quick list of facts that can be used to write up a more complete document:
quinn
library as our communication protocol.wasm-bindgen
availability.8999
and the QUIC (UDP) port is9000
.Networked
attribute. Only the components markedNetworked
will be sent to the client.Networked
. This may have unintended ramifications in terms of cheating, especially for hostile clients.Networked
. This is something users have to opt into.The text was updated successfully, but these errors were encountered: