Welcome to the Developer Update for 17 August 2023!
If you’d like to catch up, you can read our previous Developer Update from August 3.
Important Info / Announcements
VRChat Android Alpha is now LIVE!
That’s right, the VRChat Android Alpha is available now for all VRChat Plus subscribers! Strasz has a whole Dev Update and blog post for ya.
This is an EAAAARLY test. There’s lots of bugs, rough edges, UI headaches, known issues, and that kinda stuff. Hence, alpha!
Find and install VRChat for Android Mobile Devices using this link to the Google Play Store.
After opting into testing, it can take 15-30 minutes for your permission to be granted. After that time, you can use the install link to install the app!
If you do not have VRChat Plus, you will still be able to install this app, but you will not be able to use it. Patience, let us shake out all these bugs first.
However, we’ve been using it internally for playing around and dogfooding a good bit. We’ve been having a lot of fun being able to hang out in VRChat anywhere we go. On the couch, on the bus, at the airport, or sneaking in some time to chat during your lunch break. Plus, those notifications sure are useful…
We wanted to get it in your hands in some way early on so you can help us track down problems and start creating things that work well on mobile.
If you find bugs or have feedback, please plzzzz post to our Feedback boards we made specially for this. We want to hear your feedback!
Quick Note: Quest Pro Eye Tracking Build Turned Off
We recently announced that we turned off the native eye tracking Quest Pro build. This was the build that you had to manually select that let you use the Quest Pro in standalone mode and get eyetracking.
Important Note: This does not effect using OSC with the Quest Pro to get eye tracking on PC. That still works perfectly fine and is totally unaffected.
This was done because there’s some serious issues with the SDK required to get this to work. It caused a ~20% reduction in framerate on a platform that’s already starving for performance, and caused significant issues in our development and build process. In addition, while it wasn’t a significant motivation to remove the build, it is important to illustrate that the build was utilized by an extremely small amount of people on a consistent basis.
Check out this Feedback post for more info. We don’t have a date for this build to return, but we’ll let you know when it’s on the way.
World Category Changes
We’re doing some experimenting! Data data data.
If you notice the world categories shifting around and changing, don’t worry about it. That’s us poking and experimenting with new categories, new layouts, and other changes to see how it affects and improves the user experience in VRChat.
Don’t be alarmed if you see things coming and going. Our hope is to make the content delivered in our World browser fresher and more relevant over time!
Ongoing Development
World Preloading
Ever wanted to preload a world so you don’t have to sit in the loading screen while that 568MB virtual convention world downloads?
Wait no more! We’re implementing World Preloading!
actually i guess you still have to wait i mean you still have to download the world i guess
First, here’s a video of it in action!
It also works from Invites!
Let’s dig in a little bit. When you visit the instance page for any world, you’ll now be shown a new “Preload World” button.
After clicking this button, VRChat will check if that world is currently in your local cache (in other words, if you’ve recently downloaded it). If it isn’t in your cache, VRChat will start a download for that world that will run in the background while you’re still in your current instance.
The preload world button will change appearance to track the progress of this download and to allow you to abort the download if you wish by clicking the button again. If you press this cancel button, the download is immediately stopped and any data downloaded so far is discarded.
If you let the download finish, the button will change again to let you unmark this world as a preloaded world. Unmarking the world after the download has finished will not automatically remove it from your cache. Additionally, marking a world for preloading while it’s already in your cache will skip the download and just mark the world as a preloaded world.
While a world is being downloaded in the background, the tile for that world in the UI displays a progress bar reflecting the progress of the current download. This bar is only visible during downloads.
There’s a widget in the quick menu (similar to earmuffs and queues) that shows the progress of the current download with the ability to cancel:
When the download finishes, the Cancel button is replaced with a Join button that will immediately send the user to the instance they were last looking at when they started preloading the world! If the world instance is full or no longer available, the button will open the world details page for this world instead.
As you saw in the video, you’ll also get a notification if you’ve closed your menu.
This also works with queues! If you start preloading an instance that has a queue, you’ll join the queue right away while you’re preloading. If the instance doesn’t have a queue when you start preloading, but has one after you’re done preloading and attempt to join, you’ll join the queue then.
Now, when another user invites you to join them, you may want to preload the world they’re in before you start travelling there. To support this, a View Instance button is now available under the more options button (“…”) on invites.
When clicked, this button will open the details page for the world your friend is in, opened on the instance that they’re inviting you to. This applies even if the type of instance wouldn’t normally be visible in the instances list (i.e. Invite or Invite+).
From there, you’ll follow the same flow as before to preload and then join the world.
FAQ
Here’s some common questions we’ll expect people to have about this feature!
How many worlds can I preload at once?
Users are currently limited to a maximum of one preload at any time. When you mark a new world for preloading, the previously marked world (if any) will be automatically unmarked as a preload.
If the previously marked world was still being downloaded in the background at the time, this will also automatically stop that download. In other words, you can only have a maximum of one world downloading in the background at a time.
Do preload marked worlds get removed from the cache?
We attempt to keep preload-marked worlds in the cache for as long as possible and give them priority over non preload-marked worlds, but preloaded worlds may still disappear from the cache due to the limitations of Unity’s caching system.
What happens when a preloaded world is dropped from the cache or gets an update?
When VRChat starts or the user looks at the details panel for a preload marked world, we check to see if it has fallen out of the local cache or the world has received an update from its creator.
If we detect that we do not have the most up to date version of the world, we automatically unmark it as preloaded, so the user has to click the “Preload World” button again to re-mark it as a preload. If they do this, it will initiate a background download for the most recent version of the world, effectively updating it.
What happens when I join a world that’s still preloading?
If you join a world that hasn’t finished being downloaded in the background yet, the download progress as it appears in the blue void with the loading tips should continue from where the background download left off. For example, if you start joining an instance while a world is 60% downloaded, the progress bar in the loading screen should immediately begin at about 60% instead of restarting from 0%.
Naturally, if you join a world after the background download has already finished, there should be no download progress shown at all in the loading screen.
Conclusion
That’s it for this Dev Update! Our next update is scheduled for August 31st, 2023. See you then!