Play And Games VR Development Dairy

An exploration of wonders and challanges of VR development.

Starting Development

With agreement on the concept and the platform we began to experiment with the system and started development of the VR experience.

Software Development Platform

We chose to develop the experience in the Unity engine due to its strong library of VR plugins and APIs. Whilst Unreal also has a VR development environment built into its engine, its doesn’t allow for easy low level modification which Unity excels at due to the relatively simple C# script interface. However, within Unity there are a number of VR plugins to choose from and considering this we decided to go with the official SteamVR plugin as it would ensure compatibility with the HTC Vive headset we were using.

Setting up SteamVR

Whilst the SteamVR plugin is quite easy to use once you get the hang of it, there was some difficulty initially in regards to getting the plugin to work with our headset. This was largely due to the lack of documentation included with the plugin. Whilst this wouldn’t be an issue we found that the setup process had changed since the plugin was introduced in 2016. Hence existing tutorials and setup procedures stated in the documentation were obsolete. Although despite these issue, we were able to get the project up and running and discovered that the plugin system was much simpler than the previous version.

After getting over this hurdle we were able to get basic hand gestures working and were able to somewhat interact with the world around us utalising the various prefabs of the SteamVR plugin.

(Add Screenshot here)

After getting hand movement to work the next issue was allowing interaction with various objects in the Scene. In SteamVR we found this can be achieved in a number of ways. The first being the use of a Prefab called ‘throwable’ which would allow any unity asset in the scene to be picked up and thrown in any direction. However for specific interactions, SteamVR provides a Unity game-component called intractable with allows VR related interaction events to be captured and handled.

(Add Screenshot/GIF here)

Prototyping

Bearing in mind this information about the plugin, we produced a basic world implementing a basic form of our idea. This simply involves a basic room with a ‘table’ displaying a texture whose data is captured from a camera in this scene. There would then be a cube or similar volume above the map which the player could grab ‘like a tablecloth’ and move around in order to move the camera to different areas of the map. This gave us the liberty to experiment with the SteamVR plugin as well as contribute to this project as we intend on using a similar style of control scheme.

(Add ScreenShot of this)

Control System

For this experience we looked to a smartphone style control scheme where the player could use similar movements to move the world around. For example whilst the player has both controllers down they can control the zoom of the world where moving controllers apart zooms the player out and the opposite does vice-versa.

Our inspiration for this control scheme comes from a similar concept called Google Earth VR which allows users to navigate the world using the controllers to drag and move the planet around which we decided to build on for this system. This was due to how intuitive we found the control scheme. However when it comes to zooming in an out this was achieved using button presses rather than a zoom mechanic, hence the reason for our approach as it emulates the feel of stretching something, making it logical and intuitive for most players.

Back to Main Page