Egg Rush
VR tech demo for custom movement and object interaction system.
Development: September 2020 - December 2020
Position: Solo Development
Tools: Unity, C#, Steam VR, Oculus
Project Goal:
An independent research of Virtual Reality platforms and development. I conducted my own research on existing VR hardware and systems to learn about the strengths and weaknesses of the platform. I then developed my own solutions to the challenges identified and consolidated the systems into a short demo, Egg Rush. Download
VR Movement
Again, Unity and the SteamVR plugin have been chosen as the development environment for this experiment. The technical design behind this system is to mimic the idea behind a joystick on a gamepad, where the player sets their starting position and then the direction and distance from the user’s head to the starting position. This gives the user 360 degrees of movement. The distance measure also applies to the users velocity, where the further away the user is, the faster they will move.
Object Interaction
I start with a basic Unity environment(v2019.3.7f1) using SteamVR(v2.6.1). This game engine and VR utility were chosen, because of ease in development for multiple platforms simultaneously and personal familiarity with the API.
The designed objective for experimentation would be to accurately pick up the most likely intended ball out of a container with multiple balls in it. This represents a recreation of an observed issue in other experiences, where objects grouped together can be tricky to grab the intended object on first try.
Optimization &
Multiplatform
Multiplatform
After researching best practices and techniques for VR optimization and multiplatform development, I developed my own demo built for Quest 2 and the Valve Index. In this project, I decided to start learning Unity XR Toolkit to build a platform agnostic experience. The plugin actually worked pretty well for this demo. I designed the controls to be physical buttons and the simple grip button that is pretty standard across VR platforms. Doing this made building for different platforms easy since I only had to adjust build settings to switch between PC and Android builds.
Retrospective
This project has been an excellent exercise in putting my research over the various topics into practice. With future projects I hope to build upon my knowledge of user interaction to better enable player's ability to interact with their environment. While I was able to implement the flocking algorithm, the constant twitch of the eggs is extremely distracting. It may be ideal to use the flocking algorithm to determine which objects to pickup, then delegate those objects as children of the grabbed object. This would hopefully reduce the twitchy movement of objects and possibly make those objects easier to access with other systems.