Asset Integration and Workflow Management
One of my initial challenges was ensuring smooth integration of assets from artists into the engine. Although some artists were unfamiliar with version control systems (e.g., GIT), I facilitated the integration by receiving assets directly and placing them into the engine myself. This ensured that the production pipeline ran smoothly despite some team members not fully adopting the necessary tools. My efforts led to streamlined workflows and efficient task management, helping the project progress without major delays.
Unity and Virtual Reality Setup
The project involved the development of a VR experience, and I utilized the Oculus Virtual Reality Integration plugin, which I was already familiar with from prior projects. This made the integration process relatively seamless and allowed us to focus on VR-specific challenges, such as optimizing the user experience for Oculus Quest 2. Despite debates on using Unreal Engine, I championed Unity for its flexibility and better fit for our specific needs.

Development of Transitions and Scene Management
A key focus of the project was the development of scene transitions, which had to be smooth and immersive to maintain the flow of the VR experience. I prototyped 46 variations of 9 distinct transition types, iterating on these designs through testing and feedback to determine which worked best. These transitions were essential for the narrative and experiential qualities of the VR scenes. I also integrated Bezier paths and Boids systems for simulating realistic bird movement in the "Bird Picture" scene, providing both smooth animations and a level of interaction with the user (using hand gestures to guide the flock).
Handling Performance Optimization
One of the most pressing concerns was ensuring that the VR experience ran smoothly without compromising the visual fidelity of the scenes. This included reducing polygon counts, optimizing textures, and implementing Level of Detail (LOD) techniques to boost frame rates. I managed to keep the polygon count between 800k and 935k triangles and ensured that draw calls stayed below the 150 threshold, which was critical for maintaining performance on the Oculus Quest 2. Additionally, optimization techniques such as Mesh Combination, Texture Atlases, and Async Pre-Loading were implemented to ensure smooth transitions between scenes.
Boids System and Flocking Behavior
For the "Bird Picture" scene, I implemented a Boids system to simulate flock behavior. This was a fun yet challenging task, as I had to balance realistic bird movement with computational efficiency. To create natural trajectories for the birds, I employed Bezier curves for individual birds and tested the flock dynamics using parameters in the Boids system. This also involved refining how users interacted with the system, using hand gestures to influence the flock’s movement, which added an immersive layer to the experience.
Scene Setup and Additive Loading
A key challenge in VR is managing real-world space within virtual boundaries. I designed a solution that leveraged Additive Scene Loading, allowing for smooth transitions between scenes while keeping the user's position consistent. This was especially important to prevent users from colliding with physical objects during the experience. However, this approach presented performance challenges, as loading multiple scenes at once could lead to frame drops. To address this, I employed strategies like Async Pre-Loading and Mesh Combination to optimize performance without sacrificing visual quality.
Performance Monitoring and VR-Specific Features
In addition to standard optimizations, I worked on VR-specific features like the Self-Alignment System, which adjusts the virtual environment based on real-world space to ensure proper alignment and immersion. I also developed a Custom VR Guardian system, which allows users to safely navigate the environment by alerting them to nearby real-world objects. These systems enhanced the overall user experience by minimizing the risk of collision and increasing the sense of immersion.
Repository Management and Collaboration
I also managed the project’s version control system, overseeing the creation of the repository and organizing the workflow for team members. Each team member worked off a "development" branch, creating feature or content-specific branches. Once their tasks were complete, these were merged back into the main branch. The branch naming convention (e.g., "Feature--Example" or "Content--Example") kept the repository organized and ensured that merging was efficient and seamless.
