Booster

The Mirror Booster uncorks your multiplayer game by moving the Networking load out of Unity!

Architecture

With regular Transports, Unity has to handle all the Networking load

Regular Architecture

With Booster, all the Networking load is taken out of Unity:

Booster Architecture

Features

  • Make Unity the Bottleneck again! That’s right. Previously, all Unity/Mirror games were mostly network limited. We couldn’t support 500+ CCU because the low level networking was simply too slow. Booster can handle 100.000+ connections easily, making Unity the only bottleneck again. Realistically, Unity 2018 + Mirror + Booster should be able to handle 1000-2000 CCU in a real world MMO.
  • Security: Booster protects against several common attack vectors like allocation attacks. And since it’s very good at handling a lot of network connections, it acts as a small DDOS-Protection & Load-Balancer by simply being really, really fast.
  • Ease of use: two step installation. Everything else is automated.
  • Cross Platform: runs on Ubuntu Linux/Mac/Windows servers.
  • Stability: Booster endured dozens of heavy stress tests over the months. It just works.
  • One-time Payment: no cloud, no monthly fees. You send us money, we send you a binary.

Background

Unity’s ability to deal with giant amounts of networking connections is very limited. While working on uMMORPG, we tried just about any available networking solution. None of them scaled well enough, and here is why:

  • TCP via Telepathy (2 Threads/Connection): scales up to Unity’s 1200 Threads limit, effectively supporting at max. 600 players. At the point of 600 players, Unity has to do a LOT of processing with 1200 threads. Telepathy is still our best scaling Transport, which is why it’s the Mirror default. At best, it can handle 600 players with >1000ms latency.
  • TCP via async/await: NET 4.X introduced async/await, which allows us to use TCP without 2 threads per connection. Async/await is a more lightweight solution, which performs greatly in regular C# programs. But with Unity’s Mono version it only scales to around 100 CCU before causing 120 second latencies.
  • TCP via SocketAsyncEventArgs: Microsoft introduced special IO optimized threads via SocketAsyncEventArgs (aka SAEA). We created a SAEA transport which scaled tremendously well outside of Unity. Inside of Unity, it too causes 120s latencies because of the way Unity handles anything async.
    TCP via BeginSend: C#’s TcpClient offers a very old (Net 3.5) asynchronous BeginSend/BeginReceive model. It’s not affected by Unity’s async issues, it is however very slow and does not scale past 100 CCU either.
  • UDP via ENet/LiteNetLib: great latency initially, but neither scaled past 200 CCU in our uMMORPG stress tests.

Supporting true MMO scale networking in Unity is a hard problem. Unity is already single threaded. Handling thousands of monsters & players in one thread is difficult enough. Handling network connections and packet sending for thousands of players is simply overkill.

That’s why we made Booster. Instead of handling thousands of player connections in Unity, we offload all the low level networking to the Booster. It’s a separate program optimized to handle large scale TCP networking connections based on truly optimized and established networking technology which is not limited by Unity or C#.

Stress Tests

From day one, we decided to only ever test the Booster in real world, MMO Scale scenarios by using uMMORPG. In our latest test, we managed to handle 500 players in a complete worst case scenario, everyone broadcasting to everyone else with only 300-500ms of latency.

This load test is completely insane. Think about it: when was the last time you saw an MMO server handle 500 players in the same spot?

uMMORPG + Booster 500 CCU worst case test.

Our next test will be a 1000 CCU real world scenario, with players spread out across a huge map. We are confident that our Booster will handle it easily, while the main challenge will be to find that many players.

Summary

Unity is main thread limited.
Offload Networking to the Booster to uncork Unity.

If you target less than 500 CCU, Booster isn’t worth it.
If you target up to 500 CCU, Booster helps.
If you target 1000 – 2000 CCU, Booster is highly recommended.

Pricing

$50 – Binary Download.