Bevor ich auch nur eine Zeile Spiellogik schreibe, musste die Projektstruktur stehen. Und ich hab mich bewusst für eine modulare Architektur entschieden.
6 Unterprojekte
Die Solution hat sechs Projekte:
- TaktikManager.Core — Die Spiellogik: Match Engine, Taktik, Transfers, Finanzen. Kein UI, keine Grafik, nur reine Logik.
- TaktikManager.Data — Datenbank-Zugriff, Entity Framework, CSV-Import, Speichersystem.
- TaktikManager.UI — Alles was auf den Bildschirm kommt: Screens, Widgets, Rendering.
- TaktikManager.Editor — Das eigenständige Editor-Tool für die MasterDB.
- TaktikManager.DesktopShared — Gemeinsamer Code zwischen Hauptspiel und Editor: Fenster-Management, Input, Audio.
- TaktikManager.Tests — Unit Tests für alle kritischen Systeme.
Warum die Trennung?
Core und Data haben keine Abhängigkeit auf UI. Das heisst ich kann die komplette Spiellogik testen ohne ein Fenster zu öffnen. 1000 Spiele simulieren? Kein Rendering nötig, läuft in Sekunden. Diese Trennung spart bei jedem Testlauf enorm Zeit.
Ausserdem kann der Editor unabhängig gebaut und deployed werden. Modder brauchen nur den Editor, nicht das ganze Spiel.
Hat einen halben Tag gedauert alles aufzusetzen. Klingt nach wenig, spart aber Monate an Ärger später.