Do’s and dont’s designing VR games
In our short time designing VR experiences, we’ve stored a good amount of tips and rules about virtual reality. Although our experience is mostly based on Google Cardboard SDK, I would say most of them would apply to 99% of available platforms.
We had more than one and two dizziness compiling them, so trust me and don’t make the same mistakes than us! 😉
1. Don’t force the user to take off the VR-Glasses
Don’t force the user to take off the glasses to make usual commands such as pause, stop or restart de game scene. This is really annoying and most of the users won’t continue playing after that. Any game setup (except obviously the cardboard QR setup) should be available without touching the screen.
Providing some basic configuration such as music/audio volume is a plus.
2. Don’t expect the user to wear your same VR glasses
The VR hardware market is still in a early stage and, while some standards start to grow around, you can find several kinds of hardware configurations. From most basic to complete setups, this is a raw list:
- Basic Google cardboard glasses: despite its design is quite basic (it could be described as just “a box with a couple of lenses”), there’s a lot of models with different constructions qualities , FOV (field of view) and adjustments as focus or lens separation.
- Cardboard with magnetic button: it has 1 action button, not always very reliable, but kind of standard
- Google Cardboard glasses + user joystick: some VR apps require external hardware such as joysticks or other bluetooth controllers. Unfortunately, these controllers must be specifically supported by the app, and does not exist an iOS/Android cross-platform device. There’s a large number of implications on this, and designing for specific controllers is not desirable, unless you know the user will have that hardware for sure (i.e. in a public installation)
- Dedicated hardware: Samsung Gear VR, Oculus Rift, HTC Vive… each of these platforms has a specific hardware interfaces and controllers.
And all these scenarios must be considered during the interface design. If is there any specific requirement (cardboard button, joystick…), explain before starting the game. Ideally, provide alternative methods if the hardware is not available.
For example, selecting a button could be done by using the magnet button if available or also using the joystick A button, if the user has a joystick. But if any of these are available, it could be selected by pointing the button with the viewport reticle for a short time.
3. Take care of user’s health
In order to avoid causing nausea to players, do your best to deliver a minimum of 60 fps and always keep head tracking (that is, avoid the screen to freeze).
Use fade outs during loading assets, specially on scene changes, if you know that the screen can freeze. Even the smaller freeze may contribute to discomfort the user.
Never show video adverts, banners, interstitials nor any other kind of 2D advert in a VR experience. In general you should avoid any content that can not be represented in stereoscopic view, but if you have to monetize with adverts, use native ads instead and implement inside the stereoscopic view.
Avoid using native alerts nor any kind of window covering the VR viewport over the stereoscopic view or, even worst, that could freeze the head tracking. Instead, use 3D views with transparent or semi-transparent backgrounds integrated in your scene.
In case you detect low fps rates or screen freezes, alert the user about this fact.
Keep music/audio sounding during scene changes or assets loading to keep the user into the experience.
5. Provide a calibration window to adjust the VR glasses
Most glasses based on Google cardboard provide at least one, sometimes two, calibration controls (like focus and lenses separation). You better provide a calibration screen to set the glasses configuration on every game start.
6. Never let the player without control
Provide a mechanism to close the game scene and go back to the main menu. Even for time-based VR experiences (like interactive movies), a mechanism to close and restart the game scene should be provided without the need to remove the device from glasses.
As said above, providing mechanisms for setting up music/audio volume (or just a mute option), screen bright or walk speed is a big plus that users will appreciate.
If you’re using the Google Cardboard SDK, implement a listener for the top-left corner “Close” button. Surprisingly, a lot of games and demos out there do not respond when the button is clicked, so user has to force close the app to restart the game.