Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

The Perfect Elo System

Discussion in 'Game Design' started by jpthek9, Feb 13, 2015.

  1. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    We all know that nothing about a video game can be perfect as there's always room for improvement. We do know that something can come close however (like MineCraft and its revolutionary graphics). What then, is an almost perfect Elo system? I'd like to discuss about a good ranking system for the most popular team games, MOBAs.

    For a game like League of Legends where each player's contribution is hugely critical to the outcome of the game, matchmaking is an extremely important part. It's not just about making sure noobs have room to learn - it's to make sure everyone in the game has a fun, challenging experience. With that said, here are the rules:

    • 8 players/team (too much?)
    • About 45 minute games
    • Ranking makes you earn out-of-game experience and credits faster
    • Buying stuff with credits (out of game) doesn't give any major advantages - it only introduces variety (like heroes in League)
    How would the Elo be calculated and how would matches be made with it? My first thoughts is everyone starts with 1200 or so Elo (the more circulating Elo, the more players there are, thus the more valued your skill is). Games are originally hosted by 1 person and anyone else within say, 100 points of him can join. This value increases as time goes on so players won't have to wait forever.

    After a game ends, by default all losers lose 100 Elo and winners gain 100 Elo. The exception is when a player first starts and needs to be rapidly placed into his proper ranking - maybe double the change for the first 5 games.

    Then for each individual player, the difference between them and the average of the losing team's Elo is taken into account. To lessen its impact, only 10% of this value is added onto the Elo change from the game. In addition, individual feats done in games should be considered as well. Every time someone kills another, the killer steals 10% of the skill difference + 20 points from the victim).

    The system could also take into account the fact that a player who hasn't played a long time can pick up the game pretty fast compared to someone of equal current skill level so there could be a point shield. The point shield caps at 400 and recharges at a rate of 100/day. When a player loses, points are subtracted from his point shield before his Elo.

    For a tangible milestones, there could be a league system in the background that progresses every maybe 400 (toggled based on circulating points) points starting from 0. Something like:

    1. Wood
    2. Bronze
    3. Silver
    4. Gold
    5. Platinum
    6. Diamond
    7. Plutonium
    8. Radioactive Plutonium
    And then for the super gawdlike professional players, it can be based on %, maybe the top .01% of all players in Elo:

    9. Adamantium

    What are your thoughts about this system? Is it close or far from perfect as a general outline?
     
    Last edited: Feb 15, 2015
  2. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    Have you studied LoL? They've invested millions in their system and it's pretty dang good. Their system adjusts matchmaking based on:
    • The game mode (ARAM, normal, etc)
    • The champion played (how new)
    • The position played (support, jungle, etc)
    • Ranked vs casual
    • Queued with others (and how many)
    • Time spent waiting for a game
    • Leaver/griefer status
    And more. It's extremely sophisticated, reasonably easy to reverse engineer parts of it, and practically invisible to players, except that most players end up near a 50% win/loss ratio, most of the time.

    PS - LOL started with a chess ELO type system before slowly rolling their own. No need to reinvent the wheel.

    Gigi
     
  3. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,432
    I suggest starting with looking up how Elo actually works. The Wikipedia article does a reasonable job explaining the algorithm. Then implement it. You will need to make some changes for the fact that it is team play, and Elo was developed for a 2 player game with a binary outcome.

    At its heart Elo calculates the statistical probability of the final result, then adjusts the players scores to be closer to that probability. Elo works better when you have a statistically significant number of games to use for the adjustment. This means adjusting ratings on a set frequency, rather then after every game. In practice many video game systems do not do this, which leads to a high degree of instability in player ratings.
     
  4. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Thanks for the suggestions! League's ranking seems waaaaay over my head but I'll definitely do my best to learn from it as they've manage to keep an extremely high player base.

    @BoredMormon This is interesting, not dynamically adjusting player ratings but instead giving them a fixed set of games and judging them based on those, but I feel like instant change in rating would be more appealing to players instead of playing i.e. 5 games before a change. Maybe the points could increase for show and finally add up after X games?
     
  5. ostrich160

    ostrich160

    Joined:
    Feb 28, 2012
    Posts:
    679
    Wait what