Developer Update - 23 February 2023

Welcome to the Developer Update for 23 February 2023! This is the sixth Developer Update of 2023.

Thank you to DAGINATSUKO for their gorgeous world Studio 11, featured in our thumbnail this week!! If you’re looking for a place for a professional avatar photoshoot (or just to hang with some buddies), this is a great spot. Please don’t touch the car.

If you’d like to catch up, you can read our previous Developer Update from February 16.

Creator Companion Reminder

We’re making our final preparations to the new “Web Creator Companion”, which uses tech that is much faster and easier to maintain, in addition to working across platforms! This version will replace the current VCC, which is a Unity application.

We’ve recently updated the SDK to 3.1.11, and as noted in previous Dev Updates, we have also removed the older UnityPackages. However, you can still download new VPM-compatible UnityPackages. These new UnityPackages extract into your Packages folder. These packages are meant to support users who cannot use the VCC due to platform or other limitations. They can only be used on new projects.

:warning: WARNING: These new UnityPackages CANNOT be used to upgrade non-VCC-migrated projects. They can ONLY be used on NEW projects. Importing one of these new UnityPackages to a project with the old non-VCC SDK will break that project.

In those cases, please migrate your project using the VCC instead.

As previously announced, SDK2 UnityPackages are no longer available for download. At a future date (undetermined, but on the scale of “months away”), SDK2 worlds and avatars will no longer be permitted for upload. We will support existing SDK2 content within VRChat for as long as possible.

If you are maintaining an SDK2 world project and want to migrate, CyanLaser maintains CyanTrigger, which provides an SDK2-like interface for Udon. He also has created a SDK2 migrator, which can auto-convert SDK2 to SDK3, including complicated assets like the Standard Assets package that was supported with SDK2.

Unity Version Upload Blocking

We are now actively blocking uploads from Unity versions older than 2019. This has affected an extremely low number of creators!

Users will see a message in their Unity console if their SDK is too old and they’ve been blocked:

Any users still on a version before 2019 should follow the below upgrade guides, and work their way up to the Currently Supported Unity Version.

Ongoing Development

VRChat SDK 3.11.1 Release

We released SDK 3.11.1 yesterday! It includes a ton of new features, improvements, a few fixes, and marks a critical step in our continued upgrade of the SDK and its framework.

Grab the latest update via the Creator Companion! Simply open up the VCC and hit “Update” on the Base and Worlds/Avatar SDKs. Done!

Let’s talk about some of the new features:

Udon can now load remote images! We talked about this feature in previous Dev Updates. You can use this feature in a lot of ways, like creating a dynamic art gallery that changes from day to day, or loading in posters that update for your latest event without having to update your world.

Similarly, Udon can now load remote strings! We also talked about this feature in past dev updates. For some examples, you could show event schedules, high-score listings, or change the weather in a world based on real-world data!

Udon can now play back MIDI data! You can use MIDI files to play back sequences instead of having to rely on inputting it yourself! You can see some examples of this in previous dev updates, too.

There are also a couple of other new features:

Udon can now access the simulation time of players, Game objects with networking components, and OnDeserialization with the newly introduced DeserializationResult Using these will help a ton with accommodating for latency as well as a ton of other things. (honestly, this is a little out of my wheelhouse but i’ve been assured its really cool and useful)

There are also a few other improvements we’ve made to the SDK, such as improving the Editor UI for VRCUrlInputFields to help catch common errors early on.

Image Loader Example

Now that creators can download remote strings and images in their worlds, we expect to see all sorts of fun prefabs and implementations. We’ve created an example world with a Picture Frame that loads remote images and captions and displays them as a slideshow!

The project is hosted on GitHub, and includes a GitHub Action which publishes your images and captions to a free website whenever you upload new versions! This makes it easy to swap out the content without needing to re-upload your world.

Download Prioritization

Download Prioritization is on the way!

Avatars will now load in series, ordered first by distance and second by size. The total time it’ll take to load all the avatars will stay the same (same amount of data, after all) but the average time will drop enormously – whether you’re on a slow connection or a fast one. Loading bars have been tweaked a bit to show you the ‘total download before this one loads’ so it doesn’t look like nearby avatars are stuck.

In testing with a fast connection, this results in half the avatars in view loading before you even fade in! Priority range can be configured as well, defaulting to 20 meters (roughly the entryway size in most indoor worlds, e.g. those avatars will load first before the next batch begins).

Optionally, this system can also be configured to prioritize manually-shown avatars and friends first.

We’ll have some more previews of this next week, it still has a few bugs being worked out so a video didn’t work out this week. :S

Group Unblocking

We now have a screen for unblocking a group that was blocked via an invite! You can find it on the VRChat Home site:

We’re also going to be implementing a quick button to block a group without getting an invite first, but waiting on some server-side work for that. Probably happening next week, most likely!

Conclusion

That’s all for this week! It’s a little thin, as we’ve been working on a bunch of things that aren’t quite ready yet. You’ll see more next week, probably. :thinking:

We’re also working on a ton of other things that aren’t in a show-off state yet, like new Groups features and REDACTED, and REDACTED, and you can’t forget about REDACTED

We’ll see you next week

22 Likes

Any plan to increase the size of url images. And why is there a 5 second delay ? good update outside of that. It is something that will help for a lot of stuff.

6 Likes

Wow!

I’m really impressed by the changes the team brought to avatar loading. This always bugged me when I’d travel and have to use slow hotel WiFi. Now, it’ll still take forever to load them all, but I’ll see those people around me much sooner!

:heart:

Thank you for this :slight_smile:

6 Likes

No plans to increase resolution as far as I’m aware of. 2K is quite a lot!

There’s a 5 second delay to help prevent abuse cases.

6 Likes

image

2 Likes

I think the shader for your arrow broke.

7 Likes

Magenta best colour!
Oh I replied to the wrong post

1 Like

String loading is gonna be fun to play around with, quite a lot you could do with that.

Got fewer ideas with remote images, but you could definitely make some impractical things with it, like a, by default, textureless world.

Do have offtopic question though, why is there no direct setRotation(), when you can do the same with TeleportTo, only reason for why it isn’t ideal is that it causes one hitch when you look down and pass over about 30, the same with looking up to about 330.

okie dokie.

3 Likes

i can’t wait for the REDACTED feature :scream:

3 Likes

would be great if we also get the ability to limit the amount of concurrent downloads. depending on how slow someones connection is that could help to avoid disconnects or lag

unless it is already made as downloading them as one by one. can’t fully read it out.

1 Like

There are 5 second loading limit, so I are atlasing multiple posters and publish them as video.
Quest 2 users can load up to 4000x4000 pixels for video, but is this difficult with images?

1 Like

Hopefully REDACTED is Avatar Scaling…? :crossed_fingers:

Would help with load times not having to change avatars and server storage space not having to upload duplicate models at different scales ¯_(ツ)_/¯

I know you’ve said that it is being worked on but I’m kind of worried about not hearing anything about it for a while!

4 Likes

I cant wait for REDACTED!!! Honestly its waaaay overdue!

2 Likes

I’ve been working on a live MIDI performance world, and I’ve been really excited to see the MIDI changes and ESPECIALLY the new networking timestamp stuff.
I’m trying to sync my MIDI events that I play on my local machine to other players in the instance, but I’m rubbing up against the limitations of Udon networking…
MIDI notes aren’t a lot of data; what are the odds we could see a proper synchronous “send this packet to everybody, RIGHT NOW” feature for udon, but limited to a few bytes?

I’d KILL for a “broadcast small UDP packet to everyone in the world” feature, and a way to subscribe my Udon stuff to incoming ones, but I don’t foresee that happening.

I’m trying to get the timing of the notes consistent on remote clients too, but right now it seems like I’d have to add a considerable delay (on the order of a second or three) to get the remote clients to play them back with the right timing. If each note with Udon manual sync takes 250-500ms to send, my delay has to be a fair bit longer than that for the remote end to sort them out and play it back.

Any ideas?

EDIT: The dream is, instead of having to sync a buffer of notes, to be able to send individual notes as data in a network packet, and handle them in Udon in an event-driven manner instead of having to poll the buffer for changes. A super-low-bandwidth worldwide pub/sub kinda thing.

Network sync support for OSC data in Udon-land would be perfect, now that I think about it.

1 Like

Oh my gosh, REDACTED is going to change my life. Thank you so much Tupper, sole developer and maintainer of VRChat.

5 Likes

Minecraft styled world, put everything on an atlas and then texture pack is an image load away. Heck even non minecraft, loading themes on the fly would be cool to see.

I think we’ll initially see photo gallery and posters for upcoming events.

I recently saw a slide presentation world that used video player, with assumption (and a website to make such content) that each page would be a second, or maybe it was half a second. Anyways the player takes in a video, splits it into pages and allows people to give a power point that way. I think the idea still has merit, slide per second is easy to self make. but maybe we’ll see similar systems using remote images.

VRChat newspaper?

I am eager to see what people do

1 Like

Will this also support aborting downloads when safety settings are changed or safe mode is enabled?

2 Likes

Any word on when we can get the viewball to scale with avatar scaling animations?

1 Like

You just need to reload the avatar, or is there something else you are referring to