Jump to content

Curbing Cheating

Hello, I was wondering if anyone would suggest interesting concepts relating to how cheating could be curbed on a MMORTS game? I can't get into much details for security reasons, so sorry for being vague (Yes I practice being vague lol).

Link to comment
Share on other sites

Link to post
Share on other sites

I guess it would depend on the scale you are talking about.  If it is close to 200 people, you could still try running a server that collects the players moves and verifies those moves match what is happening.  Of course the more invasive route would be to have the game/other background process itself try checking for memory manipulations and such....or have lets say a hash of the sectors of code to see if there was any manipulation.

 

I don't really know though...I have only ever experience anti-cheats when the server was in ultimate control of the game (Gone are those days though, most games are p2p)

0b10111010 10101101 11110000 00001101

Link to comment
Share on other sites

Link to post
Share on other sites

You have two posts on this... O.o

I posted in the programming section for a programmers viewpoint, and on the gaming section for a gamers viewpoint.

Link to comment
Share on other sites

Link to post
Share on other sites

I guess it would depend on the scale you are talking about.  If it is close to 200 people, you could still try running a server that collects the players moves and verifies those moves match what is happening.  Of course the more invasive route would be to have the game/other background process itself try checking for memory manipulations and such....or have lets say a hash of the sectors of code to see if there was any manipulation.

 

I don't really know though...I have only ever experience anti-cheats when the server was in ultimate control of the game (Gone are those days though, most games are p2p)

1,000,000 active monthly users, browser based. Written in C++ then Alchemy is used so it is playable with Adobe Flash.

Link to comment
Share on other sites

Link to post
Share on other sites

(Gone are those days though, most games are p2p)

really?

anyway, since it's browser based we can guess that it uses the client-server model, which makes anti-cheating much much easier, as the server has the chance of validating every single move, every single change

i'm really not into multiplayer games and not even cheating tho, so maybe i'm missing something

Link to comment
Share on other sites

Link to post
Share on other sites

Well few things. Cheat Engine is annoying the hell out of me lol, and players are going as far as attempting to hack into the servers to unban themselves. 

Link to comment
Share on other sites

Link to post
Share on other sites

really?

anyway, since it's browser based we can guess that it uses the client-server model, which makes anti-cheating much much easier, as the server has the chance of validating every single move, every single change

i'm really not into multiplayer games and not even cheating tho, so maybe i'm missing something

Well from my experience (which albiet is a bit dated now) :P  I remember on games like Bomberman for PS3 though, you could cheat and cause glitches, because I assume all calculations are done on the client-side instead of server side...If I am wrong please do, as I could be wrong. But I thought most games now were client-client (well in the sense that the server acts as a dumb hub instead of performing the calculations).

 

Well few things. Cheat Engine is annoying the hell out of me lol, and players are going as far as attempting to hack into the servers to unban themselves. 

Sorry I can't be too much help here.

This is just my personal suggestion from someone who uses Cheat Engine successfully (on single player games, not MP).  If you were to replicate variables and do occasional checks on integrity of the variables it might help

 

e.g. say health is 0-100, you have a variable health and bhealth.  bhealth typically = health + 103243....now if they use cheat engine it they would try targeting one section in memory. (and most likely try targeting the exact number first)...so they change the health, but bhealth now isn't health + 103243, so on the occasional check it detects the difference and alerts the server.  Ultimately if the calculations are done on the client-side there isn't too much you can do, you can only slow people down :P

 

This would stop the people like me who doesn't want to put in added effort to figure out what went wrong....but it might make those who are determined to cheat mad (which isn't a good thing either).  With that said it depends who you are trying to target.  As for the hacking the server to get unbanned I don't have any advice there...I don't have any experience with that.

0b10111010 10101101 11110000 00001101

Link to comment
Share on other sites

Link to post
Share on other sites

Well from my experience (which albiet is a bit dated now) :P  I remember on games like Bomberman for PS3 though, you could cheat and cause glitches, because I assume all calculations are done on the client-side instead of server side...If I am wrong please do, as I could be wrong. But I thought most games now were client-client (well in the sense that the server acts as a dumb hub instead of performing the calculations).

 

Sorry I can't be too much help here.

This is just my personal suggestion from someone who uses Cheat Engine successfully (on single player games, not MP).  If you were to replicate variables and do occasional checks on integrity of the variables it might help

 

e.g. say health is 0-100, you have a variable health and bhealth.  bhealth typically = health + 103243....now if they use cheat engine it they would try targeting one section in memory. (and most likely try targeting the exact number first)...so they change the health, but bhealth now isn't health + 103243, so on the occasional check it detects the difference and alerts the server.  Ultimately if the calculations are done on the client-side there isn't too much you can do, you can only slow people down :P

 

This would stop the people like me who doesn't want to put in added effort to figure out what went wrong....but it might make those who are determined to cheat mad (which isn't a good thing either).  With that said it depends who you are trying to target.  As for the hacking the server to get unbanned I don't have any advice there...I don't have any experience with that.

Thank you

Link to comment
Share on other sites

Link to post
Share on other sites

SimCity's anti-cheat goes through and re-simulates everything against a server copy of the game code that is obviously not modifiable by the user. (This code is the exact same code that is used to simulate on the client side) If the user is playing fair, the server-side simulation will have the same exact results as the one submitted by the user and it will save your game. If the simulations are different, it will just revert to the last time you had a valid save.

 

I could be wrong, but I think VAC does something similar. It goes through and recalculates the physics in EVERY game (which explains the delay for bans) and if it determines, for example, that you couldn't have shot someone because there was a wall in the way, you'll be banned. This also shows why Valve refuse to dispute VAC bans, because it simulates against the exact same code you should be running locally. If the code isn't modified, the results will always be exactly the same, so people who say they got banned without cheating are obviously lying. (If a glitch/bug exists in the game, it will also exist in VAC)

Link to comment
Share on other sites

Link to post
Share on other sites

SimCity's anti-cheat goes through and re-simulates everything against a server copy of the game code that is obviously not modifiable by the user. (This code is the exact same code that is used to simulate on the client side) If the user is playing fair, the server-side simulation will have the same exact results as the one submitted by the user and it will save your game. If the simulations are different, it will just revert to the last time you had a valid save.

 

I could be wrong, but I think VAC does something similar. It goes through and recalculates the physics in EVERY game (which explains the delay for bans) and if it determines, for example, that you couldn't have shot someone because there was a wall in the way, you'll be banned. This also shows why Valve refuse to dispute VAC bans, because it simulates against the exact same code you should be running locally. If the code isn't modified, the results will always be exactly the same, so people who say they got banned without cheating are obviously lying. (If a glitch/bug exists in the game, it will also exist in VAC)

Good suggestions.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×