Anche se ho fatto il primo commento mettendo in discussione il punto di degradare l'esperienza di una parte del tuo pubblico senza alcun guadagno apparente, trovo comunque una domanda interessante da un punto di vista tecnico.
Ho appena avuto questa idea: ciò che fanno gli imbroglioni è trovare valori che cambiano e congelarli. La ricerca sarebbe quindi avvenuta solo tra morti o eventi che hanno cambiato la salute del giocatore. Inoltre, l'imbroglione potrebbe perfezionare la ricerca filtrando ciò che è cambiato quando "non stava morendo".
Cosa succede se il contatore "salute" sta cambiando tutto il tempo? Trasformalo in un puntatore e rialloca ogni frame o N frame se l'hit di performance è troppo grande. Oppure XOR con un valore casuale che cambia ogni fotogramma (XORing di nuovo rispetto allo stesso valore per la decrittografia prima della crittografia con un nuovo valore casuale).
Se hai altri dati di gioco che cambiano anche tutto il tempo (incluse le posizioni xey del personaggio del giocatore o il contatore del tempo), ciò potrebbe rendere più difficile scoprire quale di tutti i dati che cambiano è la salute. E congelare l'intero stato del gioco è un gioco da ragazzi.
Per ulteriori informazioni fuorvianti, puoi effettivamente archiviare la salute in una semplice variabile di sola scrittura intesa come un vaso di miele.
Modifica :
Tuttavia, l'imbroglione potrebbe provare a trovare quale delle variabili che sta cambiando continuamente è quella da congelare attraverso tentativi ed errori. Una possibile soluzione sarebbe quella di accoppiare le variabili.
Un esempio:
Invece di memorizzare salute (h) e posizione (x), li memorizzi in due variabili aeb, da cui puoi recuperare i valori in un secondo momento:
a = x+h; b = x-h
x = (a+b)/2; h = (a-b)/2
In questo modo, se l'imbroglione congela solo uno di essi e quindi sposta il personaggio, la posizione viene influenzata e, a seconda di quale è stato congelato, h diventa negativo (morte istantanea). Puoi passare tra le formule sopra e:
a = x-h; b = x+h
x = (a+b)/2; h = (b-a)/2
In fotogrammi consecutivi e garantisci che al massimo 2 fotogrammi dopo che una delle variabili è stata congelata, la salute girerà 0 nel momento in cui x cambia. Ricorda che stai memorizzando solo aeb. Combina questo con lo XOR continuo come menzionato sopra. Il risultato è una raccolta di variabili che stanno cambiando ogni fotogramma in valori apparentemente casuali e il congelamento di uno singolo o di un suo sottoinsieme produce solo effetti collaterali indesiderati nel gioco, la morte istantanea è uno di questi.