1. To celebrate Black Friday week we are offering a rare 25% sale for silver, gold, and platinum packages. Use code BF25 at checkout. Head to the premium store to take advantage of this limited offer.
  2. Want to get our most recent announcements - and XP codes - in your email?

    Sign up for our brand new mailing list!

Suggestion Ranked elo

Discussion in 'SMASH' started by Darth_Bachious, Nov 18, 2020.

Suggestion - Ranked elo
  1. Darth_Bachious Retired Staff

    XP:
    390,124xp
    It is quite well known that ranked currently is not as popular as it should be. This is the result of 2 things. The first reason is that ranked requires 4 players to join before starting and the second reason is that half of the players would lose Elo by joining, and is therefore not willing to join (or stopped playing it) in order to avoid losing (more) Elo. The first one got a simple fix, so I am not going to deal with it in this post, but the second one is not as simple. A while ago, I had found the solution while playing some smash, but I failed to explain it to the 2 staff members online at the time. Therefore, I promised them to make this tread (sorry for being a bit late). Enjoy the read.

    Old Elo
    Before going into my suggestion, lets take a look into the current Elo system. Every season, everyone starts with 1000 Elo. Elo gets recalculated at the end of every ranked match by adding the Elo change of that match to your elo. If you end higher at the end of the match than someone else you win Elo of them, if you end lower, you'll lose Elo. The formula is given by (5+((loser-winner)/25)), where loser is the lower placed person and winner is the higher placed person at the end of the match. The total change of Elo, ΔElo_old (I'll reference to this later) is simply the sum of all the Elo differences vs all players in that match. For instance if all players have 1000 at the start of the match, the results of ΔElo_old are the following:
    1st:
    ΔElo_old=+5+5+5=+15
    2nd:
    ΔElo_old=-5+5+5=+5
    3rd:
    ΔElo_old=-5-5+5=-5
    4th:
    ΔElo_old=-5-5-5=-15
    (Total_Elo_change_match=0)
    What can easily be seen is that players should have Elos below 1000, when there is a player who has a 1100 Elo,. This is not motivating players to play ranked, as you can maintain 1000 Elo by simply not playing.

    Suggestion
    So what to change? I would say to reward new players to play ranked by making sure that they don't lose Elo. But I also want to keep the competitiveness of the current system when players reach a somewhat higher Elo. For the next reasoning, I am referring to the following quantities:
    'Elo', which is the Elo of a player at the start of the ranked match (should have defined it earlier in hindsight).
    'ΔElo_old', which is the current total Elo change at the end of a ranked match.
    'ΔElo', which is my suggestion for the Elo change at the end of the ranked match.

    Let for instance everyone start at 0 (you can start at 1000, it only makes the functions a bit more complex). If a player wins Elo in a match, ΔElo_old>0, the Elo gained should remain as it currently is: ΔElo=ΔElo_old. However, we don't want players to get below 0 to keep them motivated, so if Δelo_old<0, the change of Elo should be ΔElo=0.
    At some point, lets for instance say Elo=200, you want to have ΔElo=ΔElo_old for both positive as negative changes.
    So in formulas:
    if ΔElo_old>0 --> ΔElo=ΔElo_old
    if ΔElo_old<0 --> ΔElo=f(Elo)*ΔElo_old,
    with f(Elo) a function defined by being 0 at Elo=0 and being 1 when the Elo a player has is much larger than 0 (Elo >> 0).

    For this function I would like to propose the use of a hyperbolic tangent function (tanh(constant*Elo)), as this one does have the right properties described above: 0 at the origin (with a slope of k*Elo) and it flattens to 1 for large numbers in the brackets. As it never reaches one entirely (but comes very close) I have been free to calculate when it reaches 0.99. With that I can give you that the constant in the brackets should be equal to 2.65/f_0.99 with f_0.99 the respecting Elo where you want the function to be equal to 0.99. If you do want to use a simpler function, I am fine with that too. (For instance: for 0<elo<f_1: f(Elo)=Elo/f_1 and for f_1<Elo: f(Elo)=1, with f_1 being the Elo where ΔElo=ΔElo_old for all changes.) The most important part of this post is the concept.

    Pros/Cons
    The pros of changing the Elo as described above are very straightforward in my opinion.
    +No players losing Elo when starting, making players more inclined to play it (due to more xp per kill).
    +Possibility to add small rewards for reaching certain Elo levels, as all players increase their elo initially.
    There are no really any cons, just 1 side effect which is not necessarily good or bad
    ?Players being able to reach really high levels of Elo meaning that Leader-board-players are forced to play until the end of the season?
    The 2 unknowns are both the result of the same thing: The bottom levels of players will generate Elo over time, as the Total_Elo_change_match>=0, and that Elo will go to the top players eventually. This might result in an inflation of Elo, causing players to play ranked til the end to reach the highest spot on the leader-board. It can be argued whether it is good or bad (I personally say neutral), so I would like a opinion on that.

    If you read this, I want to thank you for reading this and I would like to hear opinions.

    Yesus42 likes this.

Share This Page