Save The Building
Virtual Reality research project made in Unity
Position: Designer and Programmer
Developed by: Embodied Games
Contributions: C# scripting and optimization. Introduced major polish and bug fixes to prepare the project for its official release.
About
Save The Building is a research experiment developed by Embodied games. I was contracted to take the early prototype and prepare it for release. This included optimizing existing code to improve performance, implement systems to track and save data using the HP Omnicept VR headset, implement new gameplay mechanics, and fix any bugs or issues with existing ones.
I set up scripts to manage disabling and enabling rooms based on the participant's current positions to save on resources, I created a dynamic dialog system to allow for the quick implementation of interactive dialog boxes throughout the experience, I created a sine wave script that allowed for different types of sine waves to be created at run time and used in various places, and I regularly met with clients to ensure their objectives were being met, and that the project maintained a high level of quality.

Dialog Box Script
This is a script I wrote to help optimize the project and clean up bugs. There were several different dialog boxes throughout the project, each of which used a separate script and had several hard coded values.
I started by planning out a dynamic script that would be able to accomplish the necessary functions of a dialog box without repeating code anywhere, but also would allow for designers to drag and drop in specific functions from other components to do things such as set a condition on the next button, or start an animation using Unity's Event System.
I set up tool tips to help explain each field in inspector, and used serialize field to expose things that would be useful to set in inspector, but did not necessarily need to be a public property.
UXF Trackers and Save States
We used the Unity Experiment Framework (UXF) in this project to accomplish things like data tracking and saving. I set up multiple different settings profiles using JSON that are used to alter certain conditions based on the experiment group. This controls whether or not the participant goes to the meta-cognitive thinking room, and it controls whether or not the whiteboard appears there.
To set up save states, I used the user settings file that gets created with the UXF Session, and used it to track things like what trial room they're in, or how many attempts they have remaining on a test. This allows for experimenters to quickly resume a session without losing any data, in case the computer is disrupted or loses power during the experiment.
I also created my own tracker component to work with UXF specifically for tracking the heart rate and cognitive load data from the HP Omnicept VR Headset, as these two values were an important aspect of the research project. I created scripts that would save screenshots out from the meta-cognitive room, and scripts to store test results to a folder as well.
Preventing data loss, keeping trackers accurate, and making sure each experiment group followed the correct settings were all important aspects of this project due to it being used as a professional research project.