This is long. Sorry.

Shortish TL;DR: Force warfronts to draw from a restricted band of ELO ratings during matchmaking, as well as some other stuff to make ELO more meaningful.

So, a while ago Ocho posted:

To be blunt, thatsoundsflawed in multiple respects. As has been pointed out by plenty, the current matchmaking system aims to make sure that both teams'total ELOis the same. Rift is not just a game of skill, there's other stuff that comes into play too. But in short, from the about description alone there are quite a few things which would cause it to go wrong.

- It equates the NUMBER of healers/DPS. It it therefore implied that the ability of the healers/DPS is not taken into account. So we can have t1 geared healers vs potato healers. Hopefully the result is obvious. Also, you can have stupid healer combinations like 3 chloros or 3 wardens.

- It doesn't care what the spread of ELOs is. It's a case of accuracy vs precision: in arguably every single warfront there are situations where people split off from the team. A team with one good player and the rest bad is at a disadvantage because that player can only be in one place at a time. A team with less spread ELOs won't have this problem. The total team ELOs might be similar but being in one place only is going to put the first team at a disadvantage.

- It equates the number of premades. If a good player queues with a few more casual friends, can they be matched against a team of t1 people farming their weekly? It sounds like it to me. And does the size of the premades even matter?

- Quitters/afkers, as was pointed out.

- Premades skew everything horribly. Your ELO rises with how much you join decent premades, which throws everything out if you then queue with different people or solo.

Of the above, 4) is by far the most difficult to deal with. I think that 1-3 and 5 can be improved, with a few inevitable side effects, if matchmaking proceeds as below.

Firstly, players in a premade should be treated as if their ELO is equal to that of the average of their group queue for the purposes of matchmaking. (Whether or not to do this when calculating ELO differences is something I'm uncertain about - see problems at the end.)

Skip this section if you're in a hurry or this burns your eyes or something - it's nothing more than a logical way to calculate ELO bounds and apply them.

- Have this run in variable intervals, say 50-70 seconds. Shortish queues, but queuing player counts have to build up a bit more for this to work. That time might need increasing, but I can't tell how many people actually queue for PvP.

- Look at each non-filled warfront in turn. Start with the most underfilled warfront first, else premade queue lengths will be very long as it would fill all 1-leaver warfronts before leaving no players left to match premades against.

- Calculate the ELO bounds of the warfront.

- Calculate average ELO of all players on each team, and the average of the two teams.

- Recall all the players who joined warfronts in the last 30? minutes. Arrange them in order of ascending ELO on a kind of number line. The players' identities aren't important, only their ELO and the fact that they have recently joined PvP.

- Find the point on our number line where the warfront teams' average ELO lies. To find bounds, we're going to count X/2 players left and right of that point, and those values will be our upper/lower ELO bounds. Mathematically, we don't know the distribution of the players' ELOs. So we can use the past to estimate what value of X to use to find bounds large enough to allow the warfront to fill up. If the bounds are too small, the warfront doesn't fill.

- X = max(0.2*number_of_players_in_number_line, 1.3*warfront_total_capacity_including_both_teams). I think that's the clearest way to express it (writing it in words is horrible :P), though the numbers are estimates which should hopefully work OK.

- So then we count this number of players to either side of the midpoint, and the last player's ELO is the bound. When we read left, we get the lower bound; if we read right, we get the upper bound. If we go over the end of our number line (say the midpoint is around person 15 and we want 20 either side of the midpoint) then the bound is zero/infinity, depending on which side we went over the end of.

- If the teams are unequal:

- Calculate the average ELO of player(s) required to set the two teams back to equality.

- Seek players who would accomplish this, but they must be within the ELO bounds of the warfront. Start by searching for players closest to the teams' average ELO.

- Adjust calculated values from 1) to reflect newly added player(s). Repeat the bounds-finding only if computation time permits, which it probably won't.

- If the warfront is now not full:

- Build a list of players, based on how close their ELO is to the teams' average.
- Add players, recalculating as necessary to make the average ELOs reasonably close to each other without being so computationally expensive that it is impractical. It'd be nice to include some healer balance, too. Trion must have some way of doing this already, surely.
- Look at our now-reduced player list. Find some way to reasonably quickly ascertain whether or not we can start a new warfront with the players we have left over. (This is hard. I don't know how much in the way of resources can be used for such a task, nor the better ways to go about doing this.)

I also would suggest changing how the ELO changes at the end are calculated to account for AFK/quitting a bit. Instead of just looking at the average ELO of teams at the end do this:

- At the start of the match, take each team's "total ELO" to be 0.
- Periodically (say 30? seconds) add the ELO of each non-AFKing team member to their team's ELO.
- At the end divide these totals by the number of time intervals which elapsed in the warfront, and use these for gain/loss calculations instead.

Basically, it'll mean that you get substantially less ELO for winning against teams who have been outnumbered a lot, and you'll lose less if your team has had people quitting a lot. All in all, it might hopefully reduce the fluctuations in ELO caused by people leaving early.

What does this all mean?

- Queues will get a bit longer, especially so for premades and/or at the ELO extremes.

- Matchmaking at low populations will still be terrible, but that is unavoidable.

- Variance in opposing teams' ELOs should shrink dramatically.

- Premades should be matched with players who have ELOs roughly equivalent to the average of the premade's queued members.

- It would be necessary to disable warfronts for a while after server restart (maybe 5-10 mins?) and then look at the list of queuing players or the bounds calculations will fly out the window, lol.

Problems:

- Premades will force the grouped players' ELOs to converge and then they will progress normally. It might be possible to tweak the K-value so that this isn't the case, though, but without knowing how this is done in the current live game I can't suggest much. Maybe a correction factor being something based around (real ELO - PM's average ELO)/ PM's average ELO - but that might skew ELO inflation/deflation. But fundamentally premades exist as a way to introduce the very ELO inequalities which I tried to eliminate here.

Another option exists: that is to calculate the ELO changes for group-queued players ALSO using their queuegroup's average ELO. For example, if I have an ELO of 2000 and my queuegroup's average is 1500, calculate ELO changes as if I was 1500 but add it onto my 2000. But I'm not sure what effect that would have. It's worth pointing out that the ELO system was designed for chess, NOT for something as complicated as tying people of different ratings together in an otherwise random matchup (which is exactly what group queuing is allowing).

- You'll still probably be forced towards a 50:50 w/l ratio no matter how good you are. But with less variance in teams, matches
shouldbe closer? And maybe more fun? Depends if you live for roflstomping, but that isn't really good PvP. If it wasn't a 50:50 ratio, then losing all the time would probably push worse people away from PvPing making matchmaking worse and killing off potential player flow.

- If your ELO is exceptionally high/low you might have longer queuing times, and/or less balanced warfronts. But it should still be better than currently.

- Persuading Trion that something that fixing the problems at the top is worth doing.

- It won't have much bearing if any on level < 65 warfronts. But without more players they're doomed to fail anyway.

- Potential ELO-gain-griefing as people could quit just to spite others. I see this more as something people will complain about for the sake of complaining rather than it actually being a real issue though.

- Rapid drops in the number of players could adversely affect matchmaking, because the ELO restrictions would try to be tighter without the player count to support it.

It would also potentially permit offering better rewards for better people. For example, go back to our number line for calculating the bounds. If somebody is say beyond 80% of the way along it, they're more likely to be deserving of a better reward. That could be used as an incentive to stop people from wanting to deliberately lower their ELO just to get more wins.

If people don't understand the number line stuff, I'll draw out an example if I must. Hopefully it makes sense

## Bookmarks