Фон
У меня были проблемы в течение довольно долгого времени, когда игроки обманывали мою игру в Android. Для строгой однопользовательской игры это не будет большой проблемой, но поскольку моя игра содержит многопользовательские битвы и глобальные списки рекордов, это заставляет законных игроков прекратить играть из-за мошенников.
Как они обманывают
Читеры используют приложение для корневых пользователей под названием Gamecih. Gamecih позволяет пользователям приостанавливать приложение, изменять значения переменных, а затем возобновлять приложение. Поэтому в моем случае они просто приостанавливают игру, меняют "здоровье" на 74 триллиона, а затем пинают дерьмо из всех в мультиплеере. Здесь видео, показывающее, как Gamecih используется для обмана в Fruit Ninja (а не в моей игре).
Рассматриваемые методы
- Обфускация кода. Это не сработает, потому что обфускация не изменяет значения переменных, просто имена переменных. Это означает, что читеры все еще могут найти переменную, которая имеет то же значение, что и текущее состояние работоспособности, а затем изменить эту переменную.
- Обфускация кода + изменение значения геттера и сеттера. Таким образом, здоровье не будет фактически представлять реальную ценность для здоровья. В методе геттера я бы сделал что-то вроде return health * 10; и в сеттере я бы сделал health = input/10; Это, конечно, может быть сложнее.
Что я хочу
Можно утверждать, что рассматриваемый метод nr 2 - это то, что я должен использовать, но опять же, это не мешает взлому, это просто усложняет его. В идеале, я хотел бы обнаружить, когда люди обманывают использование Gamecih, показывают всплывающее высказывание "Дарн вы, ваш противный хакер", а затем закройте приложение. Я не хочу зависящее от сервера решение, поскольку я бы хотел, чтобы мои игроки могли играть в автономном режиме. Если возможно, я также хотел бы избежать обфускации кода.