Developer Update - 25 November 2024

Welcome to a different kind of Developer Update. We’re off schedule today for some special announcements regarding the Creators Roadmap!

There’s no featured world today – but if you’d like to see our last Developer Update, you can do so here.

The Creators Roadmap Has Been Updated!

Go check it out here! We strongly suggest that if you’re a creator, you read through everything that’s changed – and what milestones we’ve hit.

However, there are some things we wanted to draw your attention to in particular. One of which is something that you might have a few questions about.

So let’s get into it!

Persistent User Data is Live!

Yes – that’s right! One of the most anticipated Creator features is now live. This was a big one – and one we’re particularly proud of. To say that this opens up a bunch of new possibilities is underselling it. In many ways, this is as big of a generational leap for VRChat content as Udon was.

  • The feature allows world creators to save information about individual visitors. This means that any time a user returns to any instance of a particular world, certain information can be retained.
    • There are two types of Persistent User Data: PlayerData and PlayerObjects.
      • PlayerData is a key-value database that allows Udon scripts to save and load User Data.
      • PlayerObjects are GameObjects that automatically instantiate themselves for each player. All their synced Udon variables can be persistent, if marked with a VRCEnablePersistence component.

We can’t wait to see what folks do with this feature now that it’s available to the broader VRChat community!

Persistent User Data has the potential to unlock a new world of possibilities in both progression and personalization. Have you ever wished you could provide visitors to your world with the ability to…

  • Unlock new facets of your world over longer (or multiple) sessions?
  • Customize their experience and retain their choices the next time they return?
  • Express themselves creatively in more dynamic ways?

…well, you now can!

Please share feedback here and let us know which use cases for Persistent User Data are most exciting to you, and what you think of this new feature. You can also share worlds or tools that leverage Persistent User Data on our Persistence Showcase thread, or check out what other Creators are making for inspiration!

One Time Purchase are ALSO Live!

While we mentioned them in the last Developer Update, it’s worth noting that One Time Purchases are also now live.

  • One-time purchases allow you to buy stuff from creators without monthly group subscriptions!
    • One-time purchases can be permanent! Buy them once and keep them forever.
    • Or they can expire like a group subscription. One-time purchases are flexible.
    • This is the most highly-requested feature from creators in the Creator Economy. We appreciate your feedback!
  • World stores allow you to browse a seller’s store by looking at their world in the VRChat menu.
    • This is where you’ll (usually) find one-time purchases.
    • You can also find one-time purchases directly inside worlds.

Introducing… Soba!

We know you’ve been waiting patiently for this news, and here it is: We’re excited to announce an update to our Udon architecture: Soba.

We’ve identified a simplified, lightweight approach to give creators access to many useful features of C# 9.0. This approach maintains full backward compatibility and runs smoothly across resource-constrained platforms, including Quest, Pico, Android Mobile, and iOS. Using Soba, you can write C# logic, which is compiled to CIL (Common Intermediate Language), and available alongside your ‘classic’ Udon programs.

This approach allows us to be more iterative, and layer on additional features over time, rather than changing the entire VM in one go.

FAQ

What new features will the first version of Soba include?

The Closed Beta will include some of the top requested features from the VRC creator community (such as non-UdonBehaviour classes, custom interfaces and static fields).

One hard decision we had to make was not including generics (like list, dictionary, etc.) in the first iteration, as this requires a rewrite of the wrapper layer. With that said, Soba sets us up to efficiently implement generics in the future. We’ll share more information about Soba’s features soon!

Please let us know about features that would be particularly helpful to your development (including example use cases) to help inform future priorities.

How does Soba compare to UdonSharp?

The first version of Soba will have all the existing features from UdonSharp (including all features incorporated in the official VRChat implementation of UdonSharp in the Worlds package) as well as the new ones mentioned above, and more to be announced! It should perform at least as well as UdonSharp, and performance is better in some cases.

Why are we developing Soba?

This approach improves on the base created by Udon, setting us up to improve performance and expand features in an iterative way. Writing programs for worlds with Soba will be much closer to writing programs in C#, and paves the way for implementing many of the features of C# (similar to standard implementations like .NET Core and Mono).

What are the next steps for Soba?

We are currently wrapping up development on Soba and launching internal testing. Once this is complete, we’ll be working directly with creators during a Closed Beta period to test the functionality and collect initial feedback. After this, we’ll roll out with the usual Open Beta and Live releases.

Will my existing Udon Worlds continue to work?

Yes, and we will use the Closed and Open Beta periods to gather input about any unexpected changes so that we can address them before the Live release.

Do I have to choose between UdonSharp, Udon Graph and Soba?

No, Udon#, Udon Graph and Soba can run in the same world, and the programs can interact through SendCustomEvent and network events.

At this time, it won’t be possible to create Soba programs using the graph. We don’t have any additional updates to share about our roadmap for Udon Graph at this time.

Will there be a migration guide from UdonSharp to Soba?

Yes, we will provide a guide on the changes needed to update your UdonSharp code for Soba, and tools to automate as much of it as possible.

See You Next Time!

Given the holidays, we might be a little off schedule! You should expect the next update next week, however it could come a week later. Keep an eye out!

21 Likes

Japanese noodles…! :ramen:

3 Likes

Thank you for the One Time Purchase :smiling_face_with_three_hearts:

2 Likes

Tbh it’s still not clear why it’s separate from Udon…
And what is SobaVM, aren’t you wanted to use WebAssembly engine before?

1 Like

Btw, about creator economy… Are there any plans for option to accept/payout with cryptocurrencies?

6 Likes

So rather than being a direct successor to Udon, my understanding is this is intended as a new option for creators to specifically choose? From the write up I assume Soba can run existing Udon# (alongside a wider set of features from C#, and maybe minor changes) and just runs it through the Soba VM. If that is the case, then once Soba matures should we expect for Udon to be removed down the line and be replaced entirely by Soba?

2 Likes

Ew. No sussy crypto

7 Likes

Speaking of the roadmap as a future possible update, will we ever get folders or such to sort uploaded avatars (for creators or those that buy a lot of avatars)?

As most creators know, when making avatars you have TONES of “uploaded avatars” on your account that are arquard to brows through, both for avatars you may use of your own frequently, test avatars, old outdated but not wanting to delete ones, or those that upload multiple versions of the same avatar as having them all on 1 avatar would go over the PC rank limits, such as ones that have multi clothing toggles (Such as for different occasions like casual or smart clothing as a simple example).

Ik some people that have around 200 avatars uploaded so scrolling though all of them, especially in your wing menu, is a PAIN to find the right one.

Overall having folders to sort your uploaded avatars would make things a lot easier for creators ^o^ Even if its just a personal (only you see) tag system so you can look for anything that has that specific tag on it, like “casual” or “[Fandom name]” or “commission” and such.

3 Likes

Is Soba the new name for Udon2?

4 Likes

You never been banned from banking, don’t you? And your banking accepted by most banks&services of around the world, yea? The sussy ones are third parties who filtering and privileging direct person-to-person economics.

2 Likes

Since you guys are working on the VCC, would like to put out there that being able to install multiple packages at once via tick boxes in the package manager would be a godsend for us peeps who have multiple third-party plugins (Hai’s tools, VRCF, Modular Avatar, etc)

This is from info gathered from your roadmap indicating that you’re wanting to add more functionality to VCC, btw.

5 Likes

Yes, the canny for Udon2 was even updated to be named Soba.

4 Likes

Happy to see we will have a much better programming experience under soba!

Hoping that the networking API gets an uplift one day too to make networking stuff easier as well!

1 Like

I find it interesting how much has changed compared to the original proposal they gave us.
Also no more mention of WASM which is… interesting? Idk feels a bit weird to me.
Though I’m definitely looking forward to it!

1 Like

Nuh uh

1 Like

Not at this time, no.

  • Users can currently buy credits with their Meta/Google Play/Steam Wallet.
  • Creators can currently pay out with PayPay. We’ve been thinking about adding additional payout methods, such as bank transfer. If there’s something you’d like to see, please let us know on Canny.
1 Like

Also that the performance benefits are listed only as on par (at least for the initial version), whereas the performance improvements were one of the showcased benefits of Udon2. I’m still excited, but definitely eager to learn more of what to expect as time goes on.

2 Likes

Canny for crypto currencies was closed few years ago :cry:

But if Udon and Soba are so good, where’s Ramen?

1 Like

Doesn’t matter what you pick, its all going to be spaghetti code anyways

2 Likes