We talk to a lot of developers building live service games here at PlayFab and one of the biggest challenges they face is ensuring that their backend server infrastructure can handle their anticipated user load. While we pride ourselves on our ultra-reliable backend solutions capable of handling tens of millions of users, what do we (and our customers) mean by that: daily users, monthly users, sessions, concurrent users? Which metric matters?
First off, let’s take a moment to define these terms as they are commonly used in the game industry:
- Daily Active Users (DAU): The number of unique users that play your game (start at least one session) in a given day. This is not the same as session count as each unique user may play several sessions in a day.
- Monthly Active Users (MAU): The number of unique users that play your game (start at least one session) in a given month. This is not a sum of DAU for the month as many users may play on multiple days during the month.
- Sessions: The count of user sessions logged in a given period of time. This number does not quantify unique users at all and is just a raw count of logins. Dividing daily session count by DAU will give you average sessions per user, an important metric for engagement and economy balancing.
- Concurrent Users (CCU): The number of simultaneous active users logged in to a session at a given time. This number does not quantify unique users at all and is just a raw count of logins.
While DAU, MAU, and Sessions are all very valuable metrics (and tons of info can be derived from them) when it comes to server stability and the ability of your backend to handle serious traffic when your game blows up into a huge hit, CCU is the number that matters the most by far.
And when it comes to CCU, it's not enough to know your average. What matters far more is the peak CCU — what is the highest number of users who will be playing your game at any given time. Fail to plan for that, and it won't matter if your game economy is brilliantly optimized, because you will have either under-guessed and the game will crash, or you will have over-guessed and thus be overspending.
Calculating your CCU
In steady-state, post-launch operation, most games will see peak CCU around 10% of DAU, and average CCU around 3-5% of DAU. That is to say, if you predict you’ll have 100,000 DAU, your backend servers will need to handle at least 10,000 CCU.
But that’s post-launch. What about when your game is newly released? You’re probably running aggressive acquisition campaigns, gaining press coverage, and maybe you get featured placement in the App Store or Google Play. Not only will your DAU spike, but your CCU can spike much higher as well. During a successful launch, games will often see their biggest, most demanding traffic numbers, perhaps 5-10x what they’ll see during normal operation. Peak CCU can also spike to as much as 20-30% of DAU due to play patterns in key population centers. So if your DAU spikes to 500,000 just after launch, your servers might have to handle as much as 150,000 CCU. Are they (and you) ready for that?
This is the biggest reason why success can be dangerous if you don’t have scalable (or ludicrously overbuilt) backend server infrastructure. One reason cloud-based solutions (like PlayFab) are becoming so popular is because they can provide affordable, scalable, stable architecture that will withstand massive success spikes, and automatically recalibrate for more reasonable loads, minimizing costs and risk.
However you choose to build your live service backend, it’s critical that you anticipate both your day-to-day needs, and the possible additional loads you could experience during a successful launch or massive viral success. Focus on CCU and you’ll ensure you calibrate your needs properly.