(Apologies for splitting the document in a bunch of posts, each post is limited to 2 images…)
Hello,
We all face every so often a player that feels a lot stronger than their rating. It can happen for a variety of reasons: they played drunk or upset yesterday and today you are meeting them on their way back up, they fell a bunch of points trying new strategies or new maps and now you play them on their best map, etc. For all these reasons, it’s not uncommon to see players 100-150 points below their max rating. That type of variance is normal, nothing to see here. Then, sometimes, you face this guy:
I reported him thrice via the official Age of Empires Support, providing screenshots such as above + his recent games list where we see all non-Arena games last 10 seconds. “Actions were taken” once, the two other times I was told that “due to technical limitations, we were not able to determine that this player violated the Code of Conduct”, the document that explicitely says resigning early is forbidden. The fact that such cases that absolutely aren’t in any gray zone aren’t dealt with when reporting manually is annoying but I won’t talk further about manual reports here.
This got me wondering why I had to report the player at all and why there isn’t an automated system to pick up on that “obvious” rating dropper… So I made my own.
The intuition is to ban players below a certain win rate in short games (< 5 minutes), but what threshold should we use and how do you separate serial rating-tankers from the guy who has a poor win rate in short games because he resigns a bit fast when killing his boar or randoms into a heavy civ loss? We combine win rate and play rate. Regardless of win rate, nobody playing normally will ever have a significant share of their games be short. Still, how do we pick the now two (win- and play rates) thresholds? With the help of my graphs below.
Below is the player base from July 2024 to July 2025. The anonymized data was kindly provided to me by the admins of AoE2insights. Thank you for enabling this study. Why July? Because I started this in July for my own curiosity, but T90’s video about smurfs made it clear it was now or never to add my own weight in the debate so I finished it in a hurry.
In that year of data, 177k players played ranked 1v1 at least once, 91k players played at least 10 games, 23k players played at least 10 short games (< 6 minutes). We will work with the latter group. The value of 6 minutes was chosen to encompass both the players who resign immediately and those who wait for 5 minutes to avoid the dodge penalty which is a temporary ban.
You might notice streaks in there, it’s just the people who have a nice round win rate. You can see easily 75%, 67%, 50%, 33%, 25%, etc. It’s not an artefact.
Now you can identify two sections in this graph:
The column of legitness where players have a very low play rate of short games regardless of their winrate.
The sussy triangle of doom where players are surprising very bad and short games represent a large share of all their games.
Note I picked fairly loose borders for those two regions on purpose. That leaves the argument of the gray area open.
My solution to finding the right couple of thresholds is simply to select the data to the bottom-right of where I clicked. Here, I arbitrarily made a sub-group of players who lose more than 75% of their short games and have more than 20% of their total games being short.
How do we know it wasn’t that arbitrary in the end? We look at their win rate in a second graph:
Below you see the twin object to the column of legitness: the bubble of normality. The blue people are still skewed towards the left of graph (low share of short games) and their win rate in long games is centered on 50%. We can see both players who struggle and who excel at late game at the bottom and the top of the bubble. That’s normal. The blue group has an average win rate of roughly 50% and 50% win rate is also roughly the median win rate.
If we look at the red group, wow, they must be really good at late game: their average win rate in long games is 72%, 90% of them have a win rate above 50%, and there is a clear trend in that the more short games you play the better you are at long games. Now we have no regret banning everyone in the red group because we know no innocent player will be collateral damage.
I am pretty satisfied with the result and you should consider how this was done only with historical data: all I have is the number of played games of short/mid/long duration, the number of won games of those durations, and the min and max ratings of the player. You can see how refined this could become with more precise data (e.g. win rate and play rate per map) and live data (how many short games lost in the last 24h? Downward streak size?) which Microsoft does have.
One last visualization to determine where those rating-droppers are in the player base.
Again, due to respecting the players’ anonymity, I only have min and max ratings and the buckets are 50-points wide, hence the vertical streaks in the third graph. I am showing (min+max)/2 here.
Overall, the rating-droppers seem to be roughly where the other players are. There is a small bias towards the left, but this is still a problem both sides of 1000 Elo.
If we look at min rating this year instead of average rating, you can see a handful of silly geese tanked hard, played only short games, lost them trying to reach 0 Elo for fun.
_______
Conclusion:
I offer you my system that can punish obvious rating-droppers. It is collateral damage-proof if we use generous threshold values. You can decide how big of a leeway you want to give. If you do not use this system to ban rating-droppers automatically, at least give it to the third party company that handles the support tickets so that employees can type in the name of the player who is the topic of the complaint and see if they fall in the red group. No more “technical limitation”.
That’s some really nice data and it shows some very clear patterns.
There is one issue though. You can smurf without dropping out early. Of course it takes more time to play a long game bad but it is possible. There are games where dropping early is not an option (like ones where you always play in a team) and there are still smurfs, they just have more dedication.
Not sure if there is a good way to detect those kinda players. But maybe punishing too many short games would at least make it a lot harder to smurf and therefor reduce the numbers.
I don’t think an automated detection would be helpful.
In general I don’t think the patterns for cheating detection should be discussed publically.
IDK how the status of this is currently. I assume as WE is a comparably little studio they can’t afford to put huge ressources in anti-cheating stuff. And if they can, they would possibly try to get experienced professionals from other games/studios to build up their own instead of using something posted on the forum.
The general issue with cheating detection is that you need to proof the malicious intend. If someone is quitting a lot of games early it can also just mean that they messed up their early buildorder and get tilted easily. Though it isn’t good for the game the damage done by this is usually quite limited. And they aren’t intentionally griefing.
Usually a better way is to make it harder to grief. So if people get over a certain threshold of early loss percentage they don’t lose any elo anymore or something like this. This can be done across multiple indicators of grief, so it becomes harder and harder for them to do this - and hopefully they then stop with that.
PS: But thumbs up you looked up in the data, elaborated them and thought about some indicators that can be used for detection of griefers.
I do not personally think that determining malicious intent is needed for punishment. If you have a negative impact on people, it exists regardless of your intent. The code of conduct states how “repeatedly quitting a match early goes against the spirit of the game” and it does not bother with intent.
Regardless, I think intent is pretty obvious when someone has a large share of their games lasting a few minutes. No normal player has 30% of their games end immediately, even the most perfectionist people. No normal player has 80% win rate in long games just because they resign every time they kill their boar in dark age.
Agree I also think this is the better way to approach the issue.
However I also don’t want players to be removed just because they tilt too easily. And there can also be different reasons that don’t even require active “quitting”.
TBH I don’t consider myself an expert on this kind of topics anyways as I don’t like removing people in general. Only in really extrem cases with well done explanation why it was just necessary because they refused to change anything about their toxic behaviour. But I can see why it’s bad for the community to have these noob bashing griefers.
What about a dialog button to the winning team at the end of a match that lasted less than 10 minutes?
option 1: Rise my elo i won by rushing or outperforming the enemy team.
option 2: Please leave elo as it is, a player disconnected/smurf.
If most of the winning team vote for option 2, don’t change elo.
Simple as that. It prevents smurfing to a degree and also fixes my problem of randomly winning 3 matches in a row by such chance and rising to 1400 elo and than 100% losing the next actually played game. It happened some days ago.