+ Reply to Thread
Results 1 to 4 of 4
Like Tree3Likes
  • 2 Post By Foolio
  • 1 Post By Planetx

Thread: Just another matchmaking improvement suggestion thread...

  1. #1
    Sword of Telara
    Join Date
    Sep 2014
    Posts
    888

    Default Just another matchmaking improvement suggestion thread...

    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:

    Quote Originally Posted by Ocho View Post
    There have been a number of questions lately about how ELO works in RIFT, so here is a brief rundown.

    ELO is a constantly adjusting rating based on a player's win/loss record in Warfronts. Every time you are on the winning side in a Warfront, your ELO goes up; every time you lose it goes down. The amount it goes up and down depends on the challenge your team faced. If a team's total ELO score was less than their opponents and they won then those winning underdogs would have their ELO score go up more than usual, and the losers would go down more than usual. However if the compared total ELO ratings expected one team to dominate, and they did dominate, then the final scores would be adjusted only slightly (the winners getting very little, and the losers losing very little).

    When the matchmaker is creating two teams for matches, it takes several factors to balance the two teams:
    • team sizes
    • relative total ELO rating
    • attempts to get the same number of healers
    • attempts to get the same number of DPS
    • if possible, have the same number of Pre-mades

    After studying the logs of hundreds of thousands of warfront outcomes, the biggest indicator in who was likely to win a match isn’t which side has the most healers, or DPS, or pre-mades... The most accurate predictor of which side will win was which side had the highest total participating ELO rating.

    One interesting thing that we noted was that participation is the most important factor in which side wins. Although the match maker can try to put together two teams with a relatively equal chance of winning, if someone doesn't show up to a match, or bails out, then that side is going to be handicapped until the matchmaker can try to find someone to take the place of the person who didn't participate.

    We used to have a slightly more complex "player rating" computation rather than standard ELO, but a flaw was discovered in the calculations last September that managed to affect two players, and so we threw out the extra bits and stuck with traditional ELO (wikipedia has a good article on it if you like math).
    To be blunt, that sounds flawed in multiple respects. As has been pointed out by plenty, the current matchmaking system aims to make sure that both teams' total ELO is 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.
    1. 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.

    2. 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.

    3. 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?

    4. Quitters/afkers, as was pointed out.

    5. 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.
    1. 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.

    2. 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.
      1. Calculate the ELO bounds of the warfront.
        1. Calculate average ELO of all players on each team, and the average of the two teams.

        2. 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.

        3. 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.

        4. 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.

        5. 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.
      2. If the teams are unequal:
        1. Calculate the average ELO of player(s) required to set the two teams back to equality.

        2. 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.

        3. 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.
      3. If the warfront is now not full:
        1. Build a list of players, based on how close their ELO is to the teams' average.
        2. 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.
    3. 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:
    1. At the start of the match, take each team's "total ELO" to be 0.
    2. Periodically (say 30? seconds) add the ELO of each non-AFKing team member to their team's ELO.
    3. 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?
    1. Queues will get a bit longer, especially so for premades and/or at the ELO extremes.

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

    3. Variance in opposing teams' ELOs should shrink dramatically.

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

    5. 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:
    1. 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).

    2. 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 should be 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.

    3. 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.

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

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

    6. 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.

    7. 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
    Spellbook@Greybriar
    Rejuvenation@Greybriar

  2. #2
    Prophet of Telara
    Join Date
    Apr 2014
    Posts
    1,058

    Default

    Here is exactly how my day went.

    Logged in to get pvp daily done.

    Enter BG
    We are short 2 players as usual.
    5v7. Thanks for autoloss Trion.
    Half way through it fills to 7v7. OMG I have chance!!! Nope, shortly after it becomes 10v8. Less than 100 points to go in bg down 2 players and we get our ranks full last min.
    Thanks for the loss Trion.

    Next BG
    Pretty much a complete autoloss. They had a 5 man premade. 3+ extra healers vs us, no premade and bunch of potatoes. I killed 2 players. While my team dies 4-5 to 1 kill and this is their challenging experience. Thank You Trion for another auto-loss

    Next WF.

    I am forced to do everything that is possible to win. Kill carriers, push raid back. Kill thieves. Stop them from capping the last stone solo while my team blindly fights in middle with absolutely 0 help or sense to help procure the stones. etc. . We win with all of my team at bottom of chart and my name at the top followed by all the other teams name.


    Codex.

    I switched between 3 different souls to get a win.
    Basically suicide as a tank to get some points added to my score while my team fed at dex and I three capped.

    Then switched to heals after I wiped to defend scope.

    Then back to dps while my team was just standing at scope with 0 intuition to go and defend the bridge. So I switch to dps and stopped the other teams player from capping vault.

    This is how completely awful my games are, yet premades get autowins non stop compared to me. Thanks Trion for failing at matchmaking and making my pvp experience completely horrible.
    Last edited by Planetx; 06-12-2015 at 05:00 PM.

  3. #3
    Telaran Genri's Avatar
    Join Date
    Jun 2015
    Posts
    66

    Default

    Not an easy thing to fix unless we have a massive surge of new pvprs so elo can work properly
    Genrii@Deepwood
    I will keep smiling, be positive and never give up! I will give 100 percent each time I play. These are always my goals and my attitude. Yani Tseng
    Success is not final, failure is not fatal: it is the courage to continue that counts. Winston Churchill

  4. #4
    Sword of Telara
    Join Date
    Sep 2014
    Posts
    888

    Default

    But could doing this possibly suck even more than what we have currently?
    Spellbook@Greybriar
    Rejuvenation@Greybriar

+ Reply to Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts