Client side anti-cheat

I wrote a post not too long ago about server side validation of data packets.
I feel the current anti cheat measure we have is only client sided, which can be a downside as code can be decompiled and reversed engineered(Possibility).

This suggestion aims to provide anti cheat through the client side. Yes I said code can be reversed engineered and here I am mentioning a client sided anti cheat suggestion. I know what I said,
but most players aren't computer science majors and most cheaters aren't either(most of them probably just downloaded some sketchy hack off the internet)

In my last post, I explained that data packets sent by cheaters aren't checked by the server and instead passed on to the other players.
So if someone is speed knifing, the cheater will tell the server they are slashing 50x a second, the server will just pass it onto the other players.

Player A holds slash on my foot with a regular default knife. If it's time stamped, the next slash should be some value where it is slower than 0.1 seconds. (However CF might not even have a time stamp of recording hits). Cheaters usually have some fast slash speed that is probably faster than the default slashing speed. Please don't limit my suggestion to just this one example, it's what I thought up of on the spot.

So my last suggestion was to have the server check for any unlegit kills, in this suggestion we have other player's clients check it. There should be a set of predefined check statements to check whether the kills or legitimate. If the kills turns out not to be legitimate, then victim's client will send a data packet to the server that will then record it for the match. After receiving 50-70%+ of reports from victim clients that the killer is possibly cheating, the server just disconnects the "cheater" from the game or kicks them back into lobby(I am aware that lag can also play a factor, so the thought of banning is unfeasible).

I am aware that cheaters can manipulate their client to send data packets onto legit players to have the server kick them. However it wouldn't be possible if the data packets are only sent upon death and from experience cheaters rarely die because they mostly just go under the map or play the dead animation to have their hitbox removed. The server can quietly send a confirmation data packet asking the other game clients whether or not their game client detected any abnormalities from the killers game client. If not then the cheater's attempt to manipulate the server into kicking off legit players would fail.

If this suggestion were to be implemented it would be a silent kick vote system that is governed by the game client and not some emotional decision from players.

Lets say:
================================================== ================================================== ==========================
8 BL vs 8 GR TDM
There's 1 cheater on the BL side.
He is using the dead animation cheat so he has his hitbox removed and aimbot.

He rushes to the GR side and massacres them all.
The victims clients checks the killer's state and conditions.
(I thought of these conditions on the spot, please don't take it word for word)
The victim's clients all have records that the kills are less than X seconds intervals. So this is suspicious.
The killer's hitbox is null and his animation is that of the dead animation while he is moving and attacking and therefore raises a red flag.

The victim's client then forwards a data packet raising a red flag about the BL player.
The server then sends a data packet to the rest of the other players(except the killer's client of course), the BL's game clients all confirms that the killer has abnormalities, then pings the server back with the data, and then the server just calculates the probability of the reports of the cheater. If it meets the threshold, then the cheater gets kicked or disconnected from the game.
================================================== ================================================== ==========================

Q: How is this effective if it doesn't ban the cheaters
A: Banning is a really dangerous option, and there are many things to consider checking accurately that the player is legit. If this suggestion were to be implemented I feel the developers would rush this and make a lot of bugs along the way. This suggestion is to deter cheaters from cheating blatantly and in the long run, they would feel discouraged that their hacks causes them to get booted.

Q: Wouldn't this lag my game or everyone's game?
A: I suppose that the amount of checks done would be tasking on the CPU, it could be an toggle-able option in the settings. The checks could be done on a separate thread where it doesn't interfere with the main/graphics rendering thread and thus preserving FPS. However this suggestion would be at most slow as having the replay system on, that constantly records everyone's actions and records it to a file. This suggestion is only for PvP, as cheater's actions are the most devastating there.

Q: What about other hacks such as flying or going under the map?
A: That's up to the developers to decide how to check it. This suggestion is just the frame work, to think up of all the conditions for each type of hack is pretty time consuming.

Q: If this suggestion is time consuming to implement, then won't future game content be affected?
A: "The hardest choice requires the strongest wills" - Thanos

The only downside of this suggestion that I know so far is that it wouldn't detect certain client sided hacks such as see through walls.

Comments

  • If [GM] Lasagnya reads this:

    [IMG2=JSON]{"data-align":"none","data-size":"full","src":"https:\/\/i.imgur.com\/EGmh7oL.png"}[/IMG2]
    You have read my old points and during that time, those were very popular ideas for an anti cheat system from the community.
    Yes I am aware that Crossfire has changed a lot since that time.

    I would like to clear up somethings:
    Human patrols: I am only against the idea of giving regular Crossfire players the power over others to decide whether or not other players would get kicked or banned as this suggestion has popped up a lot in the past. I am not stating that's the current status of Crossfire of back then. This point was back before the Discord live reporting system came into effect. I do agree that the Discord patrol system is effective ever since it became implemented, but there's so few GMs to patrol every report. Nevertheless it's an big upgrade from just having to save replays and submit after the game. Also stopping to type the cheater's names down in Discord is frustrating as they can have lots of symbols and numbers in their names.

    Reporting: I am against the ideas of reporting, only because most of the cheating accounts are new and not ban worthy. By ban worthy I mean that if it got ban would the cheater suffer a huge loss in unique and permanent weapons and levels? Since most cheaters are pretty low level with starter weapons, even if they get banned, they would remake a new account and nothing would change. Sure we won't see the "same" hacker but they would be technically the "same" hacker as in person once they make a new account again. I am not limiting this point to just only ranked games, but the whole PvP system in general. Back then when I wrote this point, many people feels that reporting cheaters barely made a difference. Sure we have the Discord live reporting system now, but the rate of accounts created is faster than the rate of having a GM go to that room and check it out. Remember, I wrote these points back before the implementation of the Discord live reporting system, players had to turn on replay and manually submit a ticket with the replay to report. Then there is a queue of all the replays the Crossfire staff has to review before it got to ours. This is why I think the reporting system failed at that time. The time it took to do all that is definitely longer than it took to make a new account.