Developer postOriginal post (opens in a new tab)

Unity + VR + Loading Screens

What's the deal with loading screens in VR games? Why are they non-existent or generally terrible? Non-VR games often have videos and cut scenes or better yet, playable mini-games while you transition scenes, so why are VR games so far behind? Are VR devs just lazy?

Nope. As is usually the case, it's several magnitudes more complicated doing things in VR than in regular pancake games.

I've seen some pretty cool integrations with Unreal Engine but being mostly familiar with Unity, that's what I'm going to talk about. Utilizing native Unity-based scene management tools and functions, what can you do while loading a new scene in the game?

Almost nothing.

What? It turns out that while you're loading a new scene, the load process is so resource intensive, your app is no longer able to render any frames to your VR headset. This means it can't even track your head movement and render your view correctly which can lead to nausea and disorientation. At this point, you get teleported back to your compositor, ie: Steam home while it tries to load the content. Overall, it's a pretty poor experience.

Surely someone has figured it out? Probably. Most of the standard SDKs don't offer anything better and if someone has hacked their way around it, they're not sharing. The only decent solution comes from Steam VR's SDK in the form of the SteamVR_LoadLevel class. It lets you load new scenes while standing within a cubemapped skybox and gives you the option of displaying a loading bar and an image poster.

The loading bar is not great. In my trials the loading bar would not fill up in a regular fashion, instead it would sit empty for a long time and then abruptly appear 90% full before loading the rest as usual. I also had issues with the loading bar and poster textures and had to disable image compression before I was able to get them to work.

Regardless, here we are with a working loading environment so that we may keep players engaged in the game. It's not a video or mini-games, but it's better than nothing.