XaiJu
Fightcade
Fightcade

patreon


How Fightcade's Ranking System Works

Fightcade uses a ranking system to rate the player's skill for every ranked game. In this post we try to explain the inner quirks of the ranking system as well as answer some of the Frequently Asked Questions we usually get about ranks.

 


To implement Fightcade's rankings we use the Elo rating system, which is very popular amongst chess players, however we have tweaked the original Elo algorithm a little bit to satisfy Fightcade's singularities. If you are curious about the exact technical implementation details, we have made available this little nodejs program which contains the source code of Fightcade's current Elo function.

The skill of every player is determined by their rank, which can be from top to bottom: S tier, A, B, C, D or E tiers. The rank is determined by a player's elo score, that is the amount of elo points that the player has obtained during ranked matches. All newly registered players start with an elo score of 1000 elo points, and are required to play at least 10 ranked matches before their rank is displayed next to their username, otherwise a question mark (?) is shown instead of the actual rank. The breakpoints for each rank are as follows:

Fightcade allows to challenge opponents in first-to-X matches: FT2, FT3, FT5, FT10 and FT20. After every match in a set, certain amount of points is transferred from one player to the other, that means if you play a FT3 (3 out of 5) with an opponent of the same rank and the end result is that P1 wins 3-1, the score varies as follows during the set:

As you can see if you look close at the numbers, in this specific case every match gives the winner +6 points, which are taken from the loser. That is because at the same skill level (1000 elo points), the probability to win of each player is 50%, so the points are distributed evenly. But, what happens if P1 and P2 have different elo scores? Let's imagine a FT3 where P1 has an elo score of 1100 (C rank) and P2 has an elo score of 1400 (B rank). The Elo distribution model says that for -300 points of difference, P1 has a 15% chance of beating P2 (or P2 has a 85% chance of winning), so the scores are calculated accordingly:

What happened here is that the higher ranked player gains less points for his wins (because his probability of winning is higher). Notice that 2 points are taken from P1 when P2 wins the first match, but instead 6, 9 and 10 points are taken from P2 and given to P1 when P1 wins (because P1 has a lower elo score).

The following graph represents how points are distributed in FT3 sets. The blue line represents the probability of winning for P1 based on the Elo distribution model, and is expressed in percentage. The X axis shows the difference in points between P1 and P2 elo scores. The Y axis represents the elo points exchanged in the set.


The following graph represents FT5 sets. Note that the only result that always has a positive elo score outcome for P1 is when P1 wins 5-0.


Q: Does this mean I can win a FTX set and still lose elo points?

A: Yes, if your elo score is way above your opponent's score your probability to win is much higher, so their wins will count more than yours. Take this FT3 between an A-ranked player (1600 elo score) and a D-ranked player (1200 elo score) as an example. For 400 points of difference between them, the A-ranked player is 10 times more likely to win than the D-ranked player (91% vs 9%), therefore the three A-ranked player victories only account for 1 point each, while the D-ranked player gains 5 points with a single match won:

This shows how P1 won the set 3-1 but the elo score decreased 2 points, from 1600 to 1598.


Q: How can I see my elo score?

A: The exact elo score is hidden from players by default, because we understand that for many people is stressful to see how points go up and down, specially when playing against substantially lower rated opponents.
Only Patreon supporters with a Ranked Warrior or higher perk can see their own elo score in ranked game channels after every set. If you become a Ranked Warrior patron you will see your elo score like this:


Q: What about rage quitters, is there any penalty for them?

A: Fightcade recalculates both player's elo score after every single match in a set, so if you are playing a FT5, win 3 matches and then the other person ragequits, you are still credited those 3 wins. The ragequit will only matter for the last match you were in, which is usually very few points. There is also a score-punishment for people who close the emulator before the opponent's win is counted.


Q: Why don't you use a per-set based system instead of giving out per-game points?

A: We do, with our elo formula a set will always have the same point outcome regardless of how the set went.

As an example, a  player with a 1400 elo score playing versus a 1200 and winning 3-1 will always win 3 points for the entire set, but the points scored individually on each match can vary depending on when during the set P2 won the single match:





Q: What is the K-factor used in Fightcade's Elo implementation?

A: We use a multi level K-factor staggering based on the player's rank range:

In a set between two players of different rank, the lowest K-factor is always used to calculate the match outcome.

New players have a low K-factor coefficient to lower the sensitivity as they may be overrated or underrated in their initial elo score, that way they won't produce a huge score boost or decrease on their opponents. After having played 10 ranked matches, their elo score is more adjusted to their real rank and the K-factor is adjusted accordingly.


Q: What exactly your elo tweaks do?

A: We have only made two little adjustments:

1. We add an extra reward of 0.25 elo points per match won (or substract 0.25 elo points per match lost), with a maximum of 2.5 points of reward. This generally has no effect, except for situations where a set ends at 5-1 or 10-2, where 1 or 2 extra points are given to the set winner. This was done to smooth cases where the player with higher elo wins the set but loses points.

2. When the calculated elo points to be transferred between two players is zero, we instead give out one point to the player with the higher score.


Q: Why did you chose Elo over other popular skill rating algorithms such as Glicko or TrueSkill?

A: TrueSkill has the benefit of being able to accurately rate multi-player and team game systems and it can also rate a drawn outcome properly, but Fightcade is always 1 vs 1 without draws.

Glicko introduces the rating deviation which measures the reliability of a player’s rating, however its implementation for Fightcade is not as straight forward as Elo and the benefit obtained is very small.

This does not mean that our ranking system is perfect, of course it has weaknesses and flaws that can possibly be exploited in many ways to farm points, that's why we're open to receive feedback and we have been constantly tweaking and testing small variations of our Elo implementation, and we've also added some anti-cheating features to the system to prevent abuse. Other systems and improvements may be considered in the future, given that the cost of implementing them is reasonable for us.


Q: Isn't the ranking system broken if you allow selective pairing of opponents?

A: Essentially yes, because players can choose weaker opponents with higher rank (so the reward for winning them will be higher). However, when someone is overrated he will quickly go back to his real rank when facing someone stronger, and overall the ranking system still provides a useful mechanism to determine a player's skill (with more or less credibility) and to detect the Best Replays.

In the same way, if you feel you reached a point were you are afraid of playing people way below your rank (for example if you are ranked A and are afraid of challenging a C player), because even a 10-1 might make you lose points, it may be possible you are a bit over-ranked. Even if you are very good, it's important to understand you will reach a point were you can only lose points before winning points again, and it will take more time to get those points back after losing them. That is the perk of being on top of the ranks. And even if you are the best in the game, reaching an S might not be possible, as it depends on the total points available on the Elo pool, how better you are compared to the rest of players, how consistent you are, and many other factors.

Please do not stress about it, and take a break of ranked play if you feel frustrated. Ranked game helps matchmaking and is only approximate, as there are lots of nuances in all games Fightcade supports.


Q: Why isn't the game <insert-your-favourite-game-here> ranked in Fightcade?

A: Currently we support rankings in 50 popular games, although we are constantly adding support for more and more ranked games through Fightcade's game detectors. If your favourite game does not support ranked matches, you can write a memory detector for it and contribute it through Fightcade's discord #fbneo-detectors channel, there's a guide pinned to the channel that explains how to write detectors with some examples.

Comments

If you’re ranked you should only see the ping and the rank no screen names. Players abuse the online instability so well it’s impossible to take rank seriously

Douglas Haig

Id love to see a blind and randomly picked opponent ranked match system introduced similar to what HDR had. Also is it possible to make a 4 person room so we can watch matches while we wait to battle it out With a ping / wifi filter so we cant cherry pick who we play.

Jesse Oliver

Lo que se podría hacer para evitar que suceda lo que menciona MoM, sería manejar el rank a modo de temporada, algo así como el ran de la FIFA futbol soccer, donde se toman los puntos por un determinado tiempo (en la FIFA son espacios de 4 años), con un déficit de exponencial cada año que pasa, 100% para el año en curso, 60% de los puntos recaudados del año pasado, 40% del antepasado y 20% del primer año del periodo, eso serviría mucho para obligar a los ranks altos a que jueguen constantemente, los intervalos pueden ser mensuales en vez de anuales para fightcade, por ejemplo: si un jugador tiene 1000 puntos al final del mes pasado (Septiembre) y este mes de octubre obtiene 1300, su puntuación acumulada sería ((1300)*100%) + ((1000)*60%) = 1900, así si deja de jugar durante varios meses o juega muy poco en un mes, su puntaje total estaría bajando.

Combo Retro

I appreciate your explanation about how match system works. However I feel ranked system in FC2 takes away the dynamism that FC1 had. A-rank player deny lower rank player's challenge, even B-rank do so. They've been waiting for challenge for hours, yet they decline almost every challenges they get because they feel it has too much risk. I think that's not healthy state at all for fightcade. I want to play games for fun, but this ranked system makes players focus on winning.

MoM


More Creators