MOBA Games Analytics – Platform Balance Details

In the previous article I started analyzing the platform balance for a MOBA game that supports multiple platforms and allows players on PC and PlayStation 4 i.e. to play together in the same match.

Looking at the summary statistics on platform distribution we could not find any obvious disbalance issues. Now I am going to continue the research, but only for PvP mode from now.

First it makes sense to start looking at the platform distribution within teams over a time period (each column below is a day of observation):

moba_platform_detail

This sample report shows data for 5 time intervals, and you can see that most team combinations are 0-5 (0 PCs and 5 PlayStation 4), following by 1-4 (1 PCs and 4 PlayStation 4) and so on.

The next question you should ask what is the win rate for each platform combination in teams:

moba_platform_detail2

Ok, the win rate grows with the number of PC players in a match, but as you can see above, the number of games with PC platforms exceeding PS4 platforms in a team is small, so the matchmaking already tries to balance the PC advantage (that’s itself interesting to investigate in detail).

When you know how the platforms are distributed in teams, it is interesting to know which teams/platforms combinations appear in matches:

moba_platform_detail3

In this example data set, 0-5/0-5 means a match where 5 players on PlayStation 4 play with another team of 5 players on PlayStation 4.

moba_platform_detail4

Fortunately (obviously for PS4 players), the number of 5-0/0-5 matches is low. Let’s double check and look at the win rate for team/platform combinations right now:

moba_platform_detail5

Here we can see confirmation (the view shows the win rate of the first team in PC-PS4/PC-PS4 combination) that the PC platform has some advantage. 0-5/5-0 means that 5 PS4 players has the win rate about 40% when they play with 5 PC players. 1-4/0-5 and 1-4/1-4 is about 50% as expected.

Why does one platform have advantage over another? It is a very interesting question, and the answer may have nothing related to the platform and its mechanics itself. I will try to go deeper in further posts.

MOBA Games Analytics – Platform Balance Summary

Some MOBA games are cross-platform titles, so you can choose whether to play on PC, Sony PlayStation 4, Xbox One etc. Moreover, in some games players on different platforms can appear in the same match.

In a MOBA, how does this affect the game balance and matchmaking quality? First let’s look at the players distribution on the supported platforms over a time period:

moba_platform_summary

In my sample data, you can see that the number of players on one platform is 3 times greater than on another one. Is it a problem? Let’s see at the win rate for each platform:

moba_platform_summary2

The win rate is slightly different on two platforms, but together it exceeds 120%. How can be this possible?

We can assume that the win rate is higher for players in Solo (single player vs AI) and Coop (multiple real players vs AI) modes compared with the PvP (players vs players) mode. Let’s verify this by looking at the win rate distribution per match mode:

moba_platform_summary3

Ok, now we see the win rate in Coop matches is very high (bots are weak?) and it is around 50% in PvP games as we may expect. Solo win rate is low, and you can explain this as either the players who chooses this mode are newbie, or it is experienced players who want to experiment, and do not want to disturb other players.

Since for the game balance and matchmaking quality we are mostly interested in PvP matches, we have not found any significant disbalance so far. But we cannot be sure whether it is good now.

What we can additionally do is to see how the win rate is distributed within players having different MMR (matchmaking rating):

moba_platform_summary4

We can see that top players has a higher win rate. Probably you will not be able to fix that since the number of top players is always small, you cannot always match them to play with each other only for various reasons.

We need to do a deeper analysis that I will do in the next posts.

Linear Trend Analysis using Least Squares Regression and R

Trend analysis helps you estimate if the metric of interest (daily users, sessions, sales and so on) is growing or declining. Sometimes the trend is obvious:

trend1

But what about this example of real life data:

trend2

Can we be sure now that the metric grows on average over time or not? Simple way to see this is to fit the least squares regression line:

trend3

From the plot above we can see that our metric slowly grows over time.

# R script to plot the data and regression line

# data is vector of data points
# days is vector of days of observations
days <- c(1:110)

plot(data, type="l", col="darkblue", lwd=1)
abline(lm(data ~ days), col="darkgreen")

But can we see how fast the metric grows on average? Let’s investigate the regression slope:

> lm(data ~ days)

Coefficients:
(Intercept)         days  
    40601.4         27.6  

From this output we can see that our metric grows by 27.6 daily on average. What can we do more? So far we fitted the regression over the entire period of observations (in our case it is 110 days). Now let’s see the regression coefficients for last 30 days:

> lm(data[80:110]~days[80:110])

Coefficients:
 (Intercept)  days[80:110]  
     23244.7         210.8  

You can see that if we consider only last 30 days our metric grows by 210.8 daily, so our trend rate is also increasing our time! This is very useful to know and estimate.

The trend analysis we just did is quite simple, but unfortunately it cannot be always applied. You may need to consider other methods like Theil-Sen estimation if the data contains many outliers, or autoregressive models if there is autocorrelation in data.