As per this comment by Evan. Not explained in-thread precisely what changes are and sadly pseudo-code hurts my head.
As per this comment by Evan. Not explained in-thread precisely what changes are and sadly pseudo-code hurts my head.
This is a little snippet on the wiki that explains the main differences:
A new matchmaker has been written to solve some of the failings of the previous while maintaining a similar flow. This new matcher will score rosters against both teams and the entire match instead of only considering alternating target teams. This is most notable when scoring ratings as a roster's fit is based on how it will balance team ratings instead of just how close it is to the target team's rating. One additional scoring parameter includes a bonus for balancing profession counts.
Will the same algorithm be used for ranked queues in the future? Because it seems to me like a lot of irrelevant factors are taken into consideration to score rosters.
Assuming the matchmaker performs better (which it entirely should), it would be enabled for all queues.
Looking at the pseudo code it seems the old matchmaking just put players on the team which had less people to make it a 5 person team ASAP and only considered the team rating rather than look at the ratings in detail for the matchup. The new one seems to look at the ratings of the entire matchup and tries to assign potentially fairer teams.
I know one thing they said they'd fix was the bug where teams were pre-rolled so if someone didn't accept, they just kept giving the team random players which meant the matchmaking was more and more skewed the more people didn't accept the queue pop.
You are correct on both points. It's as bad as it can look because the potentials list was already filtered on rating. The problem comes during off hours when the rating spread gets larger. Then the way that players are balanced onto teams matters a great deal more.
The substitution problem will be fixed at the same time for both the old and new matchmaker. I left substitutes out of the pseudo code to keep it simple.
One additional scoring parameter includes a bonus for balancing profession counts.
if team.count(profression) < otherTeam.count(profession):
score += config.professions.matching
You say you're balancing profession counts, but this pseudocode says that teams with different profession counts are better. So, if team A has N guardians and B has N-1 (or N-2...), that lineup is favored. Whereas if team A and team B each have 1 guardian, that lineup is not favored.
Seems to me that what you want instead is
if team.count(profression) == otherTeam.count(profession):
Edit: That code i linked is from the last 5 lines of the new pseudocode
That code is within a loop iteration where the potential roster has some number of the considered profession. If the roster is chosen, the end profession count for target team would be team.count(profession) + roster.count(profession). If the target team has less than the other team, then adding some number of matching professions would be favorable.
The configuration seems to indicate the off-season ranked will be queue sizes of 1-5. IMO, these should be kept the same as the current ranked queue sizes, as 1-5 will most definitely result in a lot of premade teams steamrolling solo/duos, as it happens in unranked (which isn't fun to deal with), and doesn't contribute much to learning map rotations when you're constantly being steamrolled.
Will our visible skill rating continue to change off-season? Will Season 6's soft reset be based on that? Or will it be based on the rating we reached at the end of Season 5?
Off-season has it's own rating and the season 6 soft reset will be based on season 5 rating, not off-season like before.
Evan, you write in the linked post:
I just checked and it takes on average 43 (+/- 10) games to hit minimum deviation.
Do you have any plans to allow deviation to increase again based on win/loss streaks in the next season? It doesn't feel like the system currently does that, and only shrinks the more you play.
The only plans for deviation at the moment are to prevent it from increasing over time.