Tongyu Zhou, March 2022

Background

Mirror is an open-source, high level networking library for Unity that is optimized for ease of use and probability of success. It was specifically created for indie games and small MMOs. Originally, it was a fork of Unity's UNet HLAPI, which has since become deprecated, and thus migrating from this old Unity framework is is easy. While the transport layer supports any kind of network topology, it mainly focuses on supporting client-server topology. It does allow a participant to be both a client and a server at the same time, so no dedicated server process is required.

Community

As one of the most popular networking solutions alongside Photon PUN, Mirror has a dedicated Discord of 12,000 members (this is the largest Discord in comparison to other competing solutions) and a forum. Several video-based tutorial series can also be found here:

Since Mirror is open-source, developers are also encouraged to make active contributions.

Documentation

Currently, Mirror supports Unity 2019 LTS and has a comprehensive documentation that can be found here. The API docs can be found here. Functionalities are built from a series of layers, as visualized below:

A quick-start project that you can immediately download and run can also be found here.

Pricing

Mirror is free and can be downloaded from the Unity Asset Store. Funding for this plugin is provided through donations on their Github, where a subscription model is employed (with tiers of $5, $20, $200, and $500). Each increasing tier places you higher on the priority queue for Mirror Team support.

Features

  • Server and client in one architecture

  • Message handlers

  • General purpose high performance serialization

  • Distributed object management

  • State synchronization

  • SyncVar, RPCs

  • Transports:

    • KCP: reliable UDP

    • Telepathy: cross platform TCP

    • LiteNetLib: UDP

    • Ignorance: ENET UDP

    • Simple Websockets: Websockets

    • FizzySteam: SteamNetwork

    • Epic Transport: Free Relay