Author: Javier Olivares, Lead Programmer
Hello everyone,
A new feature was introduced in Update 0.13 - the reworked Matchmaking 2.0. While we do know it still has some issues to fix, I would like to address some of the topics related to its implementation in order to explain how some of its elements work.
Team Splitting
Team splitting begins with a pool of 30 players provided by Matchmaker to form a match. Selection of those initial 30 players includes some filters to allow better balancing, such as pairing platoons with similar tanks.
Disregarding platoons and arty for the moment, team split begins by sorting the pool by Tier, Category, and Skill (win rate). Meaning all top tier tanks are at the top of the list, with MBTs at the top of the tier, then sorted within MBT by skill.
Teams are then divided up in an "ABBA" fashion, meaning we start at the top of the list and place each player in a team based on the conditions in this order (if a previous condition passes, no other condition is evaluated):
- If any team has 2 more of the category being placed, the other team gets the current player. We don't do 1 more because category balance would out-weigh tier balance
- If any team has fewer "tier points" (all tank tiers added up) they will get the current player
- If any team has fewer players they will get the current player
- All things equal, randomly choose a team
While rare, there is a sanity rebalance in case one team ended up with more players than the other. Players from the bottom of the overweight team are moved to the underweight team until the teams match. Lastly, we attempt to balance the average win rate of the two teams with the following algorithm:
- Calculate average win rate percentage of the two teams and attempt to balance if the difference is greater than or equal to 1 percentage point.
- With players sorted by win rate, start with the best player on the overweight team and the worst player on the underweight team.
- Swap the two players if they are the same tier and category and do not flip the imbalance, otherwise move inward on the sorted lists trying to find a swap.
- After a swap, repeat from a) or stop if there is no possible swap.
Artillery vehicles are dealt with by sorting them to the very top of the list in pass 1 and 2 so they are placed on teams first, balanced by tier and skill. Platoons are a complicated manner, but in summary are dealt with by first sorting and splitting the platoons against each other based on combined tier and skill. Platoon members are force placed on teams in step 2, but in sorted order so that balance isn't thrown off by placing all platoon members first. We feel there is more room to improve in properly pairing platoons with equal counterparts and are continuing to improve their balance.
Average Win Rate Smoothing
The reason we balance average win rate is due to statistics gathered on the difference win rate makes in the outcome of a match. We discovered that even a small advantage of 2 or 3 percentage points resulted in much higher probability of winning. The below chart is based on the result of over 30,000 matches before the smoothing algorithm was added.
Prior to implementing the win rate smoothing, only 40% of matches were within +/- 1 percentage point, 30% were +/- 2 percentage points, and 30% +/- 3 or more. After implementing the smoothing algorithm, over 99% of matches are now within +/- 1 percentage point (based on a sample of over 140,000 matches).
Landslide Victories
On the topic of the "landslide" issue in AW, we feel this is often the by-product of the game’s fast-paced nature and not the result of poor matchmaking. The following distribution shows the number of survivors remaining on the winning team over a sample of over 28,000 matches:
The meaning of this distribution is open to interpretation, but games typically have around 7-9 survivors while 10+ survivors (28% of matches) is actually a normal result of the game. This supports the "snowball effect" theory that once a team has a slight advantage -both in terms of numbers and available HP- they have more opportunities to quickly overwhelm the opposing team. Our observations of competitive matches with two teams of similarly skilled players also back this theory up. Landslide victories aren’t what we strive for and ideally we’d love for every match outcome to be a close game, but given the number of variables which play out in each match it can be a somewhat unrealistic expectation.
What we are doing though, is continuing to fine tune gameplay mechanics and map balance to promote closer match outcomes. Player theories suggesting this is the result of imbalanced matchmaking would have to suggest that MM is somehow consistently making unbalanced matches despite generally random distributions over a high sample of games and specific efforts to balance skill and team composition.
We hope that this post clarifies some of the questions and will see you on the battlefield!