1. Neos VR
  2. News

Neos VR News

2020.10.12.499 - Deleted item/world recovery command, MMC badges, fixes & tweaks

Sorry for lack of builds this week! The MMC took most of my time and energy (plus I didn't want to break any of the entries in the middle of judging). Here are some gooddies though, mostly tweaks and bugfixes, but there are some new commands! Also getting the MMC badges ready, should be assigned to everyone soon!

You now have access to new function which will recover deleted items and worlds from Audit records for up to 30 days. If you accidentally delete some world or item, this can help you save it! Don't rely on it though, as the recovery might not be 100% right now and it will be tedious on your end to recover a lot of items. It's not a trash bin!

If you're owner of a Group, you can now also add and remove members by yourself, without having to ask team mebers to help using the commands!

For the commands - you send those as messages in-game to the Neos account. Use /echo to test this. You can also use the included AdminX tool in the Neos install, but omit the initial forward slash with those. Any command that as multiple arguments must wrap the arguments in quotes if they contain spaces.

[h2]New Features:[/h2]
- Added MMC badges designed by @Medra (they're not assigned to users yet, but once they are they will show up right away)
- Added new command /requestDeleteRecovery which will recover deleted items/worlds from your account
-- indicates how long ago in the history to search. Syntax is flexible, e.g. "1d", "2h", "30m", "1 hour 30 minutes" will all work. Default unit is day.
-- will filter out any items that don't contain given term anywhere in their path or name. Use * to recover everything
-- You will be emailed a ZIP file with special files representing items of your inventory in the same folder structure. To actually recover the item/world, you need to import those files into Neos and save them again. DO NOT CLEAR YOUR CACHE!
-- Maximum recovery time period is 30 days, after this the items are deleted permanently
-- This command can only be used by Patreon users directly. If you have an emergency and are not Patreon, contact a team member
-- THIS IS LAST RESORT EMERGENCY OPTION! Full recovery isn't 100% guaranteed, it relies on other asset files still being in the cloud or being in your cache to recover fully. Please take every step necessary to make sure you don't need to use it in the first place.

- Group admins can now add and remove members of their groups, without relying on the Neos team members
-- To add new member, use /addMember command (quota is in GB, use -1 for unlimited)
-- To remove member, use /removeMember

- Upgraded to SRAnipal Eye & Lip tracking SDK 1.3.0.9 (from 1.1.0.1) and added support for tracking tongue left/right and up/down movements (untested, I currently don't have the lip tracker, but should work)
- Added "Group" input to PlayOneShot node, which allows overriding which audio type group does the sound belong to (requested by @SmolCookie)
- All filter materials now have ZTest property
-- This allows always rendering them on top of everything, simplifying their use as screenspace filters
-- This includes Blur, Depth, Gamma, Grayscale, HSV, ChannelMatrix, Invert, LUT, Pixelate, Posterize, Refract and Threshold

[h2]Tweaks:[/h2]
- DataPresetValue with quaternion or matrix as type will now be initialized to identity value on creation
- Interaction laser will now show up to other users when it's used to scale hold objects, instead of just when it's holding one
- "Headless Sessions" category will now filter all occupied sessions that aren't headless, showing only occupied and empty headless sessions as a result (suggested by @Shifty | Quality Control Lead)
- Cloud Security improvements
- Upgraded to Unity 2019.4.12f1 from 2019.4.11f1

[h2]Bugfixes:[/h2]
- Added exception guards to initialization of platform connectors, to prevent Neos from locking up during startup due to errors (based on report by @フリック)
-- This will result in some loss of functionality (e.g. no clipboard support or Discord rich presence), but will allow rest of Neos to operate
- Fixed networking global announcer throwing an exception when the associated world isn't properly assigned (found in log from @Enverex)
- Fixed HSV filter material not wrapping the hue correctly, resulting in incorrect colors for values outside of the 0...1 range
- Added type validation to DataPresetValue to prevent crashes when creating it with invalid generic parameter (reported by @Blaze)
- Fixed Neos hanging due to null instance validators (e.g. when the associated permission component has been removed)
-- This fixes any world with corrupted/removed permissions when changing the world configuration (e.g. world reported by @Enverex and the MMC Iron Scavengers by @Ukilop)
- Fixed bright artifacts at the edges of Fog Box Volume when Gradient color more is used (discovered by @Turk, reported by @Shifty | Quality Control Lead)
- Fixed incorrect root bone detection when some of the bones are null, causing other behaviors to break (e.g. approximate bounds calculations) (reported by @Earthmark on behalf of @Nammi)
- Added workaround for race conditions in async streams, to prevent background exceptions and streams potentially getting corrupted as a result (based on report by @Shifty | Quality Control Lead, @Rukio and @Princess)
- Grabbable LogiX events are now scheduled after the grab/release fully finish, preventing the grabbable from getting messed up due to being released in the middle of the grab event (based on report by @Turk)

Metaverse Maker Competition 2020 Winners Announced!

This week has concluded the judging of the Metaverse Maker Competition (MMC) entries and we finally have our winners! We went through all 81 submissions from about 201 participants. Determining the winners was no easy task, because of the overwhelming quality and creativity of all the entries!

Everyone should be proud of what you’ve accomplished, even if you haven’t placed, you have pushed the creative and technical bar of content in Neos miles ahead within last month and have given everyone tons to enjoy. Personally it took me almost 14 hours to go through every single submission for the first time and I enjoyed every second of it!

We have deliberated with the judges for over 9 hours to determine which entries to award, but even at the end of the process there are still many excellent entries that go unmentioned, simply because there's not enough places for them to fit.

I'll be publishing a video(s) of my own judging experience for every single entry to at least give everyone a small shout-out, you can see some of them for winners and honorary mentions below. But without further ado, here are the winners of MMC 2020!



[h2]MMC 2020 Ceremony stream[/h2]
If you missed the awards ceremony livestream, you can watch the archival footage here. We present all sponsors of the event, who have contributed to the total prize pool and invite every winner to receive their award.

We also visit all the winning worlds and talk with the creators about their process. The footage for this is included in the video for each winning entry below, followed by my (Frooxius) first impressions from the judging process.

[previewyoutube][/previewyoutube]

World

[h2]MMC Vibes Concept (1st place)[/h2]
[h3]By Team VibeZ (ArcticGamez, Chii, Elektrospy, HeyItsNate, QueenHidi, TheIndoorAussie, Princess, Rukio, Zyzyl, Lazhannya, Alex_From_Alaska, Beaned, Elektrospy, Jeana, SmolCookie, Toxic_Cookie)[/h3]
This beautiful hangout world has completely blown us away not only with its level of visual polish, but also level of interactivity. Not only it features day and night cycle, but many of the things are interactive. You can open the fridge, grab a soda (with dynamic liquid visual!), open it and drink it, you can grab meat and cook it, jump off the springboard into the river (with underwater effects and current that carries you away), sit on a swinging bench, cook s'mores and much more!

This world is definitely one to check out and explore, as all the little details make it feel more like a real place, rather than just a static map. We'd definitely love to see it developed further and optimized and inspire more interactive maps like this.

[previewyoutube][/previewyoutube]

[h2]Freeze Tag (2nd place)[/h2]
[h3]Beaned & Shorty0w0[/h3]
This fully fledged freeze tag game is a great world to take your friends to and play. You're randomly assigned as either runner or freezer. The game features three different maps (with player voting before the round starts), configurable rules and a fully fledged lobby to hang out, which also has a spectator view for players who aren't currently in the game.

Having fully fledged games like this in Neos brings great content for people to come back to and enjoy with their friends or even strangers and this one was one of many that were submitted as part of this contest and hopefully with many more to come in the future.

[previewyoutube][/previewyoutube]

[h2]Tobbs - The Tale of Two Worlds (3rd place)[/h2]
[h3]By Jax, Zane, Earthmark and Cautious Imber[/h3]
We believe this entry was among first of its kind in Neos as it is a full narrative experience, with voice acting and scripted story progression throughout. Not only that, but it was completely built from scratch for and within Neos, including all the models, textures, sounds and music.

Using Neos as a storytelling tool was one of the things we hoped to see and we hope that this entry is a spark of many more narrative experiences to come in the future.

[previewyoutube][/previewyoutube]

Avatar

[h2]NeoRoid Creator (1st place)[/h2]
[h3]By mohu_yan & orange[/h3]
In the NCC competition last year we saw the first in-game avatar creator/customizer, that lets players create a specific style of avatar without leaving the game. The NeoRoid Creator brings that concept to a whole new level of quality and customizability.

It allows you to create a stylish "Mii-esque" avatar not only by customizing different types and colors of hair, hands, clothes, eyes, mouth and other parts, but also by drawing directly onto the avatar with a brush, to create your own patterns and details. Different parts of the avatar can be moved and customized as well.

After hitting "Create" the texture and models are baked, producing a very efficient, but still very good looking avatar that you can use anywhere in Neos. As a cherry on top it lets you share your avatar by uploading it to the world itself and making it available as part of browsable gallery.

We've already seen many users running around in their own version of this avatar and making it theirs, both using the provided customization options and additional customizations with in-game tools. Being able to create such avatar so easily without leaving Neos is a huge help to the community and growth of Neos!

[previewyoutube][/previewyoutube]

[h2]MetaGoddess AV (2nd place)[/h2]
[h3]By PurpleJuice[/h3]
This mystical looking avatar was made completely from scratch for Neos by PurpleJuice, available to use and customize by any Neos user. It features a beautiful combination of sci-fi and mysterious design elements as well as great presentation world, that fits the rest of the style. It even has the Neos logo as part of its design. If you'd like to use this avatar, you can grab a copy directly in the world and customize it with the in-game building tools!

[previewyoutube][/previewyoutube]

[h2]Dynamic Avatar Animator (3rd place)[/h2]
[h3]By guheheP[/h3]
If you ever wanted to see how your avatar moves from the third person or needed to make an NPC animation, this tool can help you! It is a very simple to use avatar animator, you simply place the avatar on the pedestal, hit record and perform movements.

After recording you can play back your movements on the copy of the avatar, scrub around the timeline or even reverse it. We believe tools like thisi can be very useful for other creators as well to quickly record MOCAP for their own experiences.

[previewyoutube][/previewyoutube]

Other (Gadgets/Tools+)

[h2]Edge of Reality (1st place)[/h2]
[h3]By Ryuvi & Engi[/h3]
We have seen many different Multitools in Neos, but this one has completely blown us away with its level of polish and functionality. It combines both playful modes such as Bow, Sword and Pistol with a Multitool, each with its own subset of modes that can be easily switched between using its radial menu system.

The presentation of this multitool is also one of the most professional we have seen in Neos, with excellent audio-visual design both of the world and the tool itself. We definitely recommend checking it out if you haven't and we've already seen many users play with it in both public and private worlds, so it's been definitely popular with the community as well.

[previewyoutube][/previewyoutube]

[h2]Mogu-pani (2nd place)[/h2]
[h3]By GONT_3 & Komashiba[/h3]
If you love arcade games this one will be your favorite. It is a Whack-A-Mole game created completely from scratch for the competition. It has highly polished visuals, audio design and addictive gameplay, with a boss fight and high score system. You can pick from two difficulties and three BGM's.

Definitely give this one a try as this is the most polished arcade game made in Neos so far and we hope it inspires people to make many more!

[previewyoutube][/previewyoutube]

[h2]Lindermayer island (3rd place)[/h2]
[h3]By guillefix & A Monsoon of Babies [/h3]
We choose this entry because it shows more technical and geeky use of Neos, but in a form that's still approachable to regular users. It implements the L-systems inside of Neos, which allow simulating natural growth of patterns like plants or crystals and fractals.

Those are presented in form of seeds, which you can throw in the world and watch the plants or crystals grow right in front of you. While performance heavy during the growth phase, the finished plant is baked into a single mesh and can be efficiently used to decorate worlds.

The world also contains "Truth Mines", which contain explanations on how the system works as well as editable versions of the seeds, allowing anyone to experiment with the system and create their own patterns.

[previewyoutube][/previewyoutube]

Honorable Mentions


[h2]Eco[/h2]
[h3]By Anomalous, Dys & UltraYanto[/h3]
A very unique entry which implements the most complex NPC system inside of Neos yet, with collision avoidance and state system. You can watch a realtime simulation of small critters, who mine minerals and chop trees, carrying them back to the village. They will also actively avoid most obstacles put in their path, including player hands.

The world features in depth explanations on how the system works as well, serving as a good learning resource. We'd love to see this entry turned into something bigger, like a strategy game or serve as inspiration for more complex NPC's inside of Neos.

[previewyoutube][/previewyoutube]

[h2]Parkour Park Redux[/h2]
[h3]By MattyK, MrDanver, Lorgenz, Ravid Didsdale, Endy, H3BO3, Kal, Nammi, 3x1t_5yl3, Napo, Kulza, May, Cyro, ukilop, Enverex and Zane[/h3]
This massive map has several different parkour courses, which utilizes Neos' walking, jumping and climbing system in variety of creative ways. We were particularly blown away by the fact that the entire map was built with primitives inside of Neos by many different people from the community, utilizing Neos' collaborative nature. If you're into parkour and a good workout, this is definitely the place to visit!

[previewyoutube][/previewyoutube]

[h2]Reflections (WIP)[/h2]
[h3]By reddragon, jeff07734 and jaxonbat2821[/h3]
Despite being unfinished, this was one of the most mind-blowing experiences of the whole MMC. It is essentially an escape room built around mirrors and reflections. Two groups of players have to cooperate to solve puzzles using mirrors and portals in variety of different ways, often times involving differences between the reflected versions or interacting with the other group through a mirror.

We'd love to see this experience finished and polished after MMC, as it was definitely a strong contender for one of the three places. Escape Rooms can be very engaging social experiences, so we were really excited to see a first of its kind in Neos.

[previewyoutube][/previewyoutube]

[h2]常世 (tokoyo)[/h2]
[h3]By GAWAWA, mohu_yan and Jphonix[/h3]
This beautiful map works as a great calming hangout place, with a very cool presentation. We loved how the whole map first opens up with a beautiful animation and all the little details, like animated fountains or portals that allow crossing from one side to the other.

[previewyoutube][/previewyoutube]

[h2]Brainfuck PC[/h2]
[h3]By Psychopsyo and Goodvibes[/h3]
Another highlight of the more geeky/technical entries is a fully functional Brainfuck interpreter made in Neos. Not only is the implementation of a language interpreter in Neos impressive on its own right, but the presentation of the world puts the icing on the cake.

The computer setup wobbles whenever moved, complementing the silliness of the language, but it also contains a set of cards, explaining the syntax of the programming language as well as containing many different examples.

The interpreter either lets you step through the program slowly, watching its execution in realtime or run it faster, producing output on on the screen. If you like programming and/or esoteric programming languages, this is definitely a world to try.

[previewyoutube][/previewyoutube]

[h2]Gunnar0’s Throwing Knife[/h2]
[h3]By Gunnar0[/h3]
This world features a throwable knife with a cool particle effect, as well as bunch of accessories that you can place on your avatar, including a holster and a launching apparatus. The knife itself can be quite fun to play with, as hitting a person will launch them upwards upon explosion.

[previewyoutube][/previewyoutube]

[h2]DiscordViewer[/h2]
[h3]By Dante[/h3]
Since the introduction of WebSockets into Neos we've seen variety of different tools and entries, both in MMC and outside. We choose to highlight this one in particular thanks to its usefulness to the community.

Our official Discord is important meeting place to the community outside of Neos itself and this tool lets you view all of the channels fully in-game. You can even place it onto your dash Home screen as a facet and it also contains instructions on how to set it up for your own Discord server.

[previewyoutube][/previewyoutube]

[h2]Hot Potato[/h2]
[h3]By mcham3 and GalexY[/h3]
Made in only 24 hours this is a surprisingly polished and addictive game. You simply have to pass a glowing orb (representing the hot potato) to another player before time runs out. The last player with the hot potato will loose the game. This can be quite fun to play in bigger groups of people, so invite your friends!

[previewyoutube][/previewyoutube]

[h2]Iron Scavengers[/h2]
[h3]By Ukilop, Earthmark, Archonim, QueenHidi, Dawky and Ryuvi[/h3]
This entry was one the technically most impressive games we've seen. It requires multiple players, as each user controls a different part of a mech, including steering, crafting, collecting materials from running belt and controlling the engine.

The game can become quite frantic, as the mech runs on the surface and picks up various materials, which can be used for fuel, crafting broken parts or sold. We'd love to see this more polished and expanded, as games that utilize multiple players to cooperate towards a common goal can be lots of fun for both existing and new players.

[previewyoutube][/previewyoutube]

[h2]Blueberry Smoothie Club[/h2]
[h3]By Enverex, Napo[/h3]
This world is one of the most polished club worlds we've seen given its size. The whole map has an expansive feel to it, featuring a nice outer area, as well as multiple levels inside and a small secluded area on the roof. We loved many of the small details, such us subtle real-time reflections in the glass windows and various animated materials and effect.

[previewyoutube][/previewyoutube]

[h2]Werewolf V0.2[/h2]
[h3]By KierDran and Electronus97[/h3]
While this is mainly a social game of intrigues and deception, trying to figure out who is a villager, werewolf, doctor and the seer, it is surprisingly technically impressive as well. The experience generates a card for each user by silently taking their picture when game starts and puts each player into a unique room based on their role each night.

During the day part, everyone is brought back together to deliberate on which user to hang as a potential werewolf. Once the user is eliminated, they become invisible to everyone else and can watch the rest of the game.

While most of the fun comes from the social interactions and trying to figure out who is who, the interactivity gives the whole experience a solid structure and makes it easy to follow the rules. We'd definitely recommend giving this one a try, you'll nee at least 7 players, but the more you get the more fun its gets!

[previewyoutube][/previewyoutube]

[h2]What's next?[/h2]
Neos' development has taken a bit of a backseat this week, as most of our energy and focus went into judging and deliberating and announcing the MMC entries (big thanks to Medra who has organized the whole competition and made sure it runs as smooth as possible!), but now with that (mostly) over, we're going to continue work on optimizations.

We'd like to give one last thanks to everyone who participated! The level of creativity, uniqueness and technical skill that everyone has shown has been absolutely incredible and has brought lots of new content for everyone to enjoy. The future of the metaverse and collaborative creativity is definitely bright thanks to you!

2020.10.5.476 - Fixed Smooth POV camera entering user's head, Inspector matrices

Pushing another smaller build to get some tweaks and bugfixes out of the way. Notably the Interactive Camera getting into your head should now definitely be fixed! Inspectors now also properly show matrix types. Made a bunch of other smaller fixes and improvements as well.

Compatible with previous build.

[h2]Tweaks:[/h2]
- Inspector now generates correct UI for matrix types (reported by @3x1t_5tyl3)
- Following generic components will now have default values initialized to identity for quaternions and matrices (based on report by @Earthmark and @H3BO3)
-- ValueField
-- DynamicValueVariable
- Context menu for equipping tool by clicking on it is now localizable
- Finger photo camera now works even if spawning objects is not allowed in the world. It won't spawn the photo in the world, but simply store it to the typical screenshot locations (based on report by @Alex from Alaska)
- Finger photo camera will now fetch the captured file from database on background thread, preventing unnecessary stutter due to waiting on IO

- Avatar Anchor context menu actions are now localizable
-- Existing instances are auto-upgraded only if they haven't changed the text
- Context menu "Cancel" option is now localized
- CommonAvatarBuilder will no longer wait until user's head is above 80 cm above the floor to spawn cloud avatar, since the user height estimation has been removed
-- This fixes cloud avatars not auto-spawning for full body users who are laying down (reported by @Shifty | Quality Control Lead)

[h2]Bugfixes:[/h2]
- Fixed Interactive Camera lagging a frame behind in some cases, causing it to enter user's head on movement (reported by @ProbablePrime, @Shifty | Quality Control Lead, @LeonClement, @Hayden (PolyLogiX Studio), @Nexulan | Community Manager and many others)
- Fixed Dynamic Value/Reference Variable Driver not updating the driven field/reference when it's changed (reported by @Earthmark)

More optimizations improving performance, MMC coming to end, 17 languages

Hello, and welcome back to the Neos Weekly Update!

This week we have a few topics to cover, from the MMC coming to an end, more optimizations, audio bug mitigations, and new Neos translations. We went through a chunk of MMC entries on the official livestream, if you missed it, you can watch the recording below!

So far we’ve heard a lot of positive feedback from you on being able to maintain a stable framerate even in sessions with over 20 people and unoptimized avatars! There are many more optimizations to come and we strive to keep moving that number higher and higher.



We fit as many people as we could into a single session!

[h2]Metaverse Maker’s Competition coming to an end![/h2]
The MMC has come to a close, and currently the submissions are being voted on! As of currently writing this post, community voting is still underway so if you haven’t voted on your favorite MMC submissions, now’s your chance!

Once the community votes are submitted, the Judges will start viewing submissions from the 4th to the 8th, and after they will cast their votes. There are 79 entries, and 201 participants, so this will be a massive undertaking since community turnout was so amazing!

Frooxius, 0utsider and Medra will be Judging alongside Kent Bye and Jak from Disrupt, who have graciously agreed to participate in judging the submissions. We’re honored to have them with us during this event, thanks guys!

[h2]Optimizing the blendshape impact of your avatars[/h2]
One of the major performance related optimizations this week was a group of functions for optimizing skinned meshes, typically used for full body avatars. One common way that many avatars can waste performance are blendshapes, particularly when blendshapes affect only a small portion (like the face), but the avatar is a single skinned mesh.

In such cases, the blendshapes for the rest of the body are zero, but they still have to be all recalculated with every change. For geometry dense avatars this can be very wasteful. From our tests the actual affected geometry of a 50K vertex avatar can be around 2000-5000 vertices. This means that every time the face blendshapes update, over 45K vertices are wastefully recomputed with no actual difference.

To help remedy this, there is now a new option called “Separate parts of mesh unaffected by blendshapes”. This will automatically split up your mesh into triangles that are affected by blendshapes and ones that are not. For geometry dense avatars this can provide a significant performance boost.

However adding extra mesh adds its own performance cost, so whether this is a good optimization to make will depend on a few factors. Particularly on the absolute number of vertices that are unaffected by the blendshapes.

If it’s in the range of dozens of thousands, it’s generally a good optimization to make. If most of the mesh is affected by blendshapes (e.g. blend shapes that change the body type) or overall the avatar is low poly, it’s better to leave it as is. You can test the impact by spawning multiple copies of the avatar in an empty world and comparing performance.

[h3]To optimize your avatar we recommend following steps:[/h3]
  • First if possible, bake all the separate meshes into a single one first. If you don’t change outfits often, it can be worth having a separate copy of your avatar for edits and then a baked optimized version for social use.
  • If not, using the new option “Merge submeshes with the same material” can help reduce draw calls if you’re using the same material for multiple parts of the avatar.
  • Run the “Separate parts of mesh unaffected by blendshapes” on the resulting mesh(es). If the resulting unaffected part has a lot of geometry, keep this version.

To help you with making more changes and tweaks, we’ve also added other mesh processing tools in-game. For example you can now split skinned mesh into multiple meshes based on the material or strip empty bones from mesh data.

[previewyoutube][/previewyoutube]
WARNING: Has loud music on!

You can also use a new “Proxy” method for updating the bounding box of your mesh from another mesh. For example if you run into issues with a small separate chunk of your avatar de-rendering, you can configure it to use bounds of a bigger mesh. This option is very cheap as it doesn’t require any real time calculations, so it is even more performant than the FastDisjointRootApproximate method.

We hope that providing those quick to use optimization tools directly in-game will allow everyone to better optimize their content and avatars and help achieve better performance in worlds. We’re also looking into ways to automate this system to make the iteration process very quick and painless.

[h2]Hierarchy moved event system redesign[/h2]
Another notable optimization this week was the redesign of the system for propagating moved events through the hierarchy e.g. when a parent object moves, some child objects deeper in the hierarchy need to know about this, for example any objects with colliders on them.

Previously this system was coupled with other events, such as activation and deactivation and general changes. This caused movement events to be propagated into parts of hierarchy where it wasn’t necessary as well as parts of hierarchy that were disabled locally. The system would also have to go through all immediate children, even if only a few of them actually contain part of the hierarchy listening to the events.

The new system is built on the same framework created for the dynamic variables for notifying about hierarchy changes. This system pretty much solves all of the above problems. It comes at some small overhead and memory cost, but in most scenarios it comes significantly on top, by significantly reducing wasted cycles.

To help better utilize this system the general change events were fully decoupled from transform changes as well and components and LogiX now explicitly listen to moved events only when needed (e.g. for LogiX only when it’s locally active).

As a result a lot of wasted cycles are saved both in complex worlds and with avatars or items. Particularly when avatars have complex hierarchies that are active only for a particular user, those hierarchies will no longer need to listen on the events for other users.

While this subtly changes some of the behaviors, for the most part it remains the same. We have tested a range of items, avatars and worlds to make sure nothing is broken, but if you do find anything broken by the optimizations, please let us know!

[h2]Audio Bug mitigations, moving LogiX visuals and other optimizations[/h2]
One of the infamous problems affecting many users is the “audio bug”, causing stuttery audio after a long use or particularly impactful scenarios. Unfortunately the actual source of the problem is a bug in the Steam Audio Spatializer, so we can’t fix the underlying issue ourselves, but we have implemented a range of mitigations that should also help with overall performance.

In short, audio outputs that are part of disabled hierarchy will not allocate an audio source in the spatializer until they’re activated. The update loop will now also delay updating connectors if the world is currently in the background.

This fixes cases where actions in background worlds would cause the audio bug, due to the spawned audio sources being allocated even if not needed, but it skips many other unnecessary updates to audio-visual output as well.

Having unpacked LogiX should now also perform significantly better if the whole setup is moving in the world. Previously subtle numerical differences in the wire mesh parameters would constantly force the meshes to update, which in turn forces the colliders to update. This would cause heavy CPU utilization, sometimes completely overwhelming weaker machines and causing other things like the core UI to not update.

[h2]New Translations: Spanish, Russian, Estonian, Norweigan, Polish[/h2]
We’ve been receiving new translations by our community members to localize Neos in their languages. Neos is now available in 17 languages and 2 variants!

Skywind Kitsune has been working on Spanish, PineappleDreams on Estonian, REBORN on Norweigan, Art0007i on Polish, and GhostZ36 and BrotiwkA on Russian. Thank you for your continued help on making Neos available to speakers of your native languages!

Steam doesn't even allow us to list all of the supported languages!

[h2]Community Highlights[/h2]
[h3]We fit 32 people in The Roost![/h3]
Ark Gullwing’s The Roost has been mentioned in the community highlights before, but this weekend we fit 32 normal avatars onto the dancefloor with a tolerable framerate. It was a real pumped up night! We definitely can’t wait for the huge dance parties of Neos’s future!
[previewyoutube][/previewyoutube]

[h3]MMC Showcase Livestream - Part 1[/h3]
Nexulan and friends went through a lot of the MMC worlds this past Friday stream, showing off the many creations and submissions by competitors. It was quite a fun show, so check it out here if you missed the stream!

Because of the huge volume of the entries, we only covered part of them so far. Make sure to tune in for the next stream to see more!
[previewyoutube][/previewyoutube]

[h2]What’s Next?[/h2]
Our plan is to continue on with many optimizations to keep improving the overall performance of Neos. We’ll be likely refactoring the engine update loop system, to support more efficient and flexible bucketing and grouping of items, in order to enable things like variable rate updates, native asynchronous multithreaded updates and more efficient data based updates. It’ll also allow for marking certain components as constantly updated, to reduce overhead of tracking changes every frame.

Similarly we’ll also refactor the connector system, which pushes Neos changes to the Unity renderer, which now has significant amounts of overhead and investigate decoupling from the Neos’ update loop, to allow for better parallelization and in the future also complete process separation.

Currently the upgrade to BEPUv2 is halted due to a Unity JIT compiler bug. We’re waiting on bugfix to be backported from Unity 2020.1. We’d also like to upgrade to this version of Unity, but unfortunately this is blocked by another bug in the renderer when using single pass rendering. We have reported this bug to Unity and are waiting on a fix while we work on the other optimizations.

There are many more planned optimizations, if you’d like to check out details, we recommend looking at the #devlog channel on our official Discord and the official GitHub. We can’t wait to bring you more performance updates to make your Neos experience a lot more comfortable!

2020.10.4.1198 - Polish locale, SkinnedMesh error spam bugfix, minor changes

Sorry for a small build, I'm mostly busy making the weekly update today and will be judging the MMC entries after this. A few bugfixes that I didn't want to be held up (particularly because they can spam logs and degrade performance). Also Neos is now in Polish!

[h2]New Features:[/h2]
- ColliderUserTracker now has NumberOfUsersInside output (requested by @3x1t_5tyl3)
- Added Polish [pl] locale by @art0007i

[h2]Tweaks:[/h2]
- Merged Japanese, Chinese and Esperanto locale updates by @Melnus

[h2]Bugfixes:[/h2]
- Fixed respawned users not unregistering from the ColliderUserTracker (reported by @Turk)
-- This is technically a workaround fix, as it needs deeper refactoring of the physics engine events to fix the underlying problem (will be done as part of BEPUv2 upgrade)
- Fixed issue where missing bone metadata on a mesh would cause errors to be constantly logged in the background (reported by @H3BO3)