Ideally, I would like to detect when people cheat using Gamecih, display a pop-up saying 'Darn you, you nasty hacker', and then close the application. It could be argued that considered method nr 2 is what I should use, but then again, it doesn't prevent hacking, it just makes it harder. In the getter method I would do something like return health*10 and in the setter I would do health=input/10 This could of course be more complicated. This way, health will not actually represent the real health value.
Code obfuscation + getter & setter value changing.This means that cheaters can still find the variable that has the same value as their current health and then change that variable. This won't work because obfuscation doesn't change variable values, just variable names. Here's a video showing how Gamecih is used to cheat in Fruit Ninja(not my game). So in my case they just pause the game, change 'health' to 74 trillions and then kick the crap out of everyone on multiplayer. Gamecih lets users pause an app, change variable values, and then resume the app. For a strict single-player game this wouldn't be a big issue, but since my game contains multiplayer battles and global highscore lists, it's causing legit players to stop playing because of the cheaters.Ĭheaters use an app for root users called Gamecih.
I've had problems for quite a while now with players cheating in my android game.