Developer Update - 27 October 2022

That is not the answer. I said work around the aspects which are slightly broken. Unity 20xx versions will break far less than people like to sensationalize (unless vrchat spontaneously chooses to go URP and forces a 100% content apocalypse, but that is so unlikely). CyanTrigger doesn’t make Udon any less complicated, it just helps set up basic triggers, and only serves as a band-aid. Udon is complicated, confusing, and like i said, it’s very very very non-performant (upwards of 600x slower than native- inexcusable). Not everyone has a top of the like CPU, and udon clogs valuable threads that most things run on - ie main thread and support threads. I have not gotten 80FPS in vrchat in a very long time and the last time i got it was in an empty SDK2 world. I don’t even get stable 80FPS in vr in an empty Udon world. I used to get 80FPS in all kinds of worlds a year ago, and i have a vastly superior GPU now. Vrchat’s messy internal code stacked upon udon drags performance down and down and it has gradually slowly gotten worse over the many years.

Everything since unity 2017.x can still be uploaded to vrchat and all of it works perfectly fine. 5.6 and prior have issues like the mirror glitch (avatar pops out of mirror, might be correctable, unsure). Unity 2019.x you can correct for the Single Pass Instanced change that is obligated in later unity versions.

I despise the attitude that people bring “it’s easy just do it” No it’s not, and no. It’s only easy for those who have actually been successful with it because they have those abilities or TIME or whatever that allows them to work within that environment. Everything you can do with like 2 clicks in SDK2 requires a huge ordeal, downloading a bunch of tools or a gazillion nodes to replicate in Udon. Most worlds are very simple, they just require some basic toggle buttons and a mirror (which can be made in a few minutes in SDK2); they don’t need frames being wasted by the Udon VM. Again, having 3rd party generator tools is NOT the answer, and often times only serve to complicate and confuse anyway (like how Hai-vr’s av3 gesture manager is more complicated and confusing than doing it manually). It is not accessible for newcomers or people that don’t have time to learn a complicated system. As i’ve said, lack of accessibility causes less creative content from everyone, which results in less variety, and softly restricts it to power users, which is how you get gradual stagnation.

Udon is a nightmare, it’s convoluted, it’s wasteful, and nothing you can say will make it user-friendly/accessible, and i personally hate it for many reasons. Power to those who want to code fancy game maps, but that’s not for me. SDK2 is objectively superior for anything other than games and videoplayers (they could make videoplayers as functional as udon ones if they just scripted a dynamic player module but they didn’t) and unnecessary gimmicks. PLus you cna make entire worlds in SDK2 with almost zero prior knowledge by watching at most 30 mins of tutorial content, that’s how easy and fast it is.

Some people have real mental difficulties dealing with overcomplicated crap. If they do blacklist SDK2 world uploading, and force Udon etc, i will never make a world again, period.

What i was going to make eventually:
  • An extremely in-depth multi-faceted hangout-world with tons of nice ambiance, sleep areas, mesmerizing visuals, with modularity, including also a fancy gun range, every kind of avatar testing, a shader play room, and making the whole thing extremely performant and optimized. None of this requires Udon, just simple triggers and animations.
  • AN extremely immersive firstperson space battle animation. Where the players are aboard the bridge of a ship, and it starts in warp/hyperspace, then comes out into an extremely detailed space battle which the ship will make it’s way through, complete with AAA level polish, dialogue, music and the works. I would need to have someone willing to code everything exactly how i want it with high competency in order to do ever make such a thing in Udon (which is unlikely, and will have poor performance anyway because of it), whereas in SDK2 i know how to make all of it without too much effort, it’s easy and performant.
  • and possibly more… Due to the nature of these worlds, i need every frame i can get if i want their ambitioness to remain optimized and able to be run smoothly on lower end hardware, this will not be possible with Udon.

ps: as in a canny i made, i am open to alternatives, but just something that isn’t udon and uses native code and is SIMPLE ∕ ACCESSIBLE:

pps: anyone who thinks ease and accessibility for creative tools is not important hasn’t been paying attention to the evolution of animation and indie development over the past 20 years.

CyanTriggers is sdk2 with depression. There was no intention of making it as easy to use as sdk2. Complain about CyanTriggers being overcomplicated are ignored, and people aren’t even allowed to look at the source code yet alone try to improve it. It’s a joke.

Udon graph could be made easier to use by allowing data to be entered directly in a node and for the nodes to include documentation tooltips. Abstract away variables unless they are explicitly needed. If a user wants to create a toggle they should be able to do it with Interact → toggle state, not Interact → get state → boolean negation → set state + networking

I am impressed by the hand tracking. :+1:

Also I think VRC should try its hand in the Headset market. We already hold the monopoly as the most popular VR social platform, Why not go big or go home.
If their ever is a “Metaverse” VRC would be it. I would like to see VRC branch out in all directions with branding and merchandise.

Perhaps a VRC Link cable, VRC Controller grips, VRC micro fiber cloths, VRC lens protectors, VRC Ear buds and hey maybe some day a full headset. IDK just an idea.

Wait-
Since the VCC will be required in the future, does this mean we’re unable to upload content to VRC if we were using the SDK unity package previously or if we import it into a new project?

Ehh, I don’t really see the merchandise thing being a smart idea. It’s sorta just applying a logo on an already existing item.

You could just buy VRChat stickers in multiple sizes and then apply them onto anything to be an official product hehe

You’ll still be able to upload content just fine using the unity package version of the SDK.

Small update - I’ve now successfully migrated my legacy SDK3 project to use VPM on Linux!

NOTE: Don’t use --inplace without a backup!

I’m maintaining a local Git repository which serves as my backup.

user@hostname:~$ lsb_release --description
Description:    Ubuntu 22.04.1 LTS
user@hostname:~$ vpm migrate project --inplace "/path/to/digitalfox-Avatar/"
[16:24:14 INF] Project is LegacySDK3Avatar
[16:24:15 INF] Starting at 11/1/2022 4:24:15 PM
[16:24:15 INF] Migrating Legacy SDK3 Avatar Files
[16:24:15 INF] Looking for Legacy Packages to Upgrade by Scanning Folders within com.vrchat.clientsim
[16:24:15 INF] Looking for Legacy Packages to Upgrade by Scanning Folders within com.vrchat.udonsharp
[16:24:15 INF] Finished looking for Packages to Upgrade.
[16:24:15 INF] Preparing In-Place Migration for digitalfox-Avatar
[16:24:15 INF] Deleting Assets/VRCSDK and folders it contains.
[16:24:16 INF] Updated Input Settings for new Project
[16:24:16 INF] Successfully Migrated digitalfox-Avatar
[16:24:16 INF] Migrated project /path/to/digitalfox-Avatar/

I had to relaunch Unity after the first time to fix an error with Content Manager fetching records, but now it all seems to work.

1 Like

are you going to make it compatible for people who use virtual desktop?

VRChat’s already compatible with Virtual Desktop. It never stopped being compatible with Virtual Desktop!

As noted by the Virtual Desktop developer, you just have to use the Steam version of VRChat.

Using VD with Oculus requires DLL injection which we don’t support and block actively.

Anyways, closing thread. New one will be up in a mo’

1 Like