Multiplayer VR Development in Unity


Laila Gamaleldin, February 2021

Overview

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.

Plug-Ins

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:

Comparative Analysis

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

Sources

https://forum.unity.com/threads/what-are-the-pros-and-cons-of-available-network-solutions-assets.609088/

https://blogs.unity3d.com/2020/09/08/choosing-the-right-netcode-for-your-game/