Btw, is it required to simulate everything on the server side? I know it is the conventional way to prevent cheating, but how about just randomly sampling some of the actions to detect cheating, and ban that user?
Btw, is it required to simulate everything on the server side? I know it is the conventional way to prevent cheating, but how about just randomly sampling some of the actions to detect cheating, and ban that user?
But clients are not trustworthy. How do you decide which clients to trust? How long before your 'adversary' discovers your trust methods an replicates them in his client?
"...server which then decides the proper outcome."
This requires processing power. Random sampling is perhaps a possible solution, but if you're overwhelmed with nefarious client activity (50% perhaps) and you're only sampling, say, 10%, still 40% of your gameplay is cheating clients. If you increase your sampling based on finding increases in cheating, you start to overwhelm your server farm.
tl;dr - this is not an easy problem to solve
Any cheating that takes the form of something "possible" for a client to do would be undetectable under such a scheme. (eg aimbotting)