Zum Hauptinhalt springen
Closed Alpha ist jetzt live
Charter aktiv Unterstütze die Gründungskampagne und sichere dir deine reservierten Vorteile. Charter unterstützen

Sicherheit

Sicherheit & Determinismus-Vertrag

Stellarchs Kampf-Engine ist deterministisch. Gleicher Seed + gleiche Teams + gleiche Kampfkonfiguration = byteidentischer Eventstrom jedes Mal. Diese Seite ist die tragende Vertrauenserklärung für Zuschauer und Deck-Builder: Sie erklärt, warum jedes Match-Ergebnis aus seinem Seed reproduzierbar ist und was diese Garantie aufrechterhält.

Wie der seeded RNG funktioniert

Jedes Match konstruiert eine SeededRng-Instanz aus dem persistierten Seed des Kampfes (eine Ganzzahl). Diese einzelne Instanz wird durch jeden Engine-Aufruf (Targeting, AttackResolver, DeathResolver, RoundResolver), jeden Fähigkeits-Hook (Splash, Killstreak, Shock, Hemobane) und jeden Regelwerks-Hook (Tectonic Resonance, Time Dilation) gefädelt. Keine Engine und keine Fähigkeit konstruiert ihr eigenes Random.

Warum Wiederholungen byteidentisch sind

Drei Invarianten erzwingen Determinismus. (1) Alle Zufälligkeit fließt durch einen SeededRng. (2) Keine Datei unter dem Engine-Namensraum verwendet Random.new, Kernel.rand, SecureRandom oder Array#sample; ein tragender Test scannt jede Datei und schlägt bei jedem Treffer sofort fehl. (3) Keine Uhrenentropie: Time.current / Time.now werden für Zufälligkeit in der Engine nirgendwo verwendet.

Der No-Raw-RNG-Wächter

Ein dedizierter Spec scannt bei jedem Testlauf jede Ruby-Datei unter dem Engine-Namensraum. Schleicht sich eine nicht-seeded RNG-Quelle ein, schlägt der Spec sofort mit Datei- und Zeilennummer fehl. Nur der SeededRng-Wrapper selbst ist befreit. Dieser Wächter läuft bei jedem CI-Build.

Wie man ein Kampfergebnis verifiziert

Jede Wiederholung, die du ansiehst, ist bereits eine frische Re-Simulation: Der Server führt die vollständige Kampf-Engine bei jeder Anfrage aus dem Seed des Kampfes erneut aus (5 Minuten zwischengespeichert), statt ein gespeichertes Protokoll zu lesen. Weil derselbe Seed plus derselbe Team-Snapshot immer dieselben Events erzeugen (Schadenswerte, Trefferwürfe, Todesreihenfolge und Reflexionen, alles Event für Event), ist das, was du siehst, per Definition reproduzierbar. Ein tieferes Byte-Level-Audit, den Simulator erneut auszuführen und den Eventstrom zu vergleichen, ist über die Engine selbst möglich; ein öffentliches Verifizierungs-Tool ist geplant.

Probleme melden

Findest du einen Fall, in dem eine Wiederholung vom Original abweicht, melde bitte ein Issue. Gib den Battle-Slug, die ursprüngliche Eventanzahl und den Eventindex an, an dem die Abweichung erscheint. Das Team behandelt Determinismus-Regressionen als die höchste Priorität.