Virtual Reality Experiences

Development Choices

Creating Virtual Reality Experiences requires a commitment to learning the tools, thankfully there are plenty of resources out there to get you started. For now though, this article provides an overview on developing for Virtual Reality and the considerations.

Systems

HTC VIVE: SteamVR

Overview

The VIVE family of headsets relies on SteamVR and Steam to run. SteamVR is the name of the service and development kit that allows for virtual reality using the system.

Installation

  • Download and Install Steam: available here:

  1. Install Steam

    1. Create an account or sign in

    2. Download and Install Steam for Windows.

  2. Install SteamVR

    1. Plug in your headset, then launch Steam

    2. You will be prompted to install SteamVR, click install

  3. Restart your PC

  • Log Into Steam.

  • Access the Steam Store via the link in the top left corner.

  • Search for SteamVR

  • Click on the install link and follow the instructions

  • Once downloaded and installed, SteamVR is good to go!

Development Software

Unreal Engine

Unreal Engine has higher visual fidelity with lots of features to achieve photo-realism. It uses a visual scripting system known as Blueprints that can be extended by C++. While powerful, the engine can be quite obtuse.

  1. Download the installer for the Epic Games Launcher. Unreal Engine is a piece of software developed and used by Epic Games, a game developer. Their Launcher is a way to interface with their services, which includes games, a marketplace for aforementioned games, development assets and tools, and the Unreal Engine itself.

  2. Install Epic Games Launcher

  3. With the Epic Games Launcher installed, you need to create an account. Opening Epic Games Launcher will prompt you to do so.

  4. You can now proceed to installing Unreal Engine, click on the Unreal Engine tab on the left.

  5. Click the [+] icon next to Engine Versions and install the latest version.

Unity3D

Unity strictly relies on C# programming for its functionality - a simpler language to learn. While not as visually refined as Unreal Engine, it is easier to work with where you have full control over the toolset.

Considerations

The last thing you want to happen is for your users to come away feeling physically sick. Virtual reality is known to have a host of issues around motion that can lead to feeling sick. Below are general goals that are widely held by the industry to maximise user experience.

Immersion

There is a large variety of factors that contribute to the feel of immersion. Chief among them is the responsiveness of the visuals being displayed to the user, such that the visuals should change when the user changes the orientation of their head. Lag is to be avoided as much as possible here. This is one of the reasons that the system of locomotion has to be carefully considered in your VR experience. Additionally photo-realistic textures can add to the immersion factor (however low poly games have shown that this is not necessary). Auditory cues located in specific points in 3D auditory space can add to the immersion immensely. Finally, the ability to interact with objects in your space - such as 'picking' up items - is useful to enhance immersion as well.

Performance

Performance is the most important aspect of ensuring a smooth experience. It can be measured by the framerate or frames per second (fps). This relates to how much work a computer has to do to render the experience. More computationally intensive work will lead to lower fps.

To achieve good immersion frame rates should be a minimum of 72 Frames per second, with 90 being a current sweet spot of required processing power and good immersion. Here are some basic tips:

  • Limit dynamic light and the number of dynamic light sources as this is computationally intensive

  • Avoid heavy use of translucency, this is computationally intensive

  • Keep material complexity and number of materials low

Standing Navigation - Teleporting

For standing/room-scale based experiences, the preferred mode of navigation is to teleport. Any movement that is not reflected by the body such as below are discouraged as they can cause motion sickness.

No Simulated Movement

Abstracting movement to button presses is highly discouraged as the user will be moving without conscious body effort. This can cause the body to subconsciously react and lead to unsafe situations and/or cause motion sickness

Example: Mapping walking forward to a button causes a user to move forward in virtual reality. In reality, their feet are planted still.

No Involuntary Movement

Involuntary motion acted upon the user inside virtual reality can cause the body to subconsciously react and lead to unsafe situations and/or cause motion sickness

Example: A triggered event in the experience pushes the user in the experience, the user witnesses the world rush past them. In reality, their feet are planted still. In these scenarios, the closer the experience is to a teleport the lower chance of motion sickness/negative effects.

Sitting Navigation

Sitting Navigation is less restrictive than standing navigation as at least you can minimize involuntary reactions by the body to motion. You could use a gamepad in this scenario.

Last updated