1 (edited by Shinobiteno 2009-09-27 11:03:12)

Topic: [SUGGESTION] Teeworld Anticheat System.

Hello!

I have spent some time in similar(although 3D) fps UrbanTerror, and recently discovered TeeWorlds.
Upon playing fourth match of TW in my life, to my huge surprise, I suspected one player using aimbot.
At least he behaved exactly as aimbotter in Urbanterror, except this time it was 2D TW...

I have also read discussion and thoughts about Aimbots in TW and impossibility of building it, because its open source software.
This is not correct. Open source does not mean impossibility of protection. If you are interested, I can briefly explain a concept that can be used on TW, similar to those used in UrbanTerror; to punish aimbotters.

I hope as efficient banning rolls out, player will take it more serious, knowing the consequences.

General:
The word "trust" here defines to "human trust", not "trusted computing".

Common priniples:
Only main server should be trusted(first).
Main server should carry trusted list and be able to add trusted subservers, run by known or trusted people/clans.
Trusted clans/people should have forum or other facility of allowing demos from players on suspected aimbots or cheats.
Trusted clans/people should vote for or against claiming of cheat. Demo and vote result should be stored as proof.
Trusted clans/people should provide their weekly IP ban list to main server. Primary IP field should be used for filtering.
IP list should contain: IP(Range), Gid, Provided By, Date/Time, Comment. Gid is still stored to help prevent case, where several players exist on one IP. Because GID can be spoofed it should not be taken very seriously. One false "not me, not my GID" claim and IP should be permbanned, with fact added.
With provider migration to IPv6, GID may loose its role.


No single client should be trusted.
Client should provide IP to connected server upon connection for logging.
Client should be modified to provide hardware id(GID), hash based on several numerable hardware parts. It is for informational use only(check how many people play under same IP, yet different GID).
Client should be modified to allow demo recording and playback. Demos should be stored to local folder(~/teeworlds/demos) and should be easy recordable(example F12 key).
Client "choose server" window should allow to visually distinguish between trusted and untrusted(private) servers.

Common method of banning:
Client(a) suspects another client(ch) of cheating.
Client(a) starts demoing.
Client(a) finishes demo record.
Client(a) issues votekick for client(ch) if too obvious.
Client(a) reviews demo with help of built-in tool. If confirmed..:
Client(a) informs clan server admins(csa) and publishes demo.
Clan server admin(csa) and other players review demo and vote on forum. If confirmed..:
Clan server admin(csa) adds new ban, taking client(ch) IP and GID from server.

Additional features:
- Server should be upgraded to allow temporal, additional rcon accounts with own password and limited capabilities, for the purpose of additional (trial) moderation.

- Client and server should be modified to allow variable (30 second, defined by server) pause between issuing a vote kick by any client sharing same IP. PURPOSE: Disable ability to mass spam kick.

- Server should have an option to inform admin: if massvote happens at his server(trigger); if player with suspected GID(although IP does not match the ban list) appears on server; if mulitple connection attempts from known banned IP happen.

- Server attibutes should be extended to include "Admin email:" on purpose of informing administrator of server misuse. Client "choose server" window or upper ingame menu should allow to show this data.

- Client should include console command to display targeting vector (point a - player, point b - cursor) and some markings on the border of screen, marking other player locations if they are beyond the screen limits. This would be some kind of equivalent to "/r_shownormals 1" for q3 engine - show vector to confirm if player is constantly aimbotting. This option should be harddisabled on servers and allowed only for pure local client demo replay.

RFC.

PS:
Let cheaters burn in hell.
Cheating, if allowed to spread, becomes common sense and ruins game balance and general interest in project.
I hope we can correct this.

2

Re: [SUGGESTION] Teeworld Anticheat System.

It has been talked to death already.

Your solution wouldn't work for all cases (good players with aimbot vs pro players without) and would imply a lot of management from the parties involved. Plus make the game complicated.

I believe we can add a reputation system when we have accounts. Before that, it's meaningless because most IPs are dynamic and we can't match on a given player efficiently.

Finally, be careful when you start to think people are using aimbots. For one, I am getting tired of being accused daily wherever I go, even sometimes on servers of so-called pro level. Some people simply have a nearly perfect aim (with laser it's just a matter of shooting straight if your ping is below 60, above you have to account for the slight delay).

Easy steps to see if someone is using an aimbot:
- really good moves often come with a good aim. Bots don't make anyone move better.
- spinning the cursor (or simply "spinning") is not something bots do, experienced and wannabe players do it (you can distinguish pro from wannabe by the fact that their spinning is actually helping their moves rather than hindering them).
- look at the ping, perfect laser rifle aim with 100+ ping is difficult without a bot (other weapons are ok)
- look at the ability to hook ... a good hook comes with a good aim, but also the ability to take the upperhand once you've been hooked...
- aimbots don't do laser bounces on purpose
- and most of all, aimbots never fail a straight shot from outside the static camera view (unless there's an object in the middle), which doesn't mean that honest players can't do the same with dynamic camera or simply by smart-guessing and a good timing evaluating the opponent's speed and likely course of action.
- for some aimbots, the tag [bot] gets added to the nickname, then don't hesitate to ban.

In most cases, only low to mid level players ever use aimbots.

Also, bots are mostly in instagib-based gametypes. So try to play another gametype.

There are MANY false positives. You shouldn't assume someone is an aimbot simply because he's incredibly good. If you see someone really good, he's probably not using a aimbot even if he hits 90% of the time. It's frustrating, but he's probably just very good.

There is a thread with complementary details on how to recognize aimbots here:
http://www.teeworlds.com/forum/viewtopic.php?id=3033

PS: teeworlds already support demos recording

3

Re: [SUGGESTION] Teeworld Anticheat System.

Hello, Magnet.

>It has been talked to death already.
This is nice. Then cheating should be considered a threat (if no action, it will go with inertia it already has).
And special topic (like this) should be created for developing efficient countermeasures.
Please do not close it.

>Your solution wouldn't work for all cases.
Of course it wont. smile
From my experience, only when you see positive AND negative sides, you see the truth.
This is like with all stuff in the world.

>would imply a lot of management from the parties involved.
No it wont. It is a matter of relativity. It goes more complex as it is needed. It scales.
Having single server, single clan - report, discuss, banlist update.
Having more mulite servers: same as 1st + trust thing.
This is a very nice and important factor.
The sole reason I put my vision here(although it runs nicely on UrbanTerror with 800 servers up and filled with players everyday), is not to asking you to blindly implement it step by step. But only to share experience. We should evolve, and to evolve we should think and not stick to some "final" ideas.
It could be done with online registrations as well, I know of one cs-clan doing this, but they still use human resources on cheat detection(demo,discuss,ban), and thats why:

The reason why human factor is here is quite simple.
When you play on single PC, isolated you have your mind and sand within CPU, running constant AI. This constant sand is predictable(we are not discussing self-mutating windows malware here smile ).

However, having other minds ingame(what online play is), adds mind power. And mind power can only be countered with mind power. You cant battle dynamic with static, except maybe putting sexy stone walls. smile
Machine is simply more limited thing, compared to mind. It wont see things mind sees and more, machine is created by mind. And even if, we would be confronted with trivia of resouce consumption versus efficiency. Machines are great for support, but not to carry final decision.

I have seen players successfully tricking punkbuster on Quake Live.
I have seen players using cheats unbanned on VAC.
But I havent seen even single cheater getting away from ban at cs-clan I mentioned before.

>Before that, it's meaningless because most IPs are dynamic and we can't match on a given player efficiently.
You should allow server to record the IP. Subnet ban should follow. Ipv6 should correct the situation. GID would help filter out the innocent.

>There are MANY false positives.
Yes, thats why trust and per-server organisation is here. No one is putting 100K players at once on 1 person's shoulders. It should be distributed, organised, scale nicely and be trusted. And using the organisation already present within Teeworlds. Skilled player would be known in his own clan or by gameplay at other servers. He would be watched more, with skill increase. And this is nice.
Any claim of cheating and any ban are retraceble to the server. Any skilled player has history at other servers.

There is no difference in end result of a match between group of noobs VS very skilled player or aimbotter, except aimbotter, as in truth vs lie, has swampy, untrustworthy, unverifiable facts(holes).

By the way, check urtadmins.com. This is [UAA] - headquaters of UrbanTerror global banlist.

Hope my post gives something positive.

4

Re: [SUGGESTION] Teeworld Anticheat System.

Client(a) suspects another client(ch) of cheating.

If this anticheat system should be opensource, this function can be misused.

Goodbye all. Account inactive since March 2011.

5 (edited by Shinobiteno 2009-09-27 13:08:46)

Re: [SUGGESTION] Teeworld Anticheat System.

khubajsn wrote:

Client(a) suspects another client(ch) of cheating.

If this anticheat system should be opensource, this function can be misused.

Please read whole text carefully, before you post. Human(a) suspects another human(ch) of cheating.
"Client" is used as client-side software, ie not server, ie human playing on non-server, on client binary, suspects other human.

The function doesn't have to be opensource to be missused. As soon as you have one human soul devoted to acting in a way of writing exploit, it would be done. It is just matter of time x soul skill(mind Fallout 1).

2Magnet
I've found an interesting thread smile , and I agree to you at 101%.
http://www.teeworlds.com/forum/viewtopi … 381#p44381

6

Re: [SUGGESTION] Teeworld Anticheat System.

Shinobiteno wrote:

>Before that, it's meaningless because most IPs are dynamic and we can't match on a given player efficiently.
You should allow server to record the IP. Subnet ban should follow. Ipv6 should correct the situation. GID would help filter out the innocent.

Many majors ISPs have an IP pool distributed over many subnets, this will not work and will only ban innocent players. I know firsthand because I have no problem banning very large on my servers (and thus having a lot of collateral damage), but doing this as the standard, out-of-the-box solution will not work. You simply can't use the IP for large scale moderation, but a web of trust (what you are describing, which btw is a topic I am fairly knowledgeable on) + an account system could mitigate the problem a lot. It is still a lot of work to put in place.

Shinobiteno wrote:

>There are MANY false positives.
Yes, thats why trust and per-server organisation is here. No one is putting 100K players at once on 1 person's shoulders. It should be distributed, organised, scale nicely and be trusted. And using the organisation already present within Teeworlds. Skilled player would be known in his own clan or by gameplay at other servers. He would be watched more, with skill increase. And this is nice.
Any claim of cheating and any ban are retraceble to the server. Any skilled player has history at other servers.

The thing is that people will never be satisfied with the official, trusted answer. If they feel someone is cheating, even if he's been cleared by the trust system, they will still feel unhappy and try to kick him out. Even without kicking, it is tiresome to be accused of cheating after an extraordinary in-game action and it ruins a lot of fun. Many (often young) people simply can't take the fact that some people are way better than they are.

Most cheaters are recognizable immediately because there is a huge gap between their moves and their aim, because their attitude scream of their usage of cheats. Any regular player can spot them very quickly. The only problem is the good players who might use cheats and who are smart about it, but I think they're very few because cheating if you're already good is not fun at all, and at this level players play for their ego / to be the best: cheating doesn't give any feeling of accomplishment.

Cheaters are a pain on random servers though, but if you play on actively moderated ones, or servers with a lot of good players who can votekick fast, it's ok. I won't say there are no cheaters because there are, and I viscerally despise them, but that's just a bunch of sad kids who try to make up for their lack of skill.

So, the official answer is:
- we have plans for an account system, maybe reputation can play a role in it.
- don't expect anything soon
- there is too much paranoia about cheaters, it is still marginal on decent servers
- if you're on a server where you can't get a bot kicked, find another server with people with an active brain

7

Re: [SUGGESTION] Teeworld Anticheat System.

This is great to know! Thank you, Magnet.

By the way, concept of suggested "enhanced demo viewer": http://i053.radikal.ru/0909/c4/ea5f4759703a.png
Maybe it will find some use. smile

8

Re: [SUGGESTION] Teeworld Anticheat System.

I could think of a server-side bot detection approach. If you analyze the player's aiming behavior and compare it to patterns of known aimbots (using some fancy statistical analysis), you could probably determine with a good certainty if somebody is cheating. And it would be server-side, which is very important for a game like Teeworlds.

Of course, people could slightly alter their aimbot just enough to get away with it. But this method would at least catch a certain percentage of cheaters. It will never be possible to catch each and every cheater, but that should not be a reason for not trying anything.

9

Re: [SUGGESTION] Teeworld Anticheat System.

Servers are already using such systems, and they have quite high failrates.

Official Teeworlds map developer and community moderator
Administrator for the Teeworlds community Teesites

10

Re: [SUGGESTION] Teeworld Anticheat System.

Really? Is this a custom modification or is it part of the official code? I'd like to see it.

11

Re: [SUGGESTION] Teeworld Anticheat System.

i don't know, but for example, COD4 uses sth. like a punkbuster <--- Anticheatsystem ...

12 (edited by bullet 2009-10-28 20:49:33)

Re: [SUGGESTION] Teeworld Anticheat System.

Anti cheat systems can't and won't ever win. And you will never ever spot a strong player using an aimbot. And these are the ones that are the problem, not the casual dimwit who just wants to wreak havoc for like 20 minutes and goes back to whatever he does otherwise.
PunkBuster does pretty much all of the above, hardware GUID, screenshots, kernel driver to invade privacy err scan for cheats and so on. And yet there are pages you can buy hacks with a 100% undetected guarantee for PB, VAC2 and the likes. If someone is serious about it, he can cheat.
Oh and let's not forget TW is supposed to be portable. Well, kernel drivers are anything but portable and user-land AC is easy to bypass because we, the bad guys, may use whatever our computer offers, regardless if it only works on 10% of the computers. If the cheat works for us, job done.
Soldat, another 2D sidescroller, in fact uses BattlEye as an anti-cheat. And we've written bypasses for it since day 1. And the community kept on crying over false positives and how useless BE is since day 1. Writing AC software isn't the most enjoyable thing to do.