9. November 2025 · Phase 1

Die Datenbank steht — und es hat wehgetan

Drei Wochen. Drei Wochen habe ich an der Datenbankarchitektur gesessen. Und ehrlich gesagt hätte ich nicht gedacht, dass das der schwierigste Teil bis jetzt werden würde.

Zwei Datenbanken statt einer

Die Grundidee klingt simpel: Eine MasterDB für die Grunddaten (Ligen, Vereine, Spieler) und eine SaveDB für den Spielstand. In der Praxis war das ein ziemlicher Kampf mit Entity Framework Core.

Das Problem: Wenn du ein neues Spiel startest, müssen hunderte Spieler, dutzende Vereine und alle Liga-Strukturen von der MasterDB in die SaveDB kopiert werden — mit neuen IDs, neuen Beziehungen, allem. Das klingt trivial, ist es aber nicht wenn du verschachtelte Relationen hast.

Ich hab bestimmt drei verschiedene Ansätze ausprobiert bevor ich einen gefunden habe, der stabil läuft. Am Ende musste ich einen eigenen Kopiermechanismus schreiben der die gesamte Objekthierarchie durchgeht und alles sauber klont. Nicht schön, aber es funktioniert zuverlässig.

CSV-Import für Community-Daten

Was mich besonders freut: Der CSV-Import steht. Das heisst die Community kann später eigene Spielerdaten erstellen und ins Spiel laden. Offenes Format, keine proprietären Dateien, keine Geheimnisse. Jeder kann mitmachen.

Aktueller Stand der Datenbank:

  • 38+ Spielerattribute auf einer 1-20 Skala (Technik, Physis, Mentalität)
  • 6 versteckte Persönlichkeitsmerkmale (Professionalität, Ambition, etc.)
  • Vereinsstrukturen mit Budget, Stadion und Kader
  • Liga-Konfiguration mit Auf- und Abstiegsregeln

Nächster Schritt: Die Match Engine. Da freue ich mich drauf — endlich mal was wo man sofort sieht ob es funktioniert oder nicht. Keine abstrakten Datenstrukturen mehr, sondern Tore, Karten und Spielverläufe.

Wird spannend.

Kommentar schreiben