Wenn Sie dies vollständig auf der Clientseite tun möchten und den von Ihrer Plattform bereitgestellten privaten Speicher nicht als sicher genug betrachten (z. B. wenn für das Abschließen von Levels tatsächlich Geld erforderlich ist), benötigen Sie einen Arbeitsnachweis. Ihre Sicherungsdatei muss Informationen enthalten, die so gestaltet sind, dass das Erstellen der Informationen nur schwer zu berechnen ist, wenn Sie die zugehörige Ebene abgeschlossen haben. Sie können jedoch leicht von einem Dritten überprüft werden, der diese bestimmte Ebene nicht unbedingt abgeschlossen hat (vorzugsweise ohne dass dies erforderlich ist) die Lösung selbst kennen). Je größer der Unterschied in der Schwierigkeit ist, den Arbeitsnachweis vor und nach Abschluss des Levels zu berechnen, desto sicherer ist der Arbeitsnachweis.
Leider muss dieser Arbeitsnachweis so sein, dass er an das Gameplay gebunden ist. Daher gibt es keine generische Möglichkeit, dies für beliebige Spiele zu tun, und Ihre ausführbare Spieledatei darf die Lösung für das Spiel in keiner Weise enthalten, oder auf andere Weise Es ist ganz einfach, den Arbeitsnachweis aus der ausführbaren Datei zu extrahieren. In den meisten Fällen müssen Sie Ihr Gameplay fast immer speziell auf diese spezielle Anforderung abstimmen, damit ein Arbeitsnachweis betrügerisch ist, sodass Sie auch etwas kreative Freiheit verlieren.
Beispiel: Bei einem Sudoku-Spiel könnte der Arbeitsnachweis das fertige Sudoku-Board sein (beachten Sie, dass das Board von einem vertrauenswürdigen Dritten erstellt werden muss, da die meisten Algorithmen zur Generierung von Sudoku-Boards die Lösung vorberechnen müssen, wodurch der Beweis von geschwächt wird Arbeit, wenn es auf dem Client erledigt ist). Oder ein Spiel, bei dem eine große zusammengesetzte Zahl berücksichtigt wird. Der Beweis der Arbeit ist der Hauptfaktor (ich würde ein solches Spiel RSA gegen NSA nennen).
Um wirklich sicher zu sein, muss Ihr Spiel einige zufällige Elemente enthalten, denn wenn Ihr Spiel völlig deterministisch ist, ist es möglich, den Arbeitsnachweis von jemand anderem zu kopieren, der das Level abgeschlossen hat (dies ist ein Wiederholungsangriff).
Das Ziel des Arbeitsnachweises ist es, das Betrügen mindestens so schwierig zu machen wie das Erstellen eines Bots für das Spiel. Um ein Sudoku-Spiel zu betrügen, benötigen Sie einen Sudoku-Löser usw.
Das ist extrem schwer. Wenn es sich um ein Einzelspieler-Spiel handelt, ist es besser, Ihre kreative Freiheit zu bewahren und sich keine Sorgen über Betrug zu machen. Es ist ihr Spiel, sie haben es gekauft und wenn sie betrügen, hat das keinen Einfluss auf Ihr Endergebnis. Oder verwandeln Sie es in ein serverbasiertes Spiel und erledigen Sie alle wichtigen Spielelogiken auf dem Server.