*Now that we have the basics down from the previous article, let’s look at how the MMR and rankings in** StarCraft II.*

One of the design goals of *StarCraft II*‘s multiplayer is to match players with opponents such that they win 50% of their games on average. The system does this by matching players very close in MMR (matchmaking rating); the closer the MMRs, the better. Players identical in skill level should often have close and exciting games, a recipe for fun! The details of the search algorithm are not known, but it seems that it begins by searching for players in a a very small range around your MMR and slowly expands it (perhaps the “expanding search?”) (and probably in a logarithmic range as opposed to linear) as time searching progresses. Once players are found, they are put into a game.

MMR itself is never displayed and as such the details of its calculation are very hard to gleam. Assuming its similar to Elo, the system will increase a player’s MMR by more if they defeat a relatively more skilled opponent and decrease it by less if they lose to a more skilled opponent. The Elo-style math is a bit messy, but essentially the algorithm calculates a percentage chance that each player will win based on the players’ MMRs. The chance scales logarithmically with their differences; a 400 point rating difference might means *A* has a ten times greater chance of winning than *B*, eg, about a 90% chance to win. If a player wins, the system increases their MMR by the chance that they would **lose** times some system-wide constant, *K*, and does the opposite for their opponent. For example, if *K* is set to 12 and player *A* has a 90% chance of winning against *B*, and *A* does indeed win, his rating would increase by only .1*12=1.2, while B’s rating would decrease by the same. If *B* won, his rating would increase by .9*12=10.8 and *A*‘s would decrease by the same amount. The system does not punish *B* very much for having to play *A*, but rewards him significantly if he does well.

Ideally, Battle.net would never match players this far apart in rankings. Additionally, the values for *K* and the exact logarithmic scaling numbers are unknown (though essentially unimportant to the behavior of the system). The system also almost certainly takes into account volatility in calculating MMR changes. A new player could swing hundreds of points in MMR when first playing. If you win all five of your placement matches, it will probably rate you very high and match you with very high rated players, but a couple losses will plummet you to a new “test” range until you are winning 50% of your games and your rating doesn’t change much.

This is all well and good, but we never see any of the numbers used for **matchmaking**, only for **ranking**. **Rating** refers strictly to MMR, but **ranking** determines your place within a division and has nothing to do with MMR. Bizarrely, the system matches your opponents in a different way than it ranks you. Let’s take a crack at rankings and points.

Within each division, players are ranked by how many points they have. Points are earned by winning matches. The number of points you earn from a win or lose on a loss is calculated by the following:

p = 12 + x + b

*p* is your calculated change in points. *x* is some integer from -12 to 12. This number is picked based on players comparative MMR. Finally, *b* is some amount of points from your bonus pool.

You can tell what *x* is going to be from the loading screen for a match, where the game tells you who is favored to win. The system calculates your opponents MMR if they were to beat you (their “projected rating”), then compares to your current rating. If it is nearly the same as your rating, the game is displayed as “even”, and *x=0*. If their rating is a little better , they are “slightly favored”, and x is 1, 2, or 3. If there is a big difference, then they are favored, and x is between 4 and 12, inclusive. The same mechanic works if you are favored, except that the numbers are negative. For example, if you are favored in a match and the system calculates the difference between your current rating and your opponents projected rating corresponds to x=8, then you would gain 4 points for a win and lose 20 points on a loss (excluding bonus pool).

The weird part about using the player’s rating and the player’s opponents projected rating to display who is favored in a match means that players can see different data on who is favored. If your rating has a high volatility, like when you first start playing on the ladder, your rating will drop more on losses, meaning that you will see a lot of opponents “slightly favored” or “favored” and have the opportunity to gain more points. This, combined with the bonus pool, makes the points system much more than a zero-sum game.

The bonus pool is a set of points that accumulates over time and on different events. It seems to generate at a constant rate over time, and new players seem to get the total number that would have accumulated for them had they started at the start of the season. If you win a game, then some number b of points is drained from your bonus pool and added to your point total. This number is up to 12+x if you have enough points available. For example, if your bonus pool has 4 points and you win an even game (x=0), you would gain 12+4=16 points for your win.

The league you are placed in uses your MMR, but your ranking does not. Does ranking actually “mean” anything? It seems more like smoke and mirrors; your ranking does not influence your match-ups, nor does it even necessarily correlate with your MMR. A top ranked platinum player by points could theoretically be on the verge of being demote gold league. Still, by and large, the leagues and rankings do give a sense of progression and a way to measure your skill and dedication against your peers without being labelled with a skill number. It’s a success for bringing competitive gaming to the masses, but hardcore players might just want to see their MMR.

The ranking shows that they’ve played lots of matches and are still able to stay top, so it’s not just a case of getting a big MMR, then not playing to stay at the top of the rankings.

Also, did you really need to make p modulus? I guess it gets the point across that it can’t be negative, but since it won’t go below zero anyway, well… you don’t really need it.

– Nit picking is fun!

In fact, looks like that was a small mistake from when I re-formulated that equation from an earlier draft. In this set up, x can be negative, less than -12, making the equation unsolvable. Edited to be consistant with the text.

Heartbourne, did you study/major in something that has to do with math? Not that it’s any of my business, it’s just that every once in a while you put out an interesting mathy article.

Yes. I am studying math/economics in my senior yeah

Hi Heartbourne,

I’m a little late in seeing this post, so I apologize for bringing up old information. I noticed that your Leagues and Ladders posts share some information with my old Team Liquid forum post that attempts to explain the fundamentals of the system (found here: http://www.teamliquid.net/forum/viewmessage.php?topic_id=118212). However, with the advent of sites like SC2ranks.com we’ve been able to gather more evidence that supports some sections of my initial post but refutes others. Namely, the league distribution is not based on percentiles as I originally thought (and you list in your Part 1), but rather MMR breakpoints. We can prove this by visiting the SC2ranks main Stats page found here: http://sc2ranks.com/stats/all/1/100 which shows that the league distribution varies by region, whereas if the system adhered to strict percentiles for ranking players, those percentiles would not deviate nearly as much from server to server. Therefore, I’d like to offer that correction (and I edited my post on Aug 7 as well).

As for your Part 2, I think you’re on the right track, but I’d like to take it a step further and reference my Part 2 thread on TL.net, found here: http://www.teamliquid.net/forum/viewmessage.php?topic_id=142211 Specifically, I’d like to introduce the concept of the uncertainty factor sigma which we believe influences promotion or demotion chances in addition to locating potential opponents. That is, if MMR – sigma * 3 > lower_league_threshold and MMR + sigma * 3 < upper_league_threshold, then you would be moved to that new league. In other words, we believe that a 99.7% confidence is required by the system before it moves a player.

I'd be interested to read your thoughts on our Part 2 analysis thread, either on the TL forums or on your blog.

Hey Excalibur, it looks like the email you used for your comment is invalid. Send me an email at heartbourne@lorehound.com when you have a chance and we can chat!

Well im seeing this as some total bs. I have seen gold ranked people with 16 wins and 54 losses (my fav example) now how is it after 4 of 5 wins in placement do i get placed 36 bronze? and after 60% wins im still in 3rd bronze? 200 games later should mean more then that. I tell you what it is, people bought the game long before i did and got placed really high because there wasn’t enough people to even rank low. and if thats not why, well blizz ya screwed another ranking system, fix it soon.

I am 4 wins 24 losses so when do i get to find the other bad players like me?

@memento

You could try getting better rather than waiting to play worse opponents… Watch replays where you lost, see what your opponent did and what you did wrong.

@memento

bro, i’m gonna be honest with ya, i was the same way, i never played that much of SC1, but i was exited when i saw trailers and gameplay of SC2… so, i picked up SC2 of release night party, went home and played the campaign, then started doing multiplayer, i was in bronze for quite a while, the game has an amazing learning curve, you only get better by experience, that’s all i can say, but it’s not just a count of APM (actions per minute) or how many units you have, it’s about what type of units you have against what type of units your enemy has, also while attacking remember to either expand, keep your macro going (create units and tech up), these are key elements to winning

I am all diamond and I started at the end of august… I played slot of sc1 but I have seen players in leagues they shouldn’t be in… Sc2 does have a messed up rankng system…

hey,

I like playing 1vs1 and, i win a lot but..

Every time I win i get 1,2 or 4 points and every time I lose, I lose ALL my points again?

WHAT IS WRONG?

Even if my oponent is favored, i don’t get more points….

There is also not allways showed who is favored, is this normal?

All my friends are collecting 12 points or more for each game they win …

Please, can anyone help me?????

thanks,

J.

I ranked gold from losing 4 games out of 5.. But i had great macro :) i think its about your score in game and not your win/loss because I scored 2nd or 3rd highest every game.

Very good info. Lucky me I came across your blog by accident (stumbleupon).

I have book-marked it for later!

If you want to take a good deal from this paragraph then you have to apply

these methods to your won webpage.