Team Size: 3-8
Tools: Unity, Visual Studio, GitHub, VRChat API, Blender
Development Time: Ongoing (beginning May 2023)
Programmer:
-
Designed, developed, and implemented a variety of network-synced meeting tools
-
Quickly learned to work within the limitations of an existing API and networking system
-
Managed communication between development team and sponsoring research team
-
Optimized the game to remain within the Oculus Quest's strict performance limitations
An experimental VR meeting platform developed under a grant from the National Science Foundation.
INTEGRATION
Meetspace VR is built within VRChat and hosted on VRChat's servers, which required quick adaptation to an existing development framework.
-
Due to the large scope of the project and the limited time available to develop it, we sought out a suitable base platform to build from.
-
VR Chat was selected due to its scripting capabilities, integration with Unity, and ease of use.
-
Meetspace VR was implemented within VR Chat's API, scripted using C# compiled to VR Chat's proprietary Udon assembly language, and developed in Unity.
NETWORKING
All functionality of Meetspace VR is fully networked between up to 32 players.
-
All systems must handle a variety of cases including late joining players, ownership transfer if the host leaves the server, and simultaneous interaction by multiple players.
-
Throughout the project, I developed several design patterns and editor scripts to make working within VRChat's API and networking system as smooth as possible for the entire team.
OPTIMIZATION
Meetspace VR's target platform is the Meta Quest 2 which imposes strict performance limitations.
-
Use of the Unity profiler was essential for identifying scripts and assets with significant performance impacts.
-
The project was also required to remain within VRChat's 100MB limit for Quest-supported worlds, necessitating careful compression of most art assets.
-
Currently the project runs at VRChat's maximum framerate cap of 45fps on Quest 2 headsets.
DOCUMENTATION
Documentation was created to preserve a knowledge base for the project as developers joined and left each semester.
-
As most developers on the project are students, much of the development team changes from semester to semester.
-
An Obsidian vault was created to hold project documentation and was included in the project repository to smooth this transition for new developers.