Fortuna würfelt, verwaltet Münzen und hält Kampagnen auf Discord-Servern schon lange am Laufen. Hinter den Kulissen war der Bot jedoch zu einem einzigen großen Programm angewachsen, das alles gleichzeitig jonglierte — und die Nähte begannen zu reißen. Also taten wir das, womit jedes langlebige Projekt irgendwann konfrontiert wird: Wir haben ihn von Grund auf neu gebaut.
Das neue Fortuna reagiert schneller, läuft unter Last stabiler, lässt sich von uns leichter weiterentwickeln und ist bereit, mit deinem Spieltisch zu wachsen. Der größte Teil dieser Arbeit fand an Stellen statt, die du nie zu Gesicht bekommst — und genau das ist der Punkt. Aber die Ergebnisse zeigen sich überall dort, wo du den Bot tatsächlich benutzt. Hier ist die ganze Geschichte: was sich geändert hat und warum das wichtig ist.
Das ursprüngliche Fortuna basierte auf einem verbreiteten Muster: ein Bot, der eine dauerhaft offene Verbindung zu Discord hält — das, was Discord das Gateway nennt — und ununterbrochen auf alles lauscht, was auf jedem beigetretenen Server passiert. Um die Last beim Wachstum des Bots zu bewältigen, wurde diese Verbindung in mehrere parallele Kopien aufgeteilt, sogenannte Shards, von denen jede ein eigener laufender Prozess war, der überwacht, neu gestartet und gesund gehalten werden musste.
Das funktioniert, und es funktionierte jahrelang. Aber es bringt echte Kosten mit sich. Ein dauerhaft verbundener Bot verbraucht ständig Arbeitsspeicher und hält Zustand vor, selbst wenn niemand einen Befehl eintippt. Jeder Server, jeder Kanal und jedes Mitglied, das er sehen konnte, brachte zusätzliches Gewicht. Wenn ein Shard ins Stocken geriet, konnte ein ganzer Schwung Server das zu spüren bekommen. Und jede neue Funktion musste sorgfältig durch ein Programm gefädelt werden, das ohnehin schon ein Dutzend Dinge gleichzeitig erledigte.
Wir wollten etwas Schlankeres. Etwas, das die Arbeit erledigt, wenn es Arbeit gibt, sich still verhält, wenn nicht, und aus kleinen Bausteinen besteht, die wir einzeln reparieren oder skalieren können.
Für Befehle haben moderne Discord-Bots eine bessere Option: Statt eine Verbindung offen zu halten und zu warten, kann der Bot sich von Discord anrufen lassen, sobald jemand tatsächlich einen Slash-Befehl benutzt. Discord schnürt den Befehl zusammen, schickt ihn als eine einzige sichere Web-Anfrage hinüber, und der Bot antwortet. Keine stehende Verbindung, kein Leerlaufgewicht. Wenn nichts passiert, verbraucht der Bot so gut wie nichts.
Das ist der Kern des neuen Designs. Wir haben den alten Monolithen in zwei fokussierte Teile zerlegt:
Stell es dir wie ein Restaurant vor. Das alte Fortuna war ein einzelner, hektischer Koch, der gleichzeitig Bestellungen aufnahm, den Gastraum managte und die Küche schmiss. Das neue Fortuna hat eine Küche, die sofort anspringt, wenn eine Bestellung eintrifft (fortuna-http), und einen einzigen aufmerksamen Empfang an der Tür, der nach Laufkundschaft Ausschau hält (fortuna-gateway). Jeder macht seine Sache gut, und keiner bremst den anderen aus.
Architektur-Gerede ist ja schön und gut, aber hier ist, was du auf deinem Server wirklich merkst.
Flottere Reaktionen. Weil der Befehlskern nur eine Sache macht und keinen Leerlaufballast mit sich herumschleppt, antwortet er schnell und gleichmäßig. Es gibt weniger, hinter dem ein Befehl anstehen muss.
Mehr Zuverlässigkeit. Die beiden Teile sind voneinander unabhängig. Wenn der Chat-Wurf-Helfer einen Neustart braucht, laufen deine Slash-Befehle ohne mit der Wimper zu zucken weiter. Probleme bleiben eingegrenzt, statt durch den ganzen Bot zu schwappen.
Stabiler unter Druck. Ein zustandsloser Befehlskern sammelt kein Gewicht an, wenn immer mehr Server und Spielende dazukommen. Hektische Abende verhalten sich viel eher wie ruhige.
Schnellere Verbesserungen. Mit einem sauberen, modularen Kern können wir Funktionen hinzufügen und reparieren, ohne alles drumherum zu stören. Neue Befehle fügen sich sauber ein, was bedeutet, dass Updates dich schneller erreichen.
Eine Neuentwicklung ist auch die Gelegenheit, die Dinge auszuliefern, die wir schon länger ergänzen wollten. Das neue Fortuna bringt eine ordentliche Ladung Funktionen mit:
/lc für Mitglieder und /mod_lc für Moderatoren zur Verwaltung der Guthaben. Belohnungen und Ränge bleiben auf deine Community beschränkt./config-Befehl bündelt die serverspezifischen Einstellungen an einem Ort, sodass jede Community Fortuna passend zu ihrer Spielweise einstellen kann./handouts-Ablauf, so wie es ein guter virtueller Spieltisch tun sollte./checkin-Befehl macht es leicht, die Anwesenheit zu vermerken und deine Gruppe auf Kurs zu halten.All das steht neben dem, was Fortuna schon immer gut konnte: reichhaltiges Würfeln (sowohl über Slash-Befehle als auch durch das Eintippen von Würfen direkt in den Chat), die tägliche Belohnung, Ränge, den Shop und den ganzen Rest.
Eines der größten Komfort-Upgrades steckt direkt im neuen Kern: vollständige Lokalisierung. Fortuna spricht jetzt alle Sprachen von Discord — über dreißig Sprachregionen — und wählt automatisch die richtige aus, basierend auf den Discord-Einstellungen jedes Nutzers. Befehlsnamen, Beschreibungen und Antworten kommen in der eigenen Sprache der Spielenden an, mit einer sinnvollen Rückfallkette, sodass niemand jemals auf eine fehlende Übersetzung starren muss. Ob dein Tisch auf Portugiesisch, Englisch, Spanisch, Französisch, Japanisch oder irgendetwas dazwischen spielt — Fortuna holt jeden dort ab, wo er ist.
Wenn du auf technische Details stehst, hier ein paar der Entscheidungen, auf die wir stolz sind — und du kannst diesen Abschnitt bedenkenlos überspringen, wenn nicht.
Jede Befehlsanfrage von Discord wird mit Ed25519-Signaturen kryptografisch verifiziert, bevor Fortuna darauf reagiert, sodass der Bot nur auf echte, unmanipulierte Anfragen antwortet. Der Befehlskern läuft auf Bun mit dem leichtgewichtigen Hono-Framework; der Chat-Wurf-Helfer ist ein kleines, statisch kompiliertes Go-Programm, das im Leerlauf nur einen winzigen Fußabdruck hat. Beide werden als saubere, containerisierte Images ausgeliefert, was die Bereitstellung schnell und reproduzierbar macht. Und wir haben ein vernünftiges Fehler-Monitoring eingebaut, damit wir es mitbekommen und schnell beheben können, wenn doch einmal etwas schiefgeht — wobei wir stets darauf achten, niemals etwas Sensibles zu protokollieren.
Die gemeinsame Würfel-Engine ist dieselbe vertrauenswürdige Mathematik, die auch unsere anderen Werkzeuge antreibt, sodass ein Wurf exakt dasselbe bedeutet, egal ob du ihn auf Discord oder irgendwo sonst im Ökosystem machst.
Nichts davon ändert den Geist von Fortuna. Er ist immer noch der freundliche Bot, der deine Würfel rollt und deine Kampagne organisiert hält. Was sich geändert hat, ist das Fundament darunter: schlanker, stabiler und so gebaut, dass wir ihn immer weiter verbessern können, ohne dir dabei im Weg zu stehen.
Füge Fortuna zu deinem Server hinzu, probiere die neuen Befehle aus und sag uns, was du als Nächstes sehen möchtest. Die Würfel sind bereit, sobald du es bist.