How can I make accurate hitboxes without them being exploitable?

I’m making a PvE game in which players fight against hundreds of bots. I plan on client siding the bot hurtboxes so they feel fair however that means an exploiter can just block the remote from firing and never die. Normally I wouldn’t care about this however the game gives out rewards exponentially based off the number of rounds survived and all it takes to survive a round is for a single player to live; this means a single exploiter could farm for an entire server and essentially exploit on behalf of legit players.

The issue is I can’t seem to think of a sanity check to prevent this. Players could go a long period of time without getting hurt if they play well so I can’t just say “flag if player hasn’t taken damage in X time”. I’ve also thought about doing occasional serverside hitboxes and flagging if a player fires serverside consistently but never fires client side hitboxes, the issue with this is it could flag on people with poor ping.

Is there any way to solve this? I’ve seen countless games with good hitbox detection so surely one of them has come up with a sanity check that works.

The best you could probably do is also track hitboxes on the server and give players some leeway depending on their network ping (with a reasonable ceiling and tolerance for disagreements, of course).

For example, if the server says the player has been hit more than 4 times in under 3 seconds but the client has disagreed every time, it’s probably safe to still register them getting hit the next time regardless. That way exploiters can’t make themselves completely immune.

Remember, responsiveness and strictness are at odds with each other. Only you can determine what tradeoff balance is fair for your game’s genre.

1 Like