Embora eu tenha feito o primeiro comentário questionando o ponto de degradar a experiência de uma parte do seu público sem nenhum ganho aparente, ainda acho uma questão interessante do ponto de vista técnico.
Acabei de ter uma ideia: o que os trapaceiros fazem é encontrar valores que os mudam e os congelam. A busca aconteceria apenas entre mortes ou eventos que mudassem a saúde do jogador. Além disso, o trapaceiro poderia refinar a pesquisa filtrando o que mudou quando ele "não estava morrendo".
E se o contador de "saúde" estiver mudando o tempo todo? Torne-o um ponteiro e realoque-o a cada quadro ou a cada N quadro, se o desempenho for muito grande. Ou faça um XOR com um valor aleatório que altere todos os quadros (XOR novamente contra o mesmo valor para descriptografar antes de criptografar com um novo valor aleatório).
Se você tiver outros dados no jogo também alterando o tempo todo (incluindo as posições xey do personagem do jogador ou o contador de tempo), isso poderá dificultar a descoberta de qual dos dados alterados é a saúde. E congelar todo o estado do jogo é proibido para o trapaceiro.
Para enganar ainda mais, você pode realmente armazenar a saúde em uma variável simples de gravação, criada como um pote de mel.
Editar :
Ainda assim, o trapaceiro pode tentar descobrir qual das variáveis que estão mudando o tempo todo é a que deve congelar por tentativa e erro. Uma solução possível seria acoplar as variáveis.
Um exemplo:
Em vez de armazenar a saúde (h) e a posição (x), você as armazena em duas variáveis aeb, das quais é possível recuperar os valores posteriormente:
a = x+h; b = x-h
x = (a+b)/2; h = (a-b)/2
Dessa forma, se o trapaceiro congela apenas um deles e depois move o personagem, a posição é afetada e, dependendo de qual deles foi congelado, h fica negativo (morte instantânea). Você pode alternar entre as fórmulas acima e:
a = x-h; b = x+h
x = (a+b)/2; h = (b-a)/2
Em quadros consecutivos, e você garante que, no máximo, 2 quadros depois que uma das variáveis tenha sido congelada, a saúde tornará 0 no momento em que x mudar. Lembre-se de que você está armazenando apenas aeb. Combine isso com o XOR contínuo, como mencionado acima. O resultado é uma coleção de variáveis que estão mudando cada quadro para valores aparentemente aleatórios, e congelar qualquer um ou um subconjunto deles produz apenas efeitos colaterais indesejados no jogo, sendo a morte instantânea um deles.