Fobly
Fußballmanager
Fußballmanager habe ich schon immer gern mit Freunden gespielt. Irgendwann wollte ich selbst einen bauen. Aus Spaß am Spiel und Freude am Entwickeln wurde Fobly.
- Rolle
- Solo-Entwicklung
- Fokus
- Simulation & Produkt
- Plattform
- Web-App



01 · Die Spieler
Spieler generieren und entwickeln
Was macht einen Spieler gut? Und wie wird er besser? Ich begann mit Attributen, Talent und statistischen Verteilungen. Ich probierte verschiedene Generatoren aus und verglich ihre Ergebnisse mit den Verteilungen, bevor ich mit der Simulation begann. Normalverteilte Talentwerte schaffen unterschiedliche Voraussetzungen. Alter, Training, Einsatzzeit und Leistung beeinflussen die Entwicklung jedes Attributs. Daraus entsteht ein positionsabhängiges Rating. Zwei ähnliche Talente können so ganz unterschiedliche Wege nehmen.
Talentwerte und ihre Wahrscheinlichkeit
Bei der Spielergenerierung werden Talentwerte nach einer Normalverteilung gezogen. Mittlere Talentwerte sind wahrscheinlicher, besonders niedrige und hohe Werte seltener.
Luca
19 Jahre · ZM · Talent 7/10
2 Einsätze pro Woche
Emil
19 Jahre · ZM · Talent 7/10
Training ohne Spiele
Lokales Beispiel mit der echten XP-Engine: identisches Talent, tägliches Mittelfeldtraining. Luca spielt zusätzlich mit einer angenommenen Leistung von 7/10. Die Kurve oben zeigt das Prinzip der Talentverteilung.
02 · Die Match-Engine
Wie aus einzelnen Aktionen ein Spiel entsteht
Nach den Spielern kam die Match-Engine. Sie simuliert ein Spiel minutenweise, aber denkt in zusammenhängenden Spielzügen. Ballposition, beteiligte Spieler und vorherige Aktionen verändern die nächste Situation. Ihre Fähigkeiten beeinflussen Erfolgswahrscheinlichkeiten. Ein guter Pass ist deshalb wahrscheinlicher, aber nie garantiert. Bei einem Zweikampf werden dafür die relevanten Werte beider Spieler gegeneinander abgewogen. Eine Ereigniskette kann dabei über die nächste Minute hinauslaufen.
17′ · Vom Aufbau zum Tor
Pass
Nico Richter
→ Milan Berger
Echte Ereigniskette aus einer lokalen Demo-Simulation, Seed 20261033. Ballpositionen und Erfolgschancen stammen aus der Engine. Ballflugbahn und Schusstempo folgen der Fobly-Live-Visualisierung.
03 · Das Balancing
Stärkeunterschiede nachvollziehbar machen
Die schwierigste Frage war, wie gute Spieler auch klügere Entscheidungen treffen, ohne das Spiel zu dominieren. Ich veränderte Parameter und testete mit 1.000 bis 10.000 Spielen pro Lauf. Dafür ließ ich generierte Mannschaften gegeneinander antreten und verglich Ergebnisse und Ereignisse mit echten Fußballstatistiken. Vieles war Trial and Error. Entscheidend war, ob eine Änderung Stärkeunterschiede nachvollziehbar machte und sich das Spiel weiterhin stimmig anfühlte.
Zwei Mannschaften · 10.000 Testspiele
160
Ø Positionsrating108
Ø Positionsrating| FC Morgenrot | Statistik | SV Abendlicht |
|---|---|---|
| 3,40 | Tore pro Spiel | 0,98 |
| 11,88 | Schüsse pro Spiel | 4,54 |
Neu ausgeführte Demo-Serie mit der aktuellen Engine und gleicher Formation. 10.000 Spiele, Seeds 20261011–20271010. Alle Durchschnittswerte gelten je Team.
04 · Das Produkt
Den Kader verstehen und Entscheidungen treffen
Als die Spielmechaniken standen, begann ich mit der Oberfläche. Was möchte ich nach dem Login sehen? Wie verstehe ich meinen Kader? Die Mannschaftsübersicht führt zu den einzelnen Spielern: Fitness, Positionsrating und Saisonleistungen zeigen, wie sie sich im Spiel bewähren. Talent, Traits und positionsabhängige Attribute erklären ihre Stärken. So werden Aufstellung und Training zu Entscheidungen, die ich nachvollziehen kann. Auch diese Ansichten entwickelte ich iterativ weiter.



05 · Unter der Haube
Simulation, Backend und Oberfläche verbinden
Das Backend steuert die Freigabe vorberechneter Spiele und die Abwicklung von Transfers.
Der Weg eines Spiels
Von der Vorsimulation bis zum Spielabschluss.
Die Engine berechnet jedes Spiel vorab aus Aufstellung und Taktik.
Ergebnis, Aktionen und Spielauswirkungen warten in separaten Staging-Tabellen.
Das Backend übernimmt Spiel und Timeline in die regulären Tabellen.
Das Spiel wird live geschaltet und der Stream freigegeben.
Fastify sendet die vorberechneten Aktionen zeitgesteuert per SSE an die Web-App.
Das Backend aktualisiert Tabelle und Spieler und bereinigt die Staging-Daten.
Der Weg eines Transfers
Vom Auktionsangebot bis zum Vereinswechsel.
Das Backend legt das Angebot an und erstellt die Auktion auf Base.
Der Contract hält das Gebot und erstattet überbotene Bieter.
Bestätigte Gebote aktualisieren den Preis, späte Gebote verlängern den Countdown.
Der Monitor prüft Ablaufzeit und Auktionszustand auf Base.
Das Backend löst die Auszahlung aus und wartet auf Blockchain-Bestätigung.
Der Spieler wechselt zum Gewinnerverein und der Transfer wird gespeichert.
Sofortkäufe werden über einen separaten Transaktionsmonitor abgewickelt.