28. Dezember 2025 · Phase 1

Determinismus: Warum jedes Spiel reproduzierbar ist

Technischer Deep Dive heute: Warum ich einen Seeded Random Number Generator verwende und was das für das Spiel bedeutet.

Das Problem mit Zufall

Ein Fussball-Manager braucht Zufall. Tor oder kein Tor, Verletzung oder nicht, guter Tag oder schlechter Tag — all das muss zufällig sein. Aber normaler Zufall (System.Random) ist nicht reproduzierbar. Wenn du ein Spiel nochmal laufen lässt, kommt ein anderes Ergebnis raus.

Seeded RNG

Die Lösung: Jedes Match bekommt einen Seed — eine Startzahl für den Zufallsgenerator. Gleicher Seed = gleiche Zufallszahlen = gleiches Ergebnis. Immer. Auf jedem Rechner.

Warum ist das wichtig?

  • Debugging: Wenn ein Bug auftritt, kann ich das exakt gleiche Spiel nochmal simulieren und Schritt für Schritt durchgehen
  • Testing: Unit Tests die auf Zufallsergebnissen basieren, liefern trotzdem verlässliche Resultate
  • Replays: In Zukunft kann man ein Spiel nochmal abspielen lassen — gleicher Seed, gleiche Aufstellung, gleiches Ergebnis
  • Fairness: Im (geplanten) Multiplayer verhindert das Manipulation

Implementation

Der Seed wird aus Saison, Spieltag, Heim- und Auswärtsteam berechnet. So ist jedes Spiel eindeutig aber trotzdem determiniert. Funktioniert sauber — einer der wenigen Teile wo alles auf Anhieb geklappt hat.

Kommentar schreiben