1. Neos VR
  2. News

Neos VR News

2021.10.30.625 - Removed any token functionality from the build on Steam

Hello everyone!

We're pushing an emergency build based on request from Valve to make sure comply with their rules and guidelines, which at this time unfortunately means removing any token functionality from the build. We might not need to necessarily remove everything, but we're being proactive and removing everything we can as a first step - we can always refine this later.

The functionality is conditionally compiled out, so it's not present in the build at all.

You can also learn more about the situations here: https://wiki.neos.com/Neos_Credits/Steam_Changes

[h2]New Features:[/h2]
- Added TokensEnabled LogiX node
-- This provides whether tokens are supported by the user running the build
- Added TokensSupportedDriver component
-- This allows driving a bool depending whether the local user uses a build that supports the token functionality

[h2]Tweaks:[/h2]
- Removed any token related functionality (NCR/KFC/CDFT) from the Steam build on request from Valve
-- You cannot send NCR/KFC to contacts
-- You will receive a generic message when you receive NCR/KFC from user outside of the Steam, but it will not include any details
-- You cannot request deposit address or open withdrawal dialog
-- TipJar components will do nothing on interaction
-- CreditsStatus will not provide any information
-- The Tokens Facet will not display any information

Halloween Giveaway stream, Upgraded LNL protocol (less desync), Steam Voice

Hello everyone and welcome to another of our weekly updates!

With Halloween upon us, we have been preparing a special livestream for everyone, with some fun games where you can win some free space. Make sure you don't miss it this Sunday if you'd like some Neos spooks!

On the development side, we upgraded the LiteNetLib library from our custom fork to a new official version. This brings large number of official improvements to the network transport and with it significantly reduced chance of desync due to queued packets, particularly for users with poor connections and high latency, making it easier to enjoy intercontinental sessions.

The cloud variable system now allows you to delete any variables you have created as well, making it easier to reuse your quota and experiment with the system! Neos now also supports the Steam Voice API as audio input, making it easier to play with Steam Link / Steam Remote Play - if you stream Neos to your phone for example, you can now use your phone's microphone to talk.

We have been doing a number of refactoring under the hood as well in preparation for some future features and improved documentation. This has provided some small benefits on the surface - for example you can now use more of the world startup parameters in the graphical client that were previously headless only.

Another thing that we've been preparing in the background is a new developer podcast with Froox, talking about Neos' past, present and future, development experiences, our motivations, goals, vision and everything else around in a causal setting. We'll be doing a test run next week, see below for details!

Based on community feedback, we also added a way to completely opt out of NCR transactions in Neos (including NCR mints from Patreon). If you'd like to learn more, please read bellow.



[h2]Halloween livestream on 31st[/h2]
Our team has prepared a very special Halloween themed livestream for you on Sunday! We decorated our streamer house and we’ll be giving out some free Neos space for any participants in the Twitch chat, so make sure you join us on our official Twitch to not miss the chance and prepare for some spookiness!



[h2]Upgraded LNL protocol - reducing chances of desync[/h2]
As part of our continuous effort to automate building of our dependencies and move them to the Azure Pipelines, we took the opportunity to check which libraries we can update to the latest version from their source.

A notable case is the LiteNetLib - the library used for the network transport - actually moving binary data from one end to another. Until now, Neos has used a fork from 2016, with a number of heavy modifications and customizations to make it suitable for Neos.

Since most of those customizations and additions have been implemented officially since then, we have decided to switch to the latest official version and re-do a few of our customizations on top.

This process has been a bit of an ordeal due to a number of changes, but after public testing with our QC and Danger Tester groups, it’s now released to the public and live in the latest build of Neos on Steam!

Thanks to the number of official improvements to the library, notably a new mechanism that merges smaller packets into a bigger one, the general network performance has improved. If you experienced desync due to “queued packets” before, you should expect the situation to improve.

We have already gotten a number of positive reports, with people who previously regularly queued packets even in empty worlds, staying in sync even in bigger worlds now.

There are still likely going to be some issues in some cases and we’re collecting more information from users who reported issues. If you run into problems, please let us know on our GitHub!

[h2]Deleting Cloud Variables[/h2]
You can now delete cloud variables! This was one feature that we didn’t originally implement and delayed until later. With the VBLFC event and testing of LNL, we ended up implementing this, since we noticed that some users avoid using the cloud variables due to anxiety that they will run out or making very general ones so they can reuse them.

Hopefully this addition should make you more comfortable with using this feature and easier to manage them. To delete them, simply send the /deleteUserVar and /deleteGroupVar commands to the Neos bot.

Note that the deletion will take at least 30 minutes - the system waits a bit for all cached versions to expire. It also deletes any values that users have saved under that variable definition, so even if you recreate it, their values will be reset.

[h2]Steam Voice support for Steam Link[/h2]
If you like to play Neos remotely via Steam Link (for example streaming to your phone), you might enjoy this new feature. Neos now supports the Steam Voice API as an audio input device. When streaming via Steam Link, this will end up using the microphone of your streaming device (your phone mic for example), making it easy to communicate.

When Neos detects that Steam Link is active, it will currently automatically switch to this audio input device and then switch back. While this option works even without Steam Link, we recommend using the direct audio device, as it will provide lower latency.

[h2]Standalone Minecraft Importer[/h2]
We’ve been working on a number of projects in the background that aren’t very visible - notably refactoring parts of the codebase to make it easier to implement some future features and changes and keep the source easy to maintain.

Part of the rework was refactoring how the engine and headless actually runs. While this doesn’t change anything with the headless itself (at least for the moment) it allowed us to implement a quick tool based on our previous tool - a standalone Minecraft Importer!

This command line tool now ships with Neos and makes importing Minecraft worlds really easy. Simply launch it from the command line, passing it a path to your Minecraft world (or folder containing a number of worlds), provide login information and it’ll do everything else for you!

If the world has already been imported, it’ll update any changed chunks in the existing version and for ones that haven’t it creates and saves a new world to your account.

The code for this importer is quite simple, around 100 lines of code and it’s open source! If you’d like to check it out, you can see it on GitHub here.

[h2]NCR Opt Out[/h2]
Based on community feedback, we decided to add a way to opt out of NCR transactions and Patreon rewards. If you don’t want to receive any NCR transactions in Neos, including the NCR mint from Patreon support, you can send the /ncrOptOut command to the Neos bot (this is similar to /kfcOptOut which has been implemented for a while). If you’d like to use the in-game system again, you can always opt back in with the /ncrOptIn command.

Opting out will prevent you from receiving any NCR in Neos, including from the Patreon - you will still get other benefits, but the NCR will not be minted!

Our goal is to avoid forcing this feature to users who are not comfortable with it, regardless of their reasoning. However we’d like to ask everyone to take a moment and learn a bit more about NCR, its goals, implications, plans and environmental impact, as there’s a large amount of misinformation floating around: Environmental Impact And Sustainability

Notably Neos uses a hybrid model, where transactions in Neos are done off-chain and are no more impactful than a bank transaction or sending a Tweet.

[h2]Headset battery, tool & text editing improvements, small UI fixes[/h2]
Things have been a bit busy lately, but we’ve also made a number of smaller improvements here and there. For example you can now get headset battery status with LogiX (currently only works for SteamVR with applicable headsets), a number of tools now have an option whether to apply changes to the object root or direct hit.

We also improved text editing based on community feedback, making its behavior more consistent with typical software and adding support for a number of combinations for moving cursor or selection to word boundaries or beginnings and ends of lines, using combination of Ctrl, Shift and cursor.

We also pushed a few small fixes to the UI, notably fields and elements in the inspector not being aligned properly. This proved to be difficult, as we had to purchase a big ruler, import it into Neos, but because the inspector was misaligned, we couldn’t edit it easily. Thanks to our expanded team we managed to power through and make those small, but hopefully impactful fixes!

[h2]Virtual Reality University course gets a VR lab![/h2]
One of our long term users in academia has been doc. Ing. Mgr. Petr Klán, CSc., who has been using Neos to teach virtual reality for the last 2-3 years at the Czech technical university in Prague. Recently the course has gotten its proper VR lab, allowing the students to learn how to build worlds directly from within!

[previewyoutube][/previewyoutube]

[h2]Work in progress: Circuit Simulator[/h2]
If you’d like a little peek behind the scenes on more of our educational projects, we’ve released a showcase video for our circuit simulator. This is done as part of an educational project in Czech Republic to make education more engaging and intuitive, but it’s something we’d like to make available to the wider public. We are working on moving this to a different library for the base simulation on the side to achieve that.

[previewyoutube][/previewyoutube]

We believe that projects like this showcase the power of Neos - we can integrate functionality like this, while getting all the other functionality for “free” - ability to add custom scripting in-game, multi-user collaboration in real time, not having to reimplement common interaction methods and hardware support and full persistence - ability to save the whole thing into your inventory.

You can always see our latest progress in the #devlog channel on our official Discord. And as usual huge thanks for everyone supporting this platform and helping us grow it every day! We'll see you next week and we hope you'll have really fun Halloween!

2021.10.26.9 - Hotfix for LNL protocol regressions

Got another patch for two bugs that came up with the new LNL in the wild. Should fix people not being able to connect in some cases (this is actually regression due to our custom fork of LNL having a fix for this, but the official one not having one) and crashes in some cases due to unrealible packets being too big.

Compatible with previous, but update is recommended to avoid issues!

[h2]Bugfixes:[/h2]
- Fixed wrong version of LiteNetLib.dll file in the headless build preventing the headless from booting (reported by @Raith | Programmer and @Shadow Panther [RU/EN, UTC+3])
- Fixed headless not being able to start without login credentials
- Fixed regression causing users to randomly disconnect due to receiving WSAENETRESET network error (generally this is harmless) (reported by @ohzee through QC channel, @AshtonSparx and @Ba'Gamnan91, GH #3252)
- Fixed crash when unreliable messages exceed the maximum packet size (reported by @TheBasementNerd (she/her), HammyHams and @Shifty | Quality Control Lead, GH #3251)
-- E.g. with freshly joined users in combination with audio streaming in the world)
-- Note that the bugfix for this is currently not ideal and can potentially cause some drops and unecessary extra network usage, but the occurence should be generally low to cause problems in practice. Let us know if you notice new issues with audio streams (e.g. them lagging behind a lot or dropping severely)

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

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)

Metaverse Maker Contest 2021 Winners & Honorable Mentions (part 2 of 2)

Read part 1

If you haven't read the part 1 yet, you can find it here:
https://store.steampowered.com/news/app/740250/view/4626878047727213964

[h2]Avatar: Accessories[/h2]

[h3]1st place - Badge Maker (by yakiringo & Rabbuttz)[/h3]
Ever wanted to put a bunch of pin up buttons on your avatar's clothing? This world make it very easy to make them! Simply drop in a picture in a frame and press a button for a pin up button to pop out.

It also features a box with camera so you can easily take picture of yourself, an image crop tool for any other pictures and tool to make the buttons easily attachable.

[previewyoutube][/previewyoutube]


[h3]2nd place - Shop MrSB (by komashiba)[/h3]
If you like Shiba-themed accessories this place is for you! This cozy shop has water bottles, backpacks, developer and LogiX tooltips, hats and glasses for your avatar!



[h3]3rd place - MultiStaff (by Eventide)[/h3]
Multi-tools are one of the staples of Neos and everybody's approach to them is different. This one takes form of a magical staff that has a number of different modes, combining some useful tools with fun functions like teleporting or invisibility.



[h2]Avatar: Misc [/h2]

[h3]1st place - Figure generator - フィギュア制作機 (by Team orange)[/h3]
The Figure Generator has taken Neos by storm before MMC was even over. With this utility you can easily create a little figure of yourself. Simply press a button and strike a pose! You can even take one with multiple users at once.



[h3]2nd place - Rusty Exosuit (by Rustybot)[/h3]
The Rusty Exosuit features probably the most unique avatar mechanic we've seen to date. When wearing this avatar, you can hold grip and secondary and high five another user. This will transfer the head and hands over to the user, essentially combining two users into one.

While you float as disembodied voice around the target user, they can use your hands as a blaster or a thruster to move around and shoot other users around the world. By floating away from them you disengage the mode. As a very cute detail, the namebadge will also combine the usernames like "Frooxius and Raith" for example.



[h3]3rd place - 立ち絵生成機 Standing image generator (by υμβραν)[/h3]
This utility makes it easy to capture a cutout of your avatar. It has a few functions to adjust the resolution and camera options. Simply stand on the podium, make adjustments, press a button and a cutout pops out!



[h2]Other: TAU[/h2]

[h3]1st place - Traffic system - Showcase (by The Science Team)[/h3]
The Traffic System is one of the most technically impressive entries of the whole MMC21. With this system you can build and edit nav-meshes in the environment and then add agents to them, that will follow the created paths. It has lots of customization options for the pathing as well as the agents and number of fancy features like collision avoidance.

This entry embodies what game development is about - building your own development tools. The world documents the process, shows off a number of experiments (and issues) and potential applications. It is definitely worth checking out.

[previewyoutube][/previewyoutube]


[h3]2nd place - LKGP Quilt Camera (by υμβραν)[/h3]
If you've heard of the Looking Glass holographic display then this world might be of interest to you, but it is generally a cool utility to play with. Instead of tranditional image it captures a simple light field. This can be displayed as a hologram both on the device itself, but also in Neos - giving you photos not only with sense of depth, but also some parallex, allowing you to look around them in a limited range.



[h3]3rd place - Bitbot Multitool (by Rustybot)[/h3]
Another creative approach to multi-tools, which has a number of cool features. It features a pen, developer and LogiX tooltip, but the most interesting part is the material gun - it has a storage mechanism, allowing you to put it a number of material orbs to carry around for quick access.



[h3]Honorable mentions[/h3]
Blue Inspector by rhenium - Inspectors are another popular tool in Neos for customization and this one features a number of cool additions - from numbers of children in the hierarchy display, quick contextual options, to easy resizing and adding of more panels
Create New 3DModel Plus by MotoMaid - One part that we haven't seen customized much yet is the "Create New" dialog, which made this entry quite unique. It adds a number of procedural shapes to the menu as well as handy animated previews

[h2]Other: Misc[/h2]

[h3]1st place - CytraX Studios - The Novahawk (by CytraX)[/h3]
Vehicles are another popular topic in Neos, so it's no surprise that we saw a number of them this MMC. The Novahawk is the most polished out of them all, featuring not only nice presentaation, but good set of controls for both VR and desktop, as well number of deparments in the vehicle itself. We also appreciated the open nature - for example the world contains the original .blend files that you can easily export if you'd like to make some edits or build upon it.

[previewyoutube][/previewyoutube]



[h3]2nd place - Terraforming simulator (by good_neighbour)[/h3]
For any lovers of strategy games this is something to check out. In this game your task is to terraform a planet. You have a number of tools at your disposal, from a branching tree of infrastructure to supplying the planet with natural resources. It can be quite challenging to play, but gripping once you get into it. The game has surprising amount of depth into its mechanics. We think it could benefit from more visualizations, like graphs to shows the progression of the different resources over time.



[h3]3rd place - Mechanical KeyBoard (by Team MK)[/h3]
Neos is all about customization and custom keyboards are one of them. This entry took this concept even further. Similarly to how some people build their own mechanical keyboards for real, this one allows you to build out your own inside of Neos! Combining different bases, switches and keycaps, you can make a functional keyboard with unique sounds and behaviors by assembling it together inside of VR.



[h3]Honorable mentions[/h3]
DIY Tool by guheheP - this world/tool takes a very unique approach to building in Neos - instead of abstract tools, you use a saw and drill to build things together. It's a very fun approach to building inside of VR, one that makes the whole process a lot more physical.
Inside Neos by G59 - a beautiful piece of art created completely in Neos! It depitcs a Neos logo composed from Neos-related terms. Every single drawing is unique too - this world must've taken a lot of time and patience, so definitely check it out!


[h2]Meme[/h2]

[h3]1st place - The Sphere Detector (by Bunny team)[/h3]
With the murder timely death by old age of the Sphere Detector node a number of questions arose in the community - what is a sphere? This entry recaptures the glory days of being able to tell apart spheres from non-spheres and proves once more the power of community in Neos VR to build the tools they need for every day function.

[previewyoutube][/previewyoutube]


[h3]2nd place - Finger Universe (by Danyy59)[/h3]
Have you ever wondered what would the world be like if everything was a finger? Wonder no more, for in this world you'll explore such universe, collecting a full hand to open secret treasures of finger jokes.



[h3]3rd place - Cool Genius Stylish Spaghetti LogixTip (by MotoMaid)[/h3]
This custom LogiX tooltip allows you to literally embody spaghetti code and mentally scar anyone you encounter into organizing their code properly.



[h3]Honorable mentions[/h3]
Albert** - Team: Warp-Gate - "There is no reset button. You destroyed the universe." - it lies!