Si vous voulez le faire totalement du côté client et que vous ne considérez pas que le stockage privé fourni par votre plate-forme est suffisamment sécurisé (par exemple, s'il y a de l'argent réel impliqué dans l'achèvement des niveaux), vous avez besoin d'une preuve de travail. Votre fichier de sauvegarde doit contenir des informations conçues de telle sorte que la création des informations est difficile à calculer à moins d'avoir terminé le niveau associé, mais facile à vérifier par un tiers qui n'a pas nécessairement atteint ce niveau particulier (de préférence sans avoir à le faire connaître la solution elle-même). Plus la différence dans la difficulté de calculer la preuve de travail avant et après avoir terminé le niveau est grande, plus la preuve de travail est sûre.
Malheureusement, cette preuve de travail doit être telle qu'elle soit liée au gameplay, il n'y a donc pas de moyen générique pour les jeux arbitraires, et l'exécutable de votre jeu ne doit en aucun cas contenir la solution du jeu, sinon il est assez facile d'extraire la preuve de travail de l'exécutable. Dans la plupart des cas, vous devrez presque toujours concevoir spécifiquement votre gameplay autour de cette exigence particulière pour faire une preuve de travail à l'épreuve de la triche, de sorte que vous perdrez également une certaine liberté créative.
Par exemple, disons un jeu de Sudoku, la preuve de travail pourrait être la carte Sudoku terminée (notez que la carte doit être générée par un tiers de confiance, car la plupart des algorithmes de génération de carte Sudoku doivent précalculer la solution, ce qui affaiblit la preuve de fonctionner si c'est fait sur le client). Ou un jeu d'affacturage d'un grand nombre composite, la preuve du travail est le facteur premier (j'appellerais un tel jeu RSA vs NSA).
Pour être vraiment sûr, votre jeu doit contenir des éléments aléatoires, car si votre jeu est totalement déterministe, il est possible de tricher en copiant la preuve de travail de quelqu'un d'autre qui a terminé le niveau (il s'agit d'une attaque par rejeu).
Le but de la preuve de travail est de rendre la tricherie au moins aussi difficile que de créer un bot pour le jeu. Donc, pour tricher sur un jeu Sudoku, vous aurez besoin d'un solveur Sudoku, etc.
C'est extrêmement difficile. S'il s'agit d'un jeu solo, il vaut mieux garder votre liberté créative et ne vous inquiétez pas de tricher. C'est leur jeu, ils l'ont acheté et s'ils trichent, cela n'affecte pas votre résultat net. Ou transformez-le en jeu basé sur serveur et faites toute votre logique de jeu importante sur le serveur.