top of page

Save The Building

Virtual Reality Research Project Made in Unity

embodied-games-savethebuilding.png

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 by Embodied games. I was contracted to take the early prototype and prepare it for release. This included optimizing existing code to improve performance, implementing systems to track and save user data from the HP Omnicept VR headset, implementint new gameplay mechanics, as well as bug fixes. I set up scripts to reduced the amount of game objects active at once to improve the frame rate, created a dynamic dialog system to allow for the quick implementation of interactive dialog boxes throughout the experience, and regularly met with clients to ensure their objectives were being met and that the project maintained a high level of quality.


One of the first things I noticed in this project was that many of the dialog boxes that appeared where hard coded. Each dialog box had it's own script that did that same thing but with different dialog and occasional logic checks before allowing the player to continue. Cleaning this up by making a dynamic dialog box script was one of the most satisfying moments of working on this project. I created a struct that held things like conditions for the next button to appear, text to be displayed in the dialog box, and additional events that would get called when the player opens to that page. This made it so only one script was needed for all dialog boxes, and all of the different data and conditions could be set in inspector by designers without having to adjust code.

A major challenge I faced with this project was having to adapt to the code of previous programmers who were no longer on the project. Without in depth comments and documentation, a lot of my effort went into reading through old code to understand what the purpose of it was and which parts of the project it affected before deciding what code to keep, what to improve, and what to completely overhaul. I learned a lot in terms of bug testing and optimization, I was also able to learn a lot from seeing how programmers unfamiliar with Unity use skills from other industries in game development, and overall I saw major improvements to the project from the adjustments and new code I made.

One of my top learning moments from this project was from using the UXF (Unity Experiment Framework). This is a package that allows you to save user data to spreadsheets using JSON. I hadn't worked much with JSON before, and had to teach myself in order to use this package. From this, I was able to set up functionality for user data to be saved to spreadsheets outside of Unity. I also set up a JSON based save system that allowed users to save their progress and start where they left off when closing the app, as well as tracking which experiment group they were in. The experiment group was saved to a JSON file, and this controlled various things throughout the project like whether or not the player got to interact with a VR whiteboard.

Gallery

bottom of page