Preload Avatar / Server Processing Fix
Chdata
It's no secret that players are annoyed by the server processing and downloading times.
I think the "avatar loading" should take place in the menu, not sticking you in a blue diamond avatar to wait for it to load.
Goal:
Quickest and fastest transition between two avatars
Fix:
When you hover over an avatar, if it is not preloaded, it will reveal a button that says "Preload Avatar".
When you click on "Preload Avatar" it will do all the downloading and processing without switching your avatar, and show a "loading animation".
When it is ready, you can now click on the avatar again to switch to it, or it will automatically switch after it has finished preloading.
This is basically moving the "loading bar" from being "above the blue diamond avatar" to being in your UI menu instead.
If an avatar is already preloaded, then switching an avatar works instantly like it always did.
Log In
tutugreen
+1 , I think this feature could be expanded. For example, the client could offer an automatic batch‑preload option for every avatar I’ve uploaded or added to my favorites. It could also automatically preload my friends’ recently used avatars—as well as other users’ avatars and the world assets in whatever room they’re currently in—at a modest, user‑defined, background‑capped speed. That would smooth out bandwidth spikes (critical for cellular connections) and eliminate those annoying download pauses when we join them.
VRChat may need to factor in its own bandwidth costs (though Cloudflare doesn’t charge for egress bandwidth, right?). That could be why the client currently limits us to preloading only one world at a time: if the first world hasn’t finished preloading and you start another, the first download is cancelled.
Either way, the avatars and world assets have to be downloaded sooner or later as we world‑hop—so why not start early?
Kamikira
I like the idea but ill do you one better what about a "local preload" and "Preload & change"
Local preload preloads it locally as you described (assuming I understood correctly)
Preload and change shows the loading bar above your head and preloads for users around you as well as yourself, and once it loads past a threshold for everyone in a set radius or hits a threshold of percentage of loaded users in the radius it changes seamlessly for everyone
Edit: also add an option so other user preloading only works for friends and everyone else uses the current logic
淫神 Nafryti
For who is this intended for? Yourself? Others around you?
Theoretically this would only work locally, as in yourself. Others would still have to download and load you. Server processing would probably be the only thing avoided in this option.
The rest you propose would only happen locally for you, everyone else still has to download, unpack, and load it to see it.
What would be nice is if there could be a friend cache that would allow instant switching for avatars your friend was just in, or had been in the past 24 gametime hours perhaps? This way if there was an avatar, that wasn't updated recently (within 24 hours playtime) it would immediately swap instead of downloading and loading it all over again.
My speculation on "Server Processing" currently taking so long is the queue of everyone changing into avatars that need to be server processed for the decimated fallback "imposter" while has been greatly improved in wait times, wouldn't necessarily be improved upon as people are always making avatars, and changing avatars, which slams the server for that imposter processing request. The more people processing, the longer it takes, it really isn't surprising.
The best solution would be to offload the processing to the end user's machine, and force the client to make their own imposter, but that would incur more API tweaks, and parallel processing integration if they're to use the GPU to process it. OpenCL, or CUDA, depending on the GPU, would have to be added for a smoother experience, adding even more work not just to the API but to the devs whenever they push an update. Quick and dirty would be offload it to the CPU like every other thing is currently, seriously this game could really benefit from stream processing on GPU's for things like decompressing Crunch Compressed textures, and making imposter avatars.
That is a whole world of SDK integration that I sincerely doubt the VRC team is quite in any position to integrate honestly, that's a whole can of worms that would require a test build outside of the beta branch, like an entirely different game.
Chdata
淫神 Nafryti It is mostly for the server processing part.
That didn't exist in the past, so the normal download and load is something we are used to.