EDIT:also, the -15 on connect shouldn't go into effect until 5-10 minutes after the player joins, to prevent massive server bombardment.
That's to difficult. You have to trust the Steam client to not lie, and the Steam protocol isn't encrpyted; I can imagine some script-kiddie making a script that spams "yep, been here 5 minutes." packets.
Also, requiring 5-10 minutes protects bad servers. When eGO's servers are full and you go server hunting, and you log into a 31 bot server... do you hang around 5 minutes just in case? Nope, you back right back out.
That's the beauty of this system. Unless you really just hate a server, you'll spend 10-15 minutes, no sweat.
I know Valve people watch these forums, so here's a free tip to Valve to fix this hole.
Free tip to Valve to stop bombers:
* Every time a player disconnects from a server, THEY lose one point. They regain points at one point an hour.
* (Optional) Every time a player rejoins a server, THEY lose 5 points.
So, if I go server surfing, log into a server, that server loses 15 points. I leave, go to another server, and it loses 14 points. The next server loses 13, etc, etc.
However, if Spammy McBadPub logs into an eGO server, and then logs out, and then logs back in, he does 15+10+5= 30 damage maximum. Even if he then tries to spam another server, he does 0 damage to them for an hour. Then he does 1 damage. This solves the "kick" problem.
If Spammy decides to server hop, he can spread out a maximum of 120 damage, CUMULATIVE. And then he regains one damage point the next hour. He has to recharge 15 hours to do another 120 points.
Here's why this works well: you don't have to trust Steam message contents, only timestamps.
If Spammy McBadPub tries to spam bad packets, he can only "spam" 15 times every 15 hours before his influence is nill.
But the best part about this is that Spammy has no control over the amount of damage he does: he has a choice: Space out his "bombings" so they do a full 15 damage an hour, or "bomb" a server or two three or four times and then quit.
This would tilt the favor heavily toward happy players (they consistantly keep 15 points damage per server, but tend to give servers more points), while heavily biasing against BadPubs (constantly getting diminishing returns for their attacks because they have to waste time to be an effective bomber).
The best bit is it's all automated, using information Valve already gets, and punishing jerks.
Finally, Valve could track clients that have a high rate of server switches and lower their ceiling. As Spammy McBadPub "sticks it to the man" his maximum damage goes down. Suddenly, Spammy only does 6 damage when he spams a server, with diminishing returns at the same rate.
Valve doesn't need people on standby to fix Spammy's messes. And BadPubs eventually have less and less influence, while the good players, the guys who want good servers, dish out full damage on bad servers and give a server full credit when they find servers they like.
It's a Google Solution. Heard of Google Bombs? You get a million people to put "BUSH SUX <link to hitler>" on their webpage. Old Google would go... "Wow! A lot of people believe that Bush should link to Hitler!" and hilarity ensues.
New Google goes "Hmm. Lots of pages about puppies and flowerpots and the moon are suddenly linking
the exact same way to the
exact same URL, and besides, why are they all linking to political stuff all of a sudden?" And it starts penalizing all links in the Pagerank until the bomb dies. If I'm not mistaken, sites participating in bombs also get a hit to their main pagerank
EDIT: Side Note:
Is the blog post title a hint to the Next Update being Demoman?