2021.10.25.1351 - Upgraded LNL protocol, Steam Voice, deleting cloud variables

Neos VR

Welcome to the metaverse! A shared social universe where both casual users and creators coexist. Play and explore with your friends, collaborate with your coworkers or grab powerful building tools and create something new right inside VR.

Hello everyone, got a new build for you with a bunch of important changes and additions! Notably the LiteNetLib library used for network transport has been upgraded to the latest version from source (+ a few tiny modifications). Originally we were using fork from 2016 with a large number of our modifications, but those are no longer necessary as the official version implements the optimizations and bugfixes that Neos needed. A very important improvement is that the library also merges smaller packets into a bigger one now and has a number of other improvements, which should significantly help decrease the occurrence of desync due to queued packets. Big thanks to @Shifty | Quality Control Lead, @Epsilion, @聖なる人 (Holy), @BlueBoyBlitz, @epicEaston197, @rampa_3 (UTC +1, DST UTC +2), @Turk, @Komdog, @Vegasx, @Beaned, scribbz, @Blaze, @Snooper, @Max | Mentor | Moderator and other @Danger Tester's for testing it out to make sure there's no serious issues and to get some initial reports of improvements! Neos now also supports Steam Voice as audio input! If you like to play over Steam Link (e.g. streaming on your phone) this lets you use your phone's microphone in Neos hassle free! We've also finally added a command to delete cloud variables to make everyone less anxious about making some for testing and added ability to opt out of NCR transactions (on top of KFC). Also there's a bugfix for some MMC winner badges not showing up and few more badges! [h2]New Features:[/h2] - Added MMC21 helper badges (requested by @Medra) - Added ability to delete cloud variable definitions -- /deleteUserVar -- /deleteGroupVar -- Note that deletion is scheduled and will occur no soon than after 30 minutes. The variarble will be marked for deletion and not usable during this. This is to allow any caches and other systems to expire before deletion starts -- Note that this also clears any values stored on everyone's accounts for this variable! - Added ability to opt out from NCR transactions (requested by @Karel | CEO) -- Send /ncrOptOut to the Neos bot in Neos -- To opt back in, send /ncrOptIn -- IMPORTANT: If you opt out, any Patreon NCR rewards you would've gotten while opted in will be lost and never minted in the first place. - Added Steam Voice audio input driver -- This uses the Steam Voice API to get audio data. This is particularly useful when using Steam Link for remote play (e.g. on your phone) as it will use your phone's microphone -- It's not recommended to use this otherwise though, as it adds extra latency over direct microphone access - Neos will automatically switch to Steam Voice audio input device when Steam Remote Play is active and back to original when it deactivates -- This will be later reworked to be more robust and flexible with Setting profiles - Added "Queued Messages" User statistics & LogiX node (under Users) -- This provides an indicator of how many networking messages representing world state changed are currently in the queue (queued packets) that works regardless of the protocol or protocol version (currently works with both the new LNL and Steam Networking Sockets) -- Note that precise meaning and behavior can differ between protocols, but generally it should be 0 or near 0. Higher values mean that the user is lagging behind. [h2]Optimizations:[/h2] - Upgraded the LiteNetLib network protocol library from custom fork to the latest version from source -- This brings a large number (over 4-5 years) of official improvements and bugfixes to the library and makes it easier for us to stay up to date -- The library has also new network optimizations, which should significantly reduce the occurences for "queued packets", notably by merging lots of smaller packets into bigger ones (this should help mitigate/fix users desyncing on certain combinations of connections, poor networks or large distances, reported by @Crusher, @Lexevo, @Sveken, @pammematth, @Cyro and many others, GH #3039) -- Note that due to the significant amount of changes the protocol is not compatible with the old version and there are number of underling changes. Generally those should be hidden from you, unless you're accessing some internals. We will run relay and NAT punchthrough for the old one for a while, but at some point they will be taken down [h2]Tweaks:[/h2] - Increased disconnect timeout for the LNL (both client-side and for the relay) to reduce change of getting kicked out due to interminnent network issues (based on report by @DeliriousJax, GH #3244) - Merged Czech locale additions by @rampa_3 (UTC +1, DST UTC +2) [h2]Bugfixes:[/h2] - Fixed MMC21 Other: Tau badges not showing up (reported by @Medra) - Fixed ParticleSystems that uses Mesh particles randomly not initializing, resulting in the particles being invisible (particulaly when combined with WrapperMesh) - Fixed Downloaded/Uploaded Bytes statistics potentially being updated incorrectly in some cases (e.g. daylight savings shift) - Fixed alignment of floatQ field labels (reported by @art0007i, @sls, @Ukilop, GH #3229, fixed by @ProbablePrime | Docs) - Fixed ColorToHexCode not clamping the intensity properly, resulting in 1.0 being converted to FE instead of FF (reported by @marsmaantje, @Elektrospy and @jeana, GH #3249) [url=https://patreon.com/NeosVR][img]{STEAM_CLAN_IMAGE}/32580497/43ee030e042a238a46ad59cfcc19b99b0e154f35.png[/img][/url] [url=https://discord.gg/NeosVR][img]{STEAM_CLAN_IMAGE}/32580497/7742fb265ee608cb2a9a6b41aaa6138976155172.png[/img][/url] [url=https://twitch.tv/neosvr][img]{STEAM_CLAN_IMAGE}/32580497/dd2c2f6d46e45ccf4178688bcbe67f0adc0acf9a.png[/img][/url]