Fighters & Cheating


#1

Hello,

me and my buddies are trying to make a fighting game and I was thinking about how to avoid cheating. I was thinking about having resources signed but that could be broken by self signing the wrong resources or changing the game code. So for the serverless multiplayer, the only idea I have is to have both parties run the game simulation, with exchanging moves and image frames/positions and if they are off sync, closing the multiplayer session. Any other ideas? Thanks for the help.


#2

My guess is that you shouldnt have to do much. Both players are going to have to run the game at the same time (please don’t try to run just one copy and then send all the data over, that is just going to be to much data imo).

First and foremost the data you should be sending over the network is what buttons/direction was pressed during that time. If one player decided to mod his game so he is doing unfair stuff, it just won’t show up on the other guy’s screen.

Then you can add some data such as current life (maybe a bad idea much, some games like to use numbers around 1000 compared to 100), rounds won for both sides, timer (sounds stupid, but if a person won a round earlier and then another person won a round himself, then the timer should be off), and current meter, and those will act like checks for desyncs.

Could someone theoretically make a tool that will call out desyncs and possibly void the game when they’re about to lose? yeah sure, but that’s the same issue with people who plug-pull in current games. Here you need to decide if a win should be awarded at all, should a loss be given, or should nothing happen stats wise. If you’re saving stats, that should probably be stored in a server. It will also need code for deciding which matches are legitimate (or at least seemingly) to decide if whatever clients send them is acceptable.