Хоча я зробив перший коментар, поставивши під сумнів питання про погіршення досвіду частини вашої аудиторії без очевидних вигод, я все ж вважаю цікавим питання з технічної точки зору.
У мене щойно була така ідея: те, що роблять шахраї - це значити значення, які їх змінюють і заморожують. Після цього пошук відбуватиметься лише між смертьми або подіями, які змінили здоров'я гравця. Більше того, шахрай може вдосконалити пошук, відфільтрувавши те, що змінилося, коли він "не вмирав".
Що робити, якщо лічильник "здоров'я" весь час змінюється? Зробіть його вказівником і перерозподіліть його в кожному кадрі або в кожному N кадрах, якщо показник продуктивності занадто великий. Або XOR це з випадковим значенням, яке змінює кожен кадр (XORing знову проти того ж значення для розшифровки перед шифруванням з новим випадковим значенням).
Якщо у вас є інші дані в грі, які також змінюються весь час (включаючи позиції 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 момент, коли х зміниться. Пам’ятайте, що ви зберігаєте лише a і b. Поєднайте це з безперервним XOR, як згадувалося вище. Результат - це сукупність змінних, які змінюють кожен кадр на здавалося б випадкові значення, і заморожування будь-якого одного або їх підмножини створює лише небажані побічні ефекти в грі, миттєва смерть є однією з них.