2020.4.17.1286 - Steam Networking Sockets support, New UI icons
New UI icons for hand menus and tools created by @Coffee! Also added support for the Steam Networking Sockets as a transmission protocol!
Unfortunately we hit a limitation, due to the protocol currently having broken bandwidth estimation and as such the old protocol is still preferred when connecting to worlds by default. You can however override the behavior and use the new one if you're experiencing any issues or want to utilize the benefits of the new one (e.g. avoiding queued packets). We'll have to wait for Valve to reimplement this before switching to it as the main one.
Also a bunch of bugfixes, tweaks and smaller additions as usual!
[h2]New Features:[/h2]
- Brand new hand menu & tool icons created by @Coffee! He has also adjusted the colorings of the menus to visually match the icons and give things more polished look. More icons to come!
- Added support for Steam Networking Sockets transmission protocol! (thanks to all @Danger Tester's for helping to test and fine tune this!)
-- This protocol has many benefits over the current one (LNL)
--- More robust and modern, which should significantly reduce queued packets issue with certain connections and transfers data more efficiently
--- Uses Valve's relay network, hiding user's IP address and reducing latency in some cases
--- Encrypted communication, improving security and privacy
-- WARNING: Currently it has one major downside though. The bandwidth estimation is broken, which means the library is set to a fixed bandwidth of 128 kB/second
--- As a result, initial world joins and P2P asset transfers are very slow.
--- Because of this issue, the old LNL protocol is preferred now.
--- If you are willing to accept this limitation, you can set Neos to prefer this protocol in Settings by checking "Prefer Steam Networking Sockets". This can be changed on the fly without restarting Neos, but you need to rejoin session to use another protocol
- Added "Fill Whole Arc" property to CircleAligner, which will make the start and end items match the start and end of arc (based on request by @BlaXun | Ingo)
- Added OnStartDrive/OnStopDrive to DrivePlayback node (added by @0utsider)
- Added OnTrigger forward impulse to Delay nodes (added by @0utsider)
- Added OnFail forward impulse to Write nodes (added by @0utsider)
[h2]Tweaks:[/h2]
- Disabled context menu items will now also have faded out sprite
- When joining session, Neos won't try to transmit stream data until the full initial sync is finished, lowering some initial networking load
- Update bucket and component enabled state changes now only run when the value actually changes, preventing wasting of performance when some other aspect changes (e.g. becoming driven)
- Upgraded Steamworks SDK to 1.48
- Upgraded to Unity 2019.3.10f1 (from 2019.3.9f1)
[h2]Bugfixes:[/h2]
- Removed debug log text from generating LogiX nodes (reported by @Hayden (PolyLogiX - ZyroDesign))
- Fixed ObjectGridAligner breaking when one of the target items is set to null (reported by @Syri)
- Fixed components not being moved to a new update order bucket when their update order is changed after instantiation (reported by @Coffee)
- Fixed dev tooltip not being able to select objects in some worlds (reported by @GearBell, @Hayden (PolyLogiX - ZyroDesign), @_Turk, @LeonClement and others)
-- This only wraps the error, there's still underlying issue causing this that needs to be addressed
- Fixed inspector field editors throwing exceptions when pressed when the target field is missing
- Fixed draggables (Slider, Joint and so on) set to DontDrive will no longer try to update on every user, causing lots of conflicts (reported by @Coffee)

Unfortunately we hit a limitation, due to the protocol currently having broken bandwidth estimation and as such the old protocol is still preferred when connecting to worlds by default. You can however override the behavior and use the new one if you're experiencing any issues or want to utilize the benefits of the new one (e.g. avoiding queued packets). We'll have to wait for Valve to reimplement this before switching to it as the main one.
Also a bunch of bugfixes, tweaks and smaller additions as usual!
[h2]New Features:[/h2]
- Brand new hand menu & tool icons created by @Coffee! He has also adjusted the colorings of the menus to visually match the icons and give things more polished look. More icons to come!
- Added support for Steam Networking Sockets transmission protocol! (thanks to all @Danger Tester's for helping to test and fine tune this!)
-- This protocol has many benefits over the current one (LNL)
--- More robust and modern, which should significantly reduce queued packets issue with certain connections and transfers data more efficiently
--- Uses Valve's relay network, hiding user's IP address and reducing latency in some cases
--- Encrypted communication, improving security and privacy
-- WARNING: Currently it has one major downside though. The bandwidth estimation is broken, which means the library is set to a fixed bandwidth of 128 kB/second
--- As a result, initial world joins and P2P asset transfers are very slow.
--- Because of this issue, the old LNL protocol is preferred now.
--- If you are willing to accept this limitation, you can set Neos to prefer this protocol in Settings by checking "Prefer Steam Networking Sockets". This can be changed on the fly without restarting Neos, but you need to rejoin session to use another protocol
- Added "Fill Whole Arc" property to CircleAligner, which will make the start and end items match the start and end of arc (based on request by @BlaXun | Ingo)
- Added OnStartDrive/OnStopDrive to DrivePlayback node (added by @0utsider)
- Added OnTrigger forward impulse to Delay nodes (added by @0utsider)
- Added OnFail forward impulse to Write nodes (added by @0utsider)
[h2]Tweaks:[/h2]
- Disabled context menu items will now also have faded out sprite
- When joining session, Neos won't try to transmit stream data until the full initial sync is finished, lowering some initial networking load
- Update bucket and component enabled state changes now only run when the value actually changes, preventing wasting of performance when some other aspect changes (e.g. becoming driven)
- Upgraded Steamworks SDK to 1.48
- Upgraded to Unity 2019.3.10f1 (from 2019.3.9f1)
[h2]Bugfixes:[/h2]
- Removed debug log text from generating LogiX nodes (reported by @Hayden (PolyLogiX - ZyroDesign))
- Fixed ObjectGridAligner breaking when one of the target items is set to null (reported by @Syri)
- Fixed components not being moved to a new update order bucket when their update order is changed after instantiation (reported by @Coffee)
- Fixed dev tooltip not being able to select objects in some worlds (reported by @GearBell, @Hayden (PolyLogiX - ZyroDesign), @_Turk, @LeonClement and others)
-- This only wraps the error, there's still underlying issue causing this that needs to be addressed
- Fixed inspector field editors throwing exceptions when pressed when the target field is missing
- Fixed draggables (Slider, Joint and so on) set to DontDrive will no longer try to update on every user, causing lots of conflicts (reported by @Coffee)


