←back to thread

379 points mobeigi | 1 comments | | HN request time: 0s | source
Show context
ZeroCool2u ◴[] No.41862659[source]
Server side only anti-cheat is one of the problem domains that I'd really love to work on at some point in my career. This is the type of adversarial arms race that just seems really fun to think long and hard about.
replies(4): >>41862725 #>>41864365 #>>41864555 #>>41871291 #
Night_Thastus ◴[] No.41862725[source]
Only problem is, a lot of companies do NOT want to pay for it. It's 'treadmill work'. No matter how many people and how much money you throw at the problem, it still ends up just coming back. It's a losing battle because there are many, many more players than there are developers.
replies(3): >>41862790 #>>41862959 #>>41864654 #
willcipriano ◴[] No.41862959[source]
My idea:

1. Determine minimum human reaction times and limit movement to within those parameters on the client side. (For example a human can't swing their view around [in a fps] in a microsecond so make that impossible on the client) this will require a lot of user testing to get right, get pro players and push their limits.

2. Build a 'unified field theory' for your game world that is aware of the client side constraints as well as limits on character movement, reload times, bullet velocities, etc. Run this [much smaller than the real game] simulation on server.

3. Ban any user who sends input that violates physics.

Now cheating has to at look like high level play instead of someone flying around spinbotting everyone from across the map. Players hopefully don't get as frustrated when playing against cheaters as they assume they are just great players. Great players should be competitive against cheaters as well.

replies(8): >>41863120 #>>41863132 #>>41864409 #>>41864592 #>>41864724 #>>41864936 #>>41865792 #>>41867394 #
1. bob1029 ◴[] No.41863120{3}[source]
This is kind of getting into my idea - Statistical methods & maybe a sprinkle of old-school machine learning.

What I would try is to hire a red team & blue team and put them in a sandbox environment. The red team cheats on purpose. The blue team is guaranteed to be playing legitimately. Both teams label their session data accurately. I then use this as training & eval set for a model that will be used on actual player inputs.

The only downside is that you will get a certain % of false positives, but the tradeoff is that there is literally nothing the cheaters can do to prevent detection unless they infiltrate your internal operations and obtain access to the data and/or methods.