Tuesday, January 10, 2017

Anti-Cheat for MMOs issues and solutions?



Most online games suffer for this problem and there are some software companies out there to cover this but recently from what I've seen most companies are trying to avoid those programs creating their own system (blizzard with warden, aion with their own checking, etc...) but it is a very difficult case to prevent such ...


Just wanted to say i made another question topic as community wiki specific for posting applications and it is features and the ideas behind this question here is not to list those but instead to know more about what were your attempts, issues along the road and possible solutions, piece of codes if application and so forth.


What sort of protection do you guys use in order to (try to) prevent such acts:



  1. Anti-cheat Software ? (please state which, why and possible problems you faced, for example aion stopped using GameGuard at beta stage due to a huge amount of compatibility problems and complains from their users)

  2. Your own code ? (what sort of verification do you usually run to make sure of the bad-faith players, for example speedhack, verify new location against speed+last location, etc...)

  3. None, i dont care ? (any personal reason or input you did like to share ?)



Any interesting piece of code related to the issue you would like to post ?


Feel free to rework my text my english inst that great ?**



Answer



Unfortunately it's really hard to stop people from cheating, which is why software like Punkbuster was created to try to catch some of them.


For an MMO, the biggest thing you can do is to just not trust anything the client sends you. The client should not be able to tell you where the player has moved to, how much damage they have dealt to whom, etc. Instead, you should send control input to the server, validate that it is practical (pressing the "attack" button 1000 times in 1 second, for example, is not valid), then update the simulation on the server. You would then send the relevant parts of the new state of the game back to the client.


While you are validating user input, it is also possible to look for trends in their input. If you don't allow macros, you could catch them here by noticing that the user has clicked the same button at the exact same pixel coordinates in perfect 1 second intervals for the last 30 minutes.


The client itself is the main place people can cheat, so programs like Punkbuster can cut down on wallhacks, aimbots, etc. Other than that, not trusting the client and validating anything sent to you by the client will help cut down on cheating.


No comments:

Post a Comment

Simple past, Present perfect Past perfect

Can you tell me which form of the following sentences is the correct one please? Imagine two friends discussing the gym... I was in a good s...