DigitRaver Logo

400 Clients, One Server: Breaking MMO Boundaries on Mobile

DigitRaver Team
technologyperformanceinnovation

MMOs & metaverses typically serve 40 simultaneous users per server. There are two cardinal constraints: ability to receive server bandwidth and on device rendering on mobile.

DigitRaver can serve 400 clients running on a phone. This includes animation, music stream decoding, post processing, shadows, avatars, and cross network interaction.

I initially built the spawner as chaos monkeys, thus network latency test is not 1:1 with live users, but for rendering and network decoding, our biggest bottleneck, it's on par.

Maybe first, I'll explain why this isn't just a flex.

DigitRaver is a virtual venue, built for electronic music. If you're simming a rave, size matters. But this is a show, not tell, so let's see how it looks like at default size, 40 clients:

We've got Ravers (the robots), Performers, transmitting face pose over the network in this as well. 40 users seems fine on paper, but feels empty. I concentrated the chaos monkeys within a small area for this stress test. Humans typically wander around in which case the load on the computer is reduced. But we aren't here to make it easy for us, are we?

Let's 3X this to 120 Clients:

That's more like it. Under typical human behaviour, this is close to what you'll see in any one place.

MOAR…and let's switch to another Stage, just for fun:

~24 avg FPS at 320 clients. Contrary to common belief, some popular mobile games run sub 30 as a baseline, notably in the casual genre.

Lets see if we can tank it. 400 clients:

~18 FPS is suboptimal, but I'm still not getting frame drops or visible latency. Furthermore, the platform still runs at full speed when I'm not rendering all the clients simultaneously. This is a natural tendency as, unlike NPCs, humans venture and explore the worlds, but will still run fine when a large crowd gathers near a Performer.

How did we do it? By not throwing the kitchen sink at our tool stack. Most tools are generic and are compute hogs. They need to cover all the edge cases for all use cases in games. Sometimes the trade off just isn't worth it and custom tooling will give you the edge to get 400 users in a single server!