The Seamless Dream: Killing The VR Loading Screen
The Seamless Dream: Killing The VR Loading Screen
In the world of virtual reality, nothing breaks player flow like a loading screen. The magical yet fragile feeling of 'being there' is what makes VR so special. When a player is suddenly teleported out of a fantastical world and into a cold, black expanse with a solitary loading bar, the illusion is instantly shattered. Worse yet, unaccounted mini-loads can cause frame rate stutters and subsequent VR sickness.
The Background Load (Streaming)
The best loads are the ones players don't even realize are happening. Enter 'Asset Streaming'; the goal here is to load the game's assets (models, textures, sounds) in small chunks in the background before they are needed, rather than all at once in a single, game-halting block. This can be tricky, as the game needs to predict what needs loading and when, so that it's ready and preloaded at the moment it's required.
A Real-World Example: By Grit Alone
In my game, By Grit Alone, each time you get an NPC radio message, I play a little radio static buzz at the start of the call. This two-second clip frames the call nicely, but also buys me two seconds to load the actual message in the background! A more complex but common example; chunking up a large open world map and loading/unloading those chunks depending on the player's location and view direction.
The Hidden Load (Deception)
Asset Steaming is great, but even then, sometimes the engine just needs more time or memory. For example: the player is moving from one massive area to another, and the new area is too big to be streamed in 'invisibly' without first removing the old. Enter 'The Elevator'; the player steps in, presses a button, and is forced to wait as they slowly ascend or descend, perhaps while NPCs chat or some stuffy elevator music plays.
The Tight Squeeze: The Player's Experience
The tight squeeze, slow-open door, and crawlspace are all common techniques used to hide loading. These can be as simple as shimmying through a narrow rock crevice or between two walls. They can also be more complex, like forcing the player into a vent or low tunnel, where movement is slow and the view is restricted.
The 'Pause' as a Load (Diegetic UIs)
Opinion alert: good VR design integrates UI into the world as a core part of maintaining presence. To me, a pause menu that unnecessarily teleports you out of the game is just as bad as another loading screen. Excellent VR examples of putting menu components into the game world include Cosmodread's wrist-mounted map, The Lab's level-loading orb, and Into The Radius's inventory management backpack.
The 'Failure' Load (Instant Resets)
It can be very hard to hide failure, but hiding a load on failure? That we can do! In a challenging, restart-heavy VR game, failure can be part of the learning loop. Think of Beat Saber or Pistol Whip; having to wait 10 seconds for a 'Reloading Checkpoint' between every reset would completely kill the flow. Restarting in Beat Saber is instantaneous, so as not to punish the player.
The 'First Time' Load (Shader Compilation)
When I said my games have no loading screens, that was a little lie; as with many games, the very first time a player starts one of my games, I do a 'first time load.' The most common reason for this is for 'Shader Compilation'; a shader is a small program that tells the GPU how to render a surface—this fire, that wet-looking rock, this glass window.
When You Just Can't Hide It (The 'Honest' Load)
Sometimes there's no way around a loading screen so obviously keep it as speedy as you can. It is also important to keep the player's head tracking active during the load (i.e. if they move their head, the loading bar will stay in place in the tracked environment rather than be stuck to the player's view). Having a loading bar stuck to your view is the worst reminder that you have a headset strapped to your face.
Conclusion
In conclusion, the seamless dream of virtual reality is one that requires careful attention to detail and a deep understanding of the player's experience. By using techniques such as asset streaming, hidden loads, and diegetic UIs, developers can create immersive and engaging experiences that transport players to new and exciting worlds. However, there are still challenges to be overcome, and the 'honest' load remains a necessary evil in many cases. As hardware continues to evolve and improve, we can expect to see even more innovative solutions to the problem of loading screens in VR.
Source: https://www.roadtovr.com/vr-loading-screen-design-charlie-cochrane/




