A possible solution to Smurfing. Data driven player analysis

Hey there,

We all know that the ELO System is a mess right now. It’s far too easy to cheat the system to get infinite “FUN” bashing lower rated players. That’s why I suggest an automated AI that performs a standard analysis on “Gamestatistics” to find a better fitting ELO and also help with SMURF detection.

Capture Age already shows the most significant statistics to tell a good player from a better player apart. K/D, ECO K/D, TC IDLE TIME, etc. Paired with the information about Uptimes, Win/Loose, Civ information’s we have anyway. We should be able to find a ELO-Bracket a Player fits into. The AI can do that by evaluating the Gaussian normal distribution for every datapoints.

Perfoming a standard analysis over these distributions and datapoints we can compare players and their ELO.

If a new player now starts to play his first 10 ranked matches, we can compare his dataset to the set of all other players.

As a benefit we can also use this system for a SMURF detection:

If a player is reported for smurfing we can compare the stats of his last game with the expected stats for his ELO-Range. If the discrepancy is too high. You can immediately use the data to reevaluate his ELO. (Maybe paring him for the next 10 Matches with enemies that are from the ELO set that corresponds to the set where he was reported for smurfing)

  1. What do you think about my idea?
  2. What are relevant datapoints?
  • Eco K/D,
  • TC idle time (only for the first 30 minutes or more than 100 vills)
  • age up times
  • APM/eAPM
  • deathtime/reason of the first 10 vills
  • used unit stances
  • win game duration
  • lose game duration
  1. How should the system react after a player was reported as a Smurf and a significant discrapency between his ELO and the Systems detected ELO is found

  2. Are there any flaws I overlooked?

to be discussed at a later point
  1. Can we adapt that to change the ELO distribution between players of a Teamgame, after the Team already earned their points by comparing average TeamELO as we do it right now?
1 Like

Reasonable, but something like the KD isn’t always relevant for the games, especially for a civ like Goths, where it tends to be massive casualties, to inflict maximum damage. Idle TC also isn’t super realistic, because it should only matter for the earlier stages of the game. Maybe include ratio of villagers to military at different stages, when the player normally starts building military, and the number of villagers they normally max out at.

1 Like

Sounds interesting for 1v1. I like the idea of looking at some criteria to find people playing better than their ELO, especially

  • Eco K/D,
  • TC idle time (only for the first 30 minutes)
  • age up times
  • APM/eAPM
  • Win game duration

The problem is that we should punish too heavily a player that has good days or plays “well” for his ELO. For your idea to be successful, we need to update the ELO system in a way that may not be satisfying for other players. Namely:

  • when a game finishes in the first 5 minutes, the ELO should not change too much (smurfs quickly lose games to drop in ELO). Instead, we can for example prevent the resigning player to play in the next 30 minutes or so. (it feels bad if someone wants to resign after failing boar lure, but well…)
  • same when the losing player has inactivity (0 APM) for minutes (smurfs starting the game and not doing not play to lose it without wasting its time ?)
  • we can decrease the ELO lost when losing too much in a row or winning too much in a row (I do not like this idea too much, but it is to consider.)

But if the smurf is playing well to smash lower ELO players, and then play poorly next game on purpose, I guess there is no much we can do, as a player can always have good days and bad days,

For team games we can do the same, but the main problem in team games is that smurfs play with 2 accounts to boost the ELO of the main account: the 2000 ELO player plays with a new account with 1000 ELO (or less if auto-lose games), and increase its ELO by 1v2’ing games against 1500 ELO players.
In this case, I would change the ELO system such that most of the won ELO is for the lower ELO players and most of the ELO lost is for the higher ELO players in a team. This would have the side effects that:

  • 2 players always playing together end up roughly in the same ELO, but I do not mind this “feature” (I do not think it is really a problem)
  • It is easy to ELO boost a friend, but I do not mind either because there is nothing to win by having a high ELO except playing against better players.

Back to your point, if in a team game, if a winning team has stats of a smurfs team, we should maybe give it more ELO amd make it lose less ELO if if lose in later games.

But actually, the big question is: what are we doing with appearant smurfs ?

  • I think the most reasonable is to give the player(s) an ELO boost, such that it is harder to loose ELO and easy to win ELO. This sucks for the low ELO player losing a lot in one shot and for the mid ELO player to not earn much from winning. But it is hard to find better ways…
1 Like

For team games, although it would be unpopular, just remove the ability to build the team before the match. If they can’t do this, smurfing should get a lot harder.

What do you mean “build the team” ? I think it is good to have premade teams.

We should just prevent smurfs to smash lower ELO players. I really hope there are other ways like the one I described.

The detected “ELO discrepancy” can weight the Smurf claim.

If your ELO is 1133 and the System said you played like 1200-1300. There need to be more claims to have an effect.
If your ELO is 600 and the System said you played like 1200-1300. The system will react emediatly.

Just don’t let people have multiple accounts. Done. Problem solved.

Ok, fine, that wouldn’t work. I think that ratio between villagers and military at different stages of the game could be a way to help do it, as with the other stuff I mentioned before.

Yes, it should bump you at least a couple of hundred elo in the second instance, but maybe not go all the way to 1.2k, in case the player is actually around 1.1k, but had a really good match because of being so much better.

If the System react it can give you an ELO at the bottom of the detected ELO-Range.
These hard measures could also only be used when the detected descrepancy is over a specific threshold.

It will help at least…I don’t know why they allow it… it literally enables smurfing trolling etc

So the idea would be to bump the ELO of the smurf player from 900 ELO all the way to something between 1400 and 1600 if his skill matches a 1600 ELO ?

Then we will have:

  • Either the 900 ELO player losing to the smurf sees his ELO wrecked down to 300 or 500.
  • or we get a weird ELO inflation as the average ELO of a player from 1000 ELO to maybe something like 1200 ELO, due to smurfing. In this case what happen to the losing player ? Does he lose 0 ELO ?

The ELO inflation is not necessarily a problem, but it is something to consider…

Can you have multiple accounts by default ? Or is it only on Steam with game sharing ? If it is game sharing, I do not know whether they are allowed to prevent it ? May also be weird if aoe2 is the only steam game forbidding it.

1 Like

Yes. In your example the idea is to bump the Smurfs ELO up to 1400. But that happens in 2 Steps:

  1. Step - The winner and loser of the match gets the normal ELO Change no matter what. This stays the same for ever player.
  2. Step - The detected Smurf ELO get reevaluated and raised to 1400. This can either be done through the visible ELO or a hidden secret ELO.

Yes Inflation will be a problem with this solution. But I think it will be less than we have with the current system.
Also the System should discourage smurfers as your time to smurfgame rate should drop dramatically.

As ELO Inflation is already a thing I’m not sure if this is a real problem. If the System works well it might even predict not only an ELO Bracket but also an absolute ELO. With that the System could also have a hidden ELO that follows the gaussian standard distribution while the visible ELO can deviate.

As far as I know it is a problem with Steam familiesharing.
I know that when the System was new some games where only available in Singleplayer.
But as human grief and other games tell us. Many people will go out of their way and buy multiple versions of a game during a sale just to smurf people. 1€ xBox Gamepass availablility will also contribute to that.

1 Like

Relevant Datapoints:

is the player the winner or loser of the match
K/D in 3 different stages
0-10 min - 10-25 min - 25+ min
Eco K/D in 3 different stages
0-10 min - 10-25 min - 25+ min
TC idle time (only for the first 20 minutes)
age up times
eAPM at different stages within the game (spikes or fixed marks)
average mapdistance between points of actions
average mapdistance between points of actions during high eAPM durations
creationtime of military units
deathtime/reason of the first 15 vills
last 1min villiager efficiency for the first 15 vill deaths
used unit stances
use/timing of upgrades

please come up with even more data points we could use :slight_smile:

I think eAPM needs to be measured in stages as well, because it typically drops off once you think you have won and are waiting to either overrun them or have them call the gg.

But I think it should also be more dynamic, so you have your 0-9min eAPM
and after that you have will look at the time arround turning points.