Welcome to the Developer Update for 16 March 2023! This is the eighth Developer Update of 2023.
Today’s thumbnail features Gumball Lounge 3.0, a massive world by screamingcolor. Their name certainly gives ample warning!
If you’d like to catch up, you can read our previous Developer Update from March 9.
We’re Hiring!
While we’ve always got our Careers page stocked up with positions we’re looking to fill, we’ve recently added a few new ones!
If you’d like to join our amazing team and help build VRChat, check it out! We’re a fully remote company that hires worldwide and offer a ton of great benefits.
We’ve hired quite often out of our community (oh hey, myself included) and a lot of our unique strengths come from that. If you want to contribute and help develop VRChat, apply!
SDK Email Authentication
Last October, we introduced email verification! Over time, we’ve enabled it for all registered VRChat account users who are not using two-factor authentication.
Currently, SDK logins do not trigger email authentication. However, this is going to change soon!
Once SDK Email Authentication is enabled, if you log into the SDK, you may be prompted to check your email for a login code. Of course, this doesn’t happen if you have 2FA enabled already. Kudos to you for being mindful of account security! We expect this change to occur within the next month or two, and we’ll warn you via Dev Updates and a Discord post when we enable it.
Here’s the issue we’re wrestling with: lots of people still use very old SDKs. This is bad for multiple reasons, but it’s bad here because older SDKs cannot properly handle the email authentication process.
Once we enable SDK Email Authentication, creators will need to either update their SDK to the latest version, or enable 2FA.
As a reminder, new projects can get the newest SDK by creating them with the Creator Companion, manually installing one of our VCC Packages, or using a template project.
Old projects can be migrated with the Creator Companion.
If, for some reason, you cannot update your SDK, enable 2FA on your account. You will never receive email authentication requests if you have 2FA enabled! If your SDK is so old that it doesn’t even support 2FA-- BTW, that’d mean your SDK is four years out of date– we cannot help you. Please update your project.
SDK2 will not receive an update to support email authentication, as it is deprecated. Either upgrade your project to SDK3, or enable 2FA.
Avatars For Everyone Jam
We’re doing an avatar jam! Check out our latest blog post to learn more about the Avatars for Everyone Jam.
Our “default avatars” have been around for quite a while, and we’d like to give avatar authors an opportunity to show off their skills. If you submit an avatar to this jam and follow the guidelines, there’s a really good chance your avatar will be featured in the Default avatar row! The authors of winning submissions will receive a year of VRChat Plus, for good measure!
We’ve recently extended the deadline by a week due to some feedback from creators saying that the timeline was too short. We agree, so we extended it a week!
Again, check out the blog post for more info, rules, guidelines, the submission method, and more.
Patches! No, not the Naxx boss, WHY’D YOU BLOW BLOODLUST NOOOO
Since we released 2023.1.2, we’ve dropped a few patches! If you need to catch up, here’s the patchnotes:
VRChat 2023.1.2p1
VRChat 2023.1.2p2
VRChat 2023.1.2p3
These mostly addressed issues with the original 2023.1.2 release. At this point, most issues reported with 2023.1.2 are fixed! Yay!
Ongoing Development
SDK Warning Improvements
A couple additional SDK warnings are going in!
Firstly, on Quest, we’re having projects update their default texture compression from ETC (the Unity default) to ASTC (supported on newer hardware). Meta has suggested this for the Quest since back in the Oculus days, and obviously we’re set on more modern hardware.
RGB textures will see an 11% VRAM size reduction from this change, and RGBA textures will see a 56% VRAM size reduction, under normal quality settings. It’s also more flexible - there’s 6 different quality settings (block sizes) you can set in the per-format override settings, letting you fine-tune your texture quality wherever you need. If you hit an edge case where ETC/ETC2 looks better, it’s possible to override on a per-texture basis using the Android texture import override settings.
Notably, ASTC doesn’t support Crunch, which brings us neatly to the second point:
We’re going to start suggesting against using crunched textures from now on!
Please note that we’ve gotten your feedback pretty quick! I’ve made a post a bit down below that clarifies that we’re going to circle back around on this recommendation and make some changes. Thank you for the feedback!
Crunched textures are good at one particular thing – they reduce the on-disk size, by performing lossy (often very lossy) compression.
Once you load them into memory, they’re decompressed into their native format and streamed into the GPU as needed. Here’s the thing though: avatars and worlds are already compressed on disk in VRChat!
The only thing you affect with Crunch is the download/upload size, and generally, not by that much. Decompressing large crunched textures can cause some hitching too since it has to be decompressed when your avatar loads.
Unity doesn’t help with this very much at all – the editor window normally displays in-VRAM texture size in the preview… unless you crunch the texture, in which it’ll display the on-disk size. Not confusing at all! We suspect this is why a lot of people incorrectly think crunch saves on VRAM.
If you’re certain you want to fine-tune your upload size though, we won’t stop you. You can turn off the warnings in the Settings pane:
Turning this option on will tell the SDK not to nag you about crunched textures. In that case, we highly suggest double-checking how much your download size is really impacted!
Avatar Pedestal Changes
In an upcoming update, the internal GameObject hierarchy of avatar pedestals will be added to the Udon access blacklist. Scripts trying to access it will break!
We know some creators were using avatar pedestals for dynamic images. Please switch to using our first-party solution instead.
Update on Data Containers / Udon JSON
We last mentioned DataList
and DataDictionary
back on February 9! Here’s a quick update on their progress:
It’s getting close, and has the potential of being included in the next update! However, we’ve run into some hiccups with the public variable inspector UI, so we may launch initially without that function.
Of course, the structures and types themselves (as well as the JSON parser) will still be usable within Udon script, so creators will still be able to employ them. You just won’t have access to that nice UI until a bit later on.
Update on Udon UI
We last mentioned the Udon UI system back on February 16 and now we’ve got some updates and a VIDEO!
We’ve been focusing on implementing the Unity Editor Window to build Udon UI layouts easily.
The outliner for the Editor Window is nearing functional completion! You can add or remove blocks, drag and drop to organize and edit them with Markdown support.
This enables very quick and easy creation and editing of the Udon UI layout. Coming up is the implementation of the Udon UI and World interactivity!
Conclusion
That’s all for this week! Lots of work continues on Group updates, and we’re hoping to get something out to you soon to show all the cool new features for Groups. Just because we don’t talk about it here doesn’t mean we aren’t working on it-- it just means things aren’t in a state where we’re ready to show things off and get you hyped up. Except… you should get hyped up anyways because they’re really cool things.
See you next time!