Caputchin
Custom-Spiel-Entwicklung

Ein Custom-Spiel gatebar machen

Ein selbst gehostetes Spiel läuft und verifiziert, sobald du game-src darauf richtest. Aber um es als Spiel-Gate zu nutzen, wo ein Besucher es lösen muss, um durchzukommen, muss Caputchin das Ergebnis selbst neu ableiten können, nicht dem Browser trauen. Dafür ist das Replay-Artefakt da. Am Ende dieses Tutorials ist dein Custom-Spiel gate-berechtigt.

Das ist der Determinismus-Lohn: weil dein Spiel einen Trace aufzeichnet und alles aus dem Seed ableitet, kann der Server eine Headless-Kopie deiner Logik gegen denselben Seed und Trace laufen lassen und unabhängig zum selben Urteil kommen.

Was das Replay-Artefakt ist

Das Artefakt ist ein kleines, in sich geschlossenes JavaScript-Bundle nur deiner Spiel-Logik, ohne Rendering, ohne DOM und ohne Netzwerk. Der Server lädt es in eine isolierte Sandbox und führt es aus, um ein Urteil aus (seed, trace) zu produzieren. Es ist nicht dein spielbares Spiel; es ist der Headless-Richter deines spielbaren Spiels.

Zwei Eigenschaften sind Pflicht:

  • In sich geschlossen. Es kann nichts importieren, was das Isolate nicht auflösen kann; bündel alles ein. Der Upload ist auf 2 MB gedeckelt, was weit über einem typischen Logik-Bundle liegt.
  • Deterministisch und in Übereinstimmung mit dem Live-Spiel. Gegeben denselben Seed und den Trace, den dein Live-Spiel emittierte, muss es zum selben Urteil kommen, das das Live-Spiel behauptete. Stimmen sie nicht überein, bekommen echte Spieler Falsch-Ablehnungen.

1. Das Custom-Spiel registrieren

Wenn du das noch nicht getan hast, registrier das Spiel im Dashboard, sodass es eine id und einen Ort hat, das Artefakt zu halten. Nutz auf der Spiele-Seite eines Site-Keys (oder des Teams) das Custom-Spiel-Eingabefeld im Panel Spiel hinzufügen: gib deine id ein und klick Definieren. Sieh dir Custom-Spiele für diesen Schritt und das Schema, das du definierst an.

2. Das Artefakt hochladen

Lade auf dem Einstellungen-Tab des registrierten Spiels das Replay-Bundle hoch. Es wird als einzelne Datei gesendet; Caputchin content-hasht es (dieselben Bytes erneut hochzuladen ist ein No-op) und lässt sofort eine Selbstprüfung laufen.

3. Die Selbstprüfung

Die Selbstprüfung lässt dein hochgeladenes Artefakt im Replay-Isolate gegen einen synthetischen Seed laufen (und dein committetes Trace-Sample, falls du eines lieferst) und zeichnet auf, ob es ein sauberes Urteil produzierte:

  • Besteht → der Install wird gate-berechtigt. Das Nicht abspielbar-Abzeichen verschwindet, und du kannst jetzt ein Spiel verlangen mit diesem Spiel im Pool einschalten.
  • Schlägt fehl → das Artefakt ist trotzdem gespeichert (sodass du den Fehler inspizieren kannst), aber der Install bleibt nicht-gate-berechtigt. Korrigier die Logik und lade erneut hoch.

Eine fehlgeschlagene Selbstprüfung ist das System, das dir sagt, dass der Headless-Richter nicht mit sich selbst übereinstimmt oder nicht laufen konnte; es ist genau die Nichtübereinstimmung, die Falsch-Ablehnungen in der Produktion verursacht hätte, gefangen, bevor irgendein Besucher darauf trifft.

4. Das Gate einschalten

Sobald die Selbstprüfung besteht, ist das Spiel im Gate-Pool des Keys. Schalt Ein Spiel verlangen auf der Sicherheit-Seite des Keys ein (oder die Spiel-erzwingen-Obergrenze des Teams), und Caputchin wird dein Custom-Spiel servieren, den Trace des Spielers nehmen und dein Artefakt serverseitig erneut laufen lassen, um jede Verifizierung zu entscheiden.

Die zwei synchron halten

Das Live-Spiel (geladen per game-src) und das Replay-Artefakt sind zwei Builds derselben Logik. Wenn du irgendetwas änderst, das das Ergebnis beeinflusst, baue neu und lade das Artefakt erneut hoch, sodass die zwei weiter übereinstimmen. Driften sie auseinander, beginnt die Selbstprüfung oder das Produktions-Replay, echte Siege abzulehnen. Beide aus einem geteilten Logik-Modul zu bauen ist der verlässliche Weg, sie identisch zu halten.

Siehe auch

Auf dieser Seite