Having enjoyed many hours of experiential VR over the past few years, I have some thoughts regarding what makes a title easy to recommend and likely easier to distribute. I also have thoughts on the biggest frustrations I encounter when experiencing or reviewing titles. My perspectives are informed by my background as a professional software developer and a VR enthusiast/evangelist, but they are just my personal opinions. I’d love to hear any feedback on these points! Please share your thoughts in the comments section below.
General Best Practices
Best practices in the VR space are definitely still evolving. Each platform has its own list of Do’s and Don’ts that can be helpful, but platforms like Steam and Oculus AppLab don’t enforce many rules, so there are many inconsistencies between titles. I’d love to see these become common features in new titles. None of them are particularly difficult to implement.
I know there will be outcries of “but this is for an event/exhibit/kiosk!” I understand that the easiest path for public experiences is to only support a single user and treat every session as transient, but ideally all titles would be eventually released for wider distribution. This needn’t cost anything additional if some considerations are taken up-front and may even help recoup some costs if a nominal price is set.
For kiosk usage, I envision a “kiosk” mode which survives restart. This mode would disable multi-user features, saving, and other related features. Once placed in kiosk mode, require some code or other hidden way to exit the mode.
Savable Progress
For any experience with a concept of progress (given length, steps to complete, locations to visit), always save that progress periodically (in case of crash or dead battery) and at close. At the very least, give me a chapter (or similar) selection. I shouldn’t need to start from scratch every time. Especially when I’m reviewing, if I encounter a fatal error or simply can’t play through in one session it’s intensely frustrating to start from the beginning on next run.
Multi-User State
On a similar note, if an app supports the concept of progress, it’s really a good idea to enable multiple users to save their state. Even though a headset may support switching users, it’s more likely that it’s shared between people, as with pass-and-play games. Make it easy for family members or friends to enjoy an app without affecting each other. From a UI point of view, it can be as easy as buttons to switch between User 1-3, or “Add User.” Encouraging pass-and-play can help sell your experience more broadly as people can give it a try without the owner worrying about their progress.
Skippable Intros
Users should be able to skip intros and initial titles/credits. They’re fine the first time, but they are a frustrating delay when they show up every time. If it’s actually a façade for a loading screen, try to make that clear with a progress indicator. People are accustomed to skipping ahead in videos, so it just seems arbitrary to force them to watch them every time.
Controller Mapping
Try to support different controllers and follow the respective conventions. The Vive joypad push doesn’t feel intuitive on non-Vive controllers. I expect to push forward or use my trigger button if it’s for teleport. Include mappings for Quest, WMR, Vive, and Index controllers at least. With Steam you can do your own mapping. Consider letting users remap with Quest games. This can be for comfort, accessibility, or even accounting for a broken button on a controller.
For kiosk apps, the goal is often to simplify things as much as possible with one controller and even one button. For these apps, it might seem like a waste of time to support different controllers, but I strongly believe that any public VR app should eventually be released to Steam/Meta/Vive/etc. There are so many such apps that I read about but will never get to try since it’s too far away or I am just hearing about them several years later. If you make your post-event plan from the start, consider what if any changes may be needed for release. Controller mappings can be done pretty easily, and things like multi-user, progress saves, and skipping the intro can be hidden with a “kiosk mode” flag used when in public.
In-Game Help
Consider in-game menu/options/controls whenever possible. I can’t remember your custom control scheme that was available from the main menu (and I didn’t think to tap at the time). Give me a wristwatch that I can tap, controller overlays, or at least a left-controller click menu. No matter how intuitive you think it is, it’s probably not. Seeing buttons/gestures before you need them is unlikely to be easy to remember. Present them when first needed, and also keep them always visible.
Accessibility Best Practices
It’s just human nature to think of ourselves as our main audience. In the real world though, everyone is different. What makes sense to you might not make sense to someone else, and what works best for you might be a non-starter for another. By considering a broader spectrum of abilities and skills, you’ll be appealing to the largest audience. Even if your app is similar to others on the market, providing great accessibility means great UX in general, which will always sell better.
Consider Locomotion
Always support multiple modes of locomotion (moving around). Personally, there’s a good chance I won’t try an app for more than a few minutes if it doesn’t support teleport. Only offering smooth glide (thumbstick) motion is a recipe for nausea for many of us. Let the user choose an option for the most appropriate way to get around in VR. You can never assume that walking is an option. Even if the user can physically walk, they might not have much physical space. Also think about providing dilation options to reduce field of view when moving. This helps me somewhat, but it’s still easier with teleport.
Consider the Seated
Ensure that all interactions are possible from a seated or fixed position. This may mean supporting buttons/interactions that can move up and down (sit/stand button) or just keeping them in relation to the plane of the headset rather than at a fixed height. If there’s a table or surface in front of the player, make the legs dynamic enough to work at different heights (think of a sit/stand desk). This may also be helpful for children or for people with less than average height.
Consider Fixed Heads
Don’t assume that turning your head is an option. Requiring a person to turn their head may be untenable for someone on a non-swivel chair or sofa, injured, or confined to a bed, wheelchair, or exam chair (yes, your experience may be used to reduce stress such as at the dentist). It feels more natural to physically turn your head, but having snap-turn and smooth-turn (let the user decide their comfort level) as options should always be there.
Consider Vision
Be careful with use of color and text size. Color-blindness is a problem mostly affecting men, but women can also inherit this gene. Estimates indicate around 350 million people around the world have this condition.1 While using red and green might seem like an easy way to indicate stop and go, many of us need another indicator since those two colors look the same to someone with colorblindness.
Text size is something that we can account for in real-life by holding something closer or using a magnifying lens. If you’re using a font, give the user some choices for size. Also consider letting the user choose the font itself. Not fancy or comic fonts, but some fonts like OpenDyslexic can make it easier to lock onto letter glyphs. Switching to an all/small caps letter case can help someone who isn’t as comfortable with lowercase Roman characters.
Consider Hearing
Captions are always welcome. Around 15% of US adults have some hearing impairment. Captions can be used for any sound, not just speech. If it was worth coming up with audio feedback sounds, it’s worth it to caption “ding” on the screen. For speech, captions should always be offered. Even with average hearing, I often turn on captions, when available, in case I’m distracted, or if there’s an accent, or multiple other reasons. In a video I might skip back a few seconds. In a VR experience, that’s not usually an option.
There’s really no excuse these days for creating an app without basic audio features. You can use machine learning algorithms to convert speech to text with barely any effort. You’ll need to read through and likely make minor corrections, but it’s much easier than starting from scratch.
I would also highly recommend passing text through an online translator. It’s definitely not as good as native translation but you can use an asterisk to show which languages are auto generated and users will be more understanding. You might even get an offer from a user to make corrections in their native language. 2
Consider Everything!
Some of these items require more effort than others but taking that time will yield dividends when trying to reach broader markets and attract new users. Software developers tend to think in terms of their own preferences and abilities (I can say this as a software developer!). Playtesting with a diverse group of users can help to find potential pain points. Instead of thinking “I wouldn’t use that”, think about the folks who might not use your app without it.
Footnotes
- There is general agreement that 1 in 12 men (8%) and 1 in 200 women are colorblind (approximately 4.5% of the world population), as a result, there are more than 350 million colorblind people in the world.
Source: https://www.colorblindguide.com ↩︎ - Approximately 15% of American adults (37.5 million) aged 18 and over report some trouble hearing.
Source: https://www.nidcd.nih.gov ↩︎