Multiplayer VR Development in Unity
Laila Gamaleldin, February 2021
Unity3D gives you the ability to develop multiplayer VR experiences. Unity3D itself does not have native multiplayer support but there are a variety of plug-ins that can be used to create multiplayer experiences. These plug-ins work for both VR Unity3D projects as well as non-VR ones.
A wide variety of Unity networking plug-ins exist. Some are better suited for certain applications than others. A web search for Unity networking plug-ins yields the following:
The Unity Blog provides an in-depth analysis of some of the most popular networking plug-ins. Below is a chart that they provide with ratings for each of the plug-ins on a variety of categories. Along with the table, they also provide this report which goes into each of the plug-ins in more depth.
Where to Get Started
Not sure which plug-in is right for your project? Unity provides the following chart to help you decide:
Normcore: relatively new, designed with XR in mind, so unlikely to run into issues integrating networking and VR
Forge: open-source, meaning you can trace bugs and adapt the software as needed
SmartFoxServer: extensible, custom server-side logic. Comes with extended lobby features like rooms, messaging, matchmaking, etc. SmartFoxServer has been around since 2004, so there is a lot of support and many code snippets
Socket Class: highly customizable, you create your own implementation for whatever type of project you're building. Requires a strong technical background and lacks the support of a traditional API
LittleNetLib: no dependency on Unity, very DIY. High level of control but expects you to have a good understanding of networking