Role: Lead Programmer
Tools Used: Unity3D
Collaborators: Hunter "Smokey" Dyar, Omar Cheikh-Ali, Yang-Che Tang
Island Exploration is a virtual reality research project where our group is developing a new means to allow a user to travel in a virtual space that is much larger than their physical space. In this HTC Vive application, users explore an island that consists of several different room-sized areas for them to discover, but the island itself is about the same scale as a physical island. In order to visit areas outside the reach of their real-world physical space, users can scale themselves up to a point where the their physical space spans across the entire island. Once a player reaches the approximate area where they'd like to explore, they can procede to scale themselves back down to a normal size and begin interacting with that area of the island.
Although the main focus of this project is the scaling mechanic, we did not want the "gameplay" of the island application to center around the usage of this function. There is a simple tutorial at the start area of the game to teach users how the mechanic works, but otherwise there is no mention of the mechanic at all again. The goal of this project is to have the scaling mechanic feel intuitive enough to the user that it won't break their immersion in the island experience whenever they have to use the mechanic.
Island Exploration was made using the Unity game engine with the built-in OpenVR packages, used in conjunction with the Vive and SteamVR. Unity provides a GameObject (primitive object type in Unity) that represents the physical play space of the Vive. Since other Vive controls like the player's vision and controller objects are also linked to this GameObject, manipulating the GameObject will also influence these other controls. Scaling the GameObject at runtime will cause the player to feel like they are scaling up and down by the same factor.
Scaling works in a tree-like level-based system. The island is broken down into its various points of interests, and then those points are grouped into multiple different chunks. When a player scales down on the island, it will scale them down to the size of the chunk closest to them. The player will then be able to select a specific point of interest from that chunk of the island to scale down further to regular size and begin interacting with that scene.
This system for scaling was implemented because it would otherwise be difficult for players to identify where points of interest are located on the island. This system allows us to guarantee that no matter where a player scales up or down, it will place them at a point of interest.
While the user is navigating the island at a scale bigger than 1:1, an indicator will highlight the area that the player is set to scale down into.
The final build of the Island Exploration application can be downloaded here.
Note: This application requires Windows and the HTC Vive with Steam VR to run.