Se você quiser fazer isso totalmente no lado do cliente e não considerar o armazenamento privado fornecido por sua plataforma seguro o suficiente (por exemplo, se houver dinheiro real envolvido na conclusão dos níveis), o que você precisa é uma prova de trabalho. Seu arquivo salvo deve conter informações projetadas para dificultar o cálculo, a menos que você tenha concluído o nível associado, mas fácil de verificar por terceiros que não necessariamente concluíram esse nível específico (de preferência sem precisar conhecer a solução em si). Quanto maior a diferença na dificuldade de calcular a prova de trabalho antes e depois de concluir o nível, mais segura é a prova de trabalho.
Infelizmente, porém, essa prova de trabalho deve estar vinculada à jogabilidade, portanto não existe uma maneira genérica de fazê-lo em jogos arbitrários, e o executável do seu jogo não deve conter a solução para o jogo de nenhuma maneira ou, caso contrário, é bastante fácil extrair a prova de trabalho do executável. Na maioria dos casos, você quase sempre precisará projetar especificamente sua jogabilidade em torno desse requisito específico para fazer com que a prova do trabalho seja à prova de trapaças, para que você também perca alguma liberdade criativa.
Por exemplo, digamos que um jogo de Sudoku, a prova do trabalho possa ser o quadro completo do Sudoku (observe que o quadro deve ser gerado por terceiros confiáveis, porque a maioria dos algoritmos de geração do quadro Sudoku precisa pré-calcular a solução, isso enfraquece a prova de funcione se for feito no cliente). Ou um jogo de fatorar um grande número composto, a prova do trabalho é o principal fator (eu chamaria esse jogo de RSA vs NSA).
Para ser realmente seguro, porém, seu jogo precisa conter alguns elementos aleatórios, porque se for totalmente determinístico, é possível enganar copiando a prova de trabalho de alguém que tenha concluído o nível (este é um ataque de repetição).
O objetivo da prova de trabalho é tornar a trapaça pelo menos tão difícil quanto criar um bot para o jogo. Então, para trapacear em um jogo de Sudoku, você precisará ter um solucionador de Sudoku, etc.
Isso é extremamente difícil. Se for um jogo para um jogador, é melhor manter sua liberdade criativa e não se preocupar com trapaças. É o jogo deles, eles o compraram e, se trapacearem, isso não afeta seus resultados. Ou ligue-o para um jogo baseado em servidor e faça toda a sua lógica de jogo importante no servidor.