LNL window size setting testing #2438
Replies: 3 comments 9 replies
-
Hey! I think something might be wrong with the prerelease currently, I can only connect to others by Steam networking sockets. I have tried disabling Lan, preferring steam networking sockets (as a test), forcing a relay and then completely shutting down steam, all of which still causes me to use steam networking sockets without even trying LNL. When disabling steam I was not able to connect to any sessions my friends were hosting on the prerelease. I have also tried being the host, joining two different friends and each friend hosting their own session, all of us were on steam networking sockets and thus couldn't test this prerelease. This is the log when I had Steam disabled and thus couldn't connect at all: This log all I did was get invited to a friend's session while I had steam on, I connected via steam networking sockets:
Bredo's suggestion below fixed this, I was able to test by direct lnl connections and according to them the bridge seems to be down |
Beta Was this translation helpful? Give feedback.
-
After allowing friends to manually connect with Bredo's suggestion I was able to test this, we just kinda played in a grid space world with various gadgets and vehicles and we experienced no network weirdness besides when I was trying to do the entire bee movie^bee movie script every update tick- which was just to test something really intensive. For this test it was me hosting with two other friends that were in the same country. I even used a object that has driven and undriven dynamic variables that caused a sheer amount of corrections but given how close the two friends were however there was no desync and the session operated fine. We also tested at different window sizes on the fly, besides my own network not being able to handle it (which isn't special, I only have 9mb upload) nothing was wrong at all and the session stabilized afterwards. So overall in a regular session that was doing really heavy stuff for roughly a hour, I found no unexpected behavior- with the only disruptive behavior being my own network being horribly strained due to the bee movie script on a Update node. Only thing I did not test was uploading assets, perhaps others can do a more involved session that tests that. |
Beta Was this translation helpful? Give feedback.
-
Just a heads up, are there any more planned tests for this? Right now it seems that this change is mostly good. We can a big BoTC game, which seemed to work okay (other than the server dying at one point, but it's likely it ran out of RAM and after restart the game finished fine). And the other reports seem to be okay too. I'll need to use the |
Beta Was this translation helpful? Give feedback.
-
Hello everyone!
I've got another test for you! This is a potentially realtime networking breaking change, so I want to test it out first before pushing to main.
Build Version
TESTING HAS ENDED
What is being tested
Resonite session can suffer from a "packet queuing" issue, where an user falls behind in the session due to the packet transfer rate being too slow, particularly with high latency connections. This happens due to LNL library throughput decreasing dramatically with increasing latency between the users.
The throughput can be increased by increasing the window size - how many packets can be in flight at any given time. However this also risks destabilizing the connection by sending too many packets. There's no "one size fits all" solution.
To resolve this, I've been working on adding new capability to the LNL library which allows the window size to be adjusted dynamically, so it can adapt to the networking conditions.
This is the first part of that implementation. It allows the LNL window to be changed on the fly - however it won't change it automatically for you - instead it is made into a setting in Resonite's UI. Changing this setting changes the window size for all your connections immediately (unless you're the host).
Since this required some restructuring on how LNL handles sending and receiving packets, it's possible this has broken the library in some way - this is what I'd like to test at this stage and validate that those changes haven't broken the library.
We will NOT be testing effects of this change yet - e.g. which window sizes work well in what conditions - if this testing passes, we'll push this to main, so people can use this setting as a workaround when they queue, while we gather data to make the adjustments of this value fully automated.
How to test
prerelease
branch and make sure the build updates before you run itYou will need to test with multiple users since this specifically affects networking.
What NOT to test & report
If you find something that got broken
If you find that stuff works okay
Please report it too and include details - how many users, where is the host, where were users (if you know), how long did the session run for, what did you (roughly) do and such. This way we know things are working okay.
Are there bridges & relays for this test?
Just one running on one of my test machines. This should be sufficient for the validation test, once these changes are validated, we'll deploy new bridges & relays more globally.
If you end up connecting through the relay, you might not have best performance with this - however the goal of these changes is so you don't need to use the relay.
How long will testing go for?
With the nature of the changes, we expect the issues to become apparent relatively quickly, so unlikely more than a few days. Once we get a good feel that there's no breakage, this will get merged to main build and we'll continue to the next phase.
Beta Was this translation helpful? Give feedback.
All reactions