Threedog1421, on 11 July 2012 - 02:37 PM, said:
Hate to tell you bud, your very much misinformed...
This game is still going to be classified as a FPS and it will be hacked.
Hacking has nothing to do with the servers themselves. Aimbotting/Chamming is all done client side when the hack is injected into the games exe file. Almost no way to avoid that unless they do aggressive file scanning when the game launches. Even then it's hard...
Especially since they have not announced from whati know is what anti-cheat service thy're using. And we know the only one out there currently is PunkBuster.
Unless they're going to police the servers themselves i bet it's going to be PB...
I'm just a dumb finance guy now and my last programming course happened 8 years ago... but would think that server communication is going to likely be frame based, so you can absolutely prevent people's actions from breaking certain rules.
For example (timing numbers are plugs as I'm not up to speed on real server times... ), server keeps a register for each user, which is updated as fast as the network can handle (subject to some limit to prevent jamming the network, say once per 10ms)... this register is then read by the server every server "frame" (say every 20ms or ~50Hz) - server then calculates movement, adjusted torso position, hitboxes, damage etc. for that frame, subject to rules like (for example, McMech torso may not twist >5 degrees in one frame).
Calculated frame is then pushed back to client and over-rides any local position data - thus a hacked movement and local 'bad' hits are ignored and replaced with the server frame. A non-cheater would see nothing untoward, but a cheater would get a screen that's twitching all over the place as their local position tries to reconcile with the un-cheated server-side... Local client then focuses mostly on rendering and efficient communication with the server. You could of course set tolerances around this to account for connections / systems that posted on different timings etc.
To be fair, this would not prevent something like the auto-aim scripting example mentioned above where the script helps seek a target
within the rules, but would at least limit the number of SpeedAtlas incidents.
Someone who's written netcode more recently can feel free to abuse my logic above...