1. Neos VR
  2. News

Neos VR News

2020.12.5.1396 - Fixed dash randomly breaking, particularly for new users

Another small patch, should fix the dash randomly breaking for some users, particularly when running the Welcome Guide.

Compatible with current build, no need to update if you're not experiencing any issues.

[h2]Bugfixes:[/h2]
- Fixed regression, where deactivated Tweens would sometimes break the state of the datamodel due to being destroyed too early
-- This fixes the Dash randomly breaking (reported by @Zure melk through @Shifty | Quality Control Lead)
- Added exception guard to OnActivated/OnDeactivated events, to prevent errors in the event code from corrupting the state of the data model (based on above issue)

2020.12.5.608 - Fixed Contacts+ worlds not showing up in the world listing

Just a quick patch for an issue I noticed with Contacts+, the build is compatible with the previous one.

[h2]Tweaks:[/h2]
- Merged Japanese, Esperanto and Chinese new Contacts+ strings by @Melnus

[h2]Bugfixes:[/h2]
- Fixed Contacts+ sessions not showing up in the World browser

2020.12.5.585 - Contacts+ mode, VisemeAnalyzer bugfixes (improves performance)

Contacts+ mode is now here based on popular demand! Sorry the build is otherwise smaller, it took most of the engineering time to implement it in a secure way. It ensures that the person joining is actually a contact of the other users in the session, but also avoids API abuse which would let others easily scan your contacts list.

A few important bugfixes too, particularly for VisemeAnalyzer randomly dropping back to local calculation (particularly on Headless servers), causing significant increase in CPU usage.

[h2]New Features:[/h2]
- Added Contacts+ (Contacts of Contacts) session access mode (requested by @Turk, @GearBell, @Zane, @DAWKY, @RoxyBoxxy, @Enverex, @DeliriousJax and many others before (I didn't keep a list, sorry :frowning: )))
-- This allows anyone to join the session, as long as any of their contacts are in the session as well
-- The implementation is designed to be minimally revealing about user's contacts, preventing abuse of the internal API that would allow someone to reconstruct another user's contact list
-- Internal enum name is "FriendsOfFriends" (e.g. for headless command)

[h2]Tweaks:[/h2]
- Add/remove member commands now accept the group ID (G-something) in addition to the group name (based on feedback by @Karel | CEO)
- Updated version number of the VoiceFacetPreset to ensure it upgrades to the new functionality for all users (reported by @Shifty | Quality Control Lead)
- Added 5 second delay between video load retry attempts when it fails
- When importing files/URL's, the input strings are now trimmed to avoid import errors due to extra spaces

- Merged Esperanto locale additions and tweaks by @yellowcrash10
- Merged Polish locale additions by @art0007i
- Merged German locale additions and tweaks by @Bluigi
- Merged Japanese locale tweaks by @Aesc

[h2]Bugfixes:[/h2]
- Tween will automatically finalize itself if the hierarchy it's on is deactivated
-- This should fix tiny badges as (re-)reported by @H3BO3, @Ukilop and @Shifty | Quality Control Lead
- Fixed VisemeAnalyzer switching to local analysis randomly when on a headless server or when a Linux user is present
-- This will help reduce CPU load and fix Linux users not seeing certain user's visemes (based on report by @Shifty | Quality Control Lead and @Hawk)
- Fixed Linux users not having their visemes computed locally and instead streaming "empty" visemes to other users
- Fixed video load retry-attempts not working when a playback engine is enforced, either implicitly or explicitly (based on a report by @Enverex)

2020.12.4.68 - Major cloud SDK upgrade and many bugfixes (inc. asset variants)

Sorry for a smaller build, I ended up going another rabbit hole investigating an issue in the cloud yesterday, that ended up with upgrading the whole cloud infrastructure to new Azure Storage SDK, moving away from the deprecated v11 to new v12 version. This was a major change as the API's aren't compatible, so I had to adjust a lot of existing code, but as bonus the cloud API should now be snappier and use fewer resources, as well as have access to latest features.

During the process I also discovered some long-standing bugs and pathological behavior which are now fixed. One of them that started this had to do with the asset variant system, which resulted in a flood of duplicate asset computation requests (it got to up to 8 million in the queue), which pretty much resulted in the whole system griding down and not processing much (it used to try 6 times to get a valid task and then the processor would wait 5 seconds. Since most of them were invalid, this made it go really REALLY slow).

The queue is now being processed rapidly (it's down to 2.7 million), you might still experience some delays with some assets not being processed and loading in original uncompressed versions, but I think it'll clear up within a day or two. The new system also has measures to prevent this from happening again and clearing any duplicate tasks significantly faster.

This build is compatible with previous one.

[h2]Tweaks:[/h2]
- Added new world category icons by @Coffee | Programmer
- Upgraded Azure storage & table SDK's to the new v12, moving away from the deprecated v11 API and reworked the cloud code onto this new API
-- This should provide some performance benefits for the cloud as well as get the latest bugfixes and features for future development
-- This is also major upgrade as a lot of code had to be adjusted. I have tested things thoroughly before pushing this fully live, but please watch out for any cloud weirdness
- Switched cloud queue message encoding to UTF-8 from Base64 with the new SDK, improving the cloud performance and reducing bandwidth/storage use
- Optimized cloud record preprocessing to reduce overall internal traffic with unecessarily frequent queue processing extensions
- Added a mechanism to prevent flood of duplicate asset variant tasks in the queue in the cloud, causing delays before assets actually get processed and wasting cloud performance
- AdminX now enforces UTF-8 encoding for the console input/output, fixing cases where non-ASCII characters would be displayed/processed incorrectly (based on report from @Karel | CEO)
- Removed MMC world category
- Upgraded to Unity 2019.4.16f1 (from 2019.4.15f1)

- Merged Swedish locale additions by @Swingly
- Merged Russian locale additions by @Shadow Panther [RU/EN, UTC+3]
- Merged Japanese, Esperanto and Chinese locale additions by @Melnus
- Merged Czech locale additions by @rampa_3 (UTC +1, DST UTC +2)
- Merged Korean locale additions by @MirPASEC

[h2]Bugfiixes:[/h2]
- Fixed asset variant processing falling severely behind when there's a flood of duplicate or invalid entries, causing the processing queue to grow faster than it's processeed, despite barely any assets being actually processsed
- Fixed asset variant system requesting invalid metadata type for Cubemaps when a variant is requested, but metadata isn't present
- Fixed cloud dependency removal tokens not being scheduled properly, causing some data not being validated or cleaned up
-- This is mostly internal bugfix, as the issue is compensated by other failsafe subsystems, but this should reduce some unecessary load and errors in cloud processing
- Fixed cloud queue system not deleting processed tasks from the queue properly due to task extension, causing a lot of unecessary reprocessing to occur
- Added generic argument validation to ButtonValueShift to prevent instantiating wrong type and causing crash (reported by @Komdog)

2020.12.2.583 - HapticVolumes VR controller support, connection reliability fix

The new haptic framework now supports regular VR controllers as well! You can use the HapticVolumes to trigger haptics on user's controllers and to experiment with how the system works without needing a haptic suit. I've added a quick setting to disable the haptics as well in case you don't like that kind of feedback, more fine-grained control will come in the future.

The bHaptics integration driver has received some important additions and bugfixes too, you can now use Pain, Temperature and Vibration sensations too, it will interpret them into different vibrations (I tried to use something that made most sense, but might change/tweak over time). In the future when there's hardware that can actually simulate something closer it'll be able to use this information automatically, so I encourage you to use the right type of sensation where applicable!

This build also has a bunch of important usability tweaks and bugfixes. Importantly connecting to users and headless servers should be more reliable now when custom session ID is used or when the connection need to fall back on the Relay. Let me know if you still encounter some trouble!

[h2]New Features:[/h2]
- bHaptics integration driver now supports the Pain, Temperature and Vibration sensations instead of just Force
-- Each one has a unique function to make them somewhat distinct (these are subject to potential change), but only the most intense one at given moment will be used
-- Note that temperature is interpreted as difference from "ambient" in Celsius/Kelvin (e.g. -20 will be understood as -20° colder than ambient)
- Haptic Volumes are now integrated with SteamVR and Oculus controllers as well, supporting all sensations
-- Force and Vibration will map most directly, Pain and Temperature have a simulated sensation since the controllers only support vibrations
- Added "Haptic Feedback" setting, which allows to disable haptic feedback from Haptic Volumes (any kind, controllers and bHaptics vest)
-- More detailed settings will come in the future (per person, environmental, UI and such)
- Added ControllerHapticPointMapper, which will link up a controller haptic point
-- You can use this on your avatar if you want to replace the default mapping, simply set the Priorty above 0 so it will override the default one

[h2]Tweaks:[/h2]
- When muted, the voice mode facet allows to simply select another voice mode to disable the mute, rather than having to click the mute button again, reducing some user confusion (based on feedback by @Coffee | Programmer and others)
-- The mute button can still be simply clicked agian to restore the previous voice mode
- Improved security of NAT punchthrough system
- SessionOrbsController will now hide all session orbs while the Welcome Guide is active, to prevent new users accidentally joining worlds (based on report by @Shifty | Quality Control Lead)
- Minted NCR amount will now equal to the actual dollar value of the pledge even if it doesn't match a perk, but only if the pledge is made in USD. Other currencies will match the claimed perk
- Tweaked the intensity of Oculus Touch haptic feedback with the native driver

- Merged Polish locale updates by @art0007i
- Merged Russian locale updates by @Shadow Panther [RU/EN, UTC+3]
- Merged British English locale additions by @CyberZott and atomicwave
- Tweaked autosave interval label to be more consistent (suggested by @yellowcrash10)

[h2]Bugfixes:[/h2]
- Fixed NAT punchthrough not working when a custom session ID is used and the world restarts before the old session information expires (based on a report by @Enverex)
- Added NAT connection retry logic to the relay server, which should fix cases where the connection fails to establish when falling back on the relay (reported by @Aegis_Wolf | Art Director and @Shifty | Quality Control Lead)
- Fixed exceptions in the cloud backend when asset variant worker requests a job and there isn't one
- Fixed incorrect condition when collecting ReflectionProbes causing inactive reflection probes to be processed even when not enabled (reported by @Zyzyl)
- Fixed ReflectionProbes on inactive parts of the hierarchy failing to bake (reported by @Zyzyl)
- Fixed Light Source Wizard title randomly switching between locales when mutliple users are present (reported by @Raith)
- Fixed bHaptics integration driver degrading in performance over time and causing the haptics to interminently stop
- Fixed in-game Neos bot not processing commands with a single quote as an argument or missing end quote
- Fixed Patreon update system breaking on accounts that were previously awarded extra storage (e.g. through MMC)
- Fixed Patreon pledges that are higher than the perk they claimed getting an incorrect reward that's equal to the extra amount (e.g. $25 pledge would first award $24 reward, then $1 one, as reported by @June)
-- If your account was affected by this, contact me and I'll correct the info so it gets the right rewards
-- Awarded NCR amounts were unaffected