Хотя я сделал первый комментарий, ставя под сомнение точку зрения ухудшения восприятия части вашей аудитории без видимой выгоды, я все же нахожу это интересным вопросом с технической точки зрения.
У меня просто возникла идея: обманщики находят изменяющие ценности и замораживают их. Поиск будет происходить только между смертями или событиями, которые изменили здоровье игрока. Более того, мошенник мог уточнить поиск, отфильтровывая то, что изменилось, когда он «не умирал».
Что если счетчик «здоровья» постоянно меняется? Сделайте его указателем и перераспределите его каждый кадр или каждый N кадров, если производительность слишком велика. Или XOR это со случайным значением, которое изменяет каждый кадр (снова XOR против того же значения для дешифрования перед шифрованием с новым случайным значением).
Если у вас есть другие внутриигровые данные, которые также меняются все время (включая x и y позиции персонажа игрока или счетчик времени), это может затруднить определение того, какие из изменяющихся данных являются состоянием здоровья. А замораживание всего игрового состояния - мошенник.
Чтобы еще больше ввести в заблуждение, вы можете хранить состояние в простой переменной, доступной только для записи, в качестве медового банка.
Редактировать :
Тем не менее, мошенник может попытаться найти, какая из переменных, которая меняется все время, является той, которая замораживается методом проб и ошибок. Возможное решение было бы соединить переменные вместе.
Пример:
Вместо сохранения здоровья (h) и позиции (x) вы сохраняете их в двух переменных a и b, из которых вы можете получить значения позже:
a = x+h; b = x-h
x = (a+b)/2; h = (a-b)/2
Таким образом, если мошенник замораживает только одного из них, а затем перемещает персонажа, позиция изменяется и, в зависимости от того, какой из них был заморожен, h становится отрицательным (мгновенная смерть). Вы можете переключаться между приведенными выше формулами и:
a = x-h; b = x+h
x = (a+b)/2; h = (b-a)/2
В последовательных кадрах, и вы гарантируете, что не более чем через 2 кадра после того, как одна из переменных была заморожена, здоровье станет равным 0 в момент изменения x. Помните, что вы храните только a и b. Объедините это с непрерывным XOR, как упомянуто выше. В результате получается набор переменных, которые меняют каждый кадр на кажущиеся случайными значения, а замораживание любого отдельного или его подмножества приводит только к нежелательным побочным эффектам в игре, одним из которых является мгновенная смерть.