Economy ohne Inflation: Zahlen, die nicht explodieren
Eine Bot-Währung ist in zwei Stunden gebaut und in zwei Wochen wertlos. Über Geldquellen, Geldsenken, Arbeitsbefehle mit Abklingzeit und die Frage, wofür man überhaupt Geld braucht.
995 Wörter · 5 Min. Lesezeit
- yurna
- spielmechanik
- discord
Jeder größere Discord-Bot hat eine Währung. Man arbeitet, man bekommt Münzen, man kauft etwas. Meine erste Fassung sah so aus:
!arbeiten → Du hast 250 Münzen verdient! (alle 30 Minuten)
!täglich → Du hast 1000 Münzen erhalten! (einmal pro Tag)
!kaufen → Rollen und ein paar Gegenstände
Nach zwei Wochen hatten die aktivsten Nutzer sechsstellige Beträge, die Preise im Laden waren im Vergleich lächerlich, und die Währung war bedeutungslos. Das ist kein Unfall, sondern das erwartbare Ergebnis eines Systems, in dem Geld nur entsteht und kaum verschwindet.
Quellen und Senken
Der zentrale Begriff heißt Geldsenke. Jede Währung braucht Wege, auf denen Geld dauerhaft aus dem System verschwindet — nicht zwischen Nutzern wechselt, sondern weg ist.
| Quellen (Geld entsteht) | Senken (Geld verschwindet) |
|---|---|
| Arbeitsbefehl | Käufe beim Bot |
| Tägliche Belohnung | Gebühren bei Überweisungen |
| Aktivität im Chat | Einsätze bei Glücksspielen (teilweise) |
| Ereignisse und Verlosungen | Verfall bei Inaktivität |
Meine erste Fassung hatte vier Quellen und eine halbe Senke. Der Laden verkaufte Rollen, die man einmal kauft — danach gab es nichts mehr, wofür man Geld ausgeben konnte.
Was tatsächlich funktioniert hat:
Wiederkehrende Käufe. Ein Gegenstand, den man einmal kauft, ist eine einmalige Senke. Etwas, das abläuft oder verbraucht wird, ist eine dauerhafte. Bei mir waren das zeitlich begrenzte Rollen und Verbrauchsgegenstände, die einen Vorteil für ein paar Stunden geben.
Gebühren. Überweisungen zwischen Nutzern kosten einen Prozentsatz. Das verhindert nebenbei, dass Zweitkonten zum Punkteschaufeln benutzt werden.
Preise, die mit dem Vermögen wachsen. Bestimmte Käufe kosten mehr, je öfter man sie getätigt hat. Damit bleibt auch für Wohlhabende etwas übrig, wofür sich Geld ausgeben lässt.
Der Arbeitsbefehl und seine Abklingzeit
Der wichtigste Regler ist nicht die Höhe der Belohnung, sondern die Abklingzeit. Sie bestimmt, wie viel Geld pro Zeiteinheit ins System kommt, und sie muss serverseitig sein — mit einem Zeitstempel in der Datenbank, nicht mit einem Zähler im Speicher.
const letzte = await db.arbeit.findUnique({ where: { gilde_nutzer: schluessel } });
const wartezeit = 30 * 60 * 1000;
const vergangen = Date.now() - (letzte?.zeitpunkt.getTime() ?? 0);
if (vergangen < wartezeit) {
const rest = formatiereDauer(wartezeit - vergangen);
return antworten(`Du kannst in ${rest} wieder arbeiten.`);
}Das ist auch der Ort, an dem ich zum ersten Mal an eine Wettlaufsituation gedacht habe: Wer den Befehl zweimal gleichzeitig auslöst, kann bei naiver Umsetzung doppelt kassieren. Die Prüfung und das Schreiben des neuen Zeitpunkts gehören deshalb in eine Transaktion oder in eine bedingte Aktualisierung, die nur greift, wenn der alte Zeitpunkt noch derselbe ist.
Warnung
Bei allem, was mit Zahlen zu tun hat, die Leuten etwas bedeuten, sind gleichzeitige Aufrufe kein theoretisches Problem. Sobald jemand merkt, dass sich mit schnellem Doppelklick mehr verdienen lässt, ist es innerhalb von Tagen auf dem ganzen Server bekannt. Ich habe genau das erlebt — bei einem Glücksspielbefehl, bei dem Einsatz und Auszahlung nicht in einer Transaktion lagen.
Glücksspiel — die Sache, über die ich am längsten nachgedacht habe
Fast jeder Economy-Bot hat Glücksspielbefehle. Sie sind beliebt, sie sind einfach zu bauen, und sie sind der wirksamste Weg, Geld aus dem System zu nehmen, wenn die Auszahlungsquote unter hundert Prozent liegt.
Ich habe sie eingebaut und dabei drei Regeln für mich festgelegt:
- Keine Kopplung an echtes Geld. Weder Kauf von Währung noch Auszahlung. Sobald das der Fall wäre, ist es kein Spiel mehr, sondern ein Glücksspielangebot mit allem, was rechtlich dazugehört.
- Die Quote steht in der Hilfe. Wer wissen will, wie hoch die Chance ist, findet es heraus, ohne es zu erraten.
- Ein Limit pro Zeitraum. Nicht, weil das System es braucht, sondern weil ich keine Mechanik bauen wollte, die jemanden stundenlang bindet.
Die dritte Regel hat auf einem Server für Diskussionen gesorgt. Ich habe sie behalten.
Der Punkt, an dem ich zurücksetzen musste
Nach ein paar Monaten war die Währung nicht mehr zu retten. Die aktivsten Nutzer hatten Beträge, gegen die jeder sinnvolle Preis lächerlich wirkte, und jede Preiserhöhung hätte neue Spieler ausgesperrt.
Ich habe drei Auswege durchgerechnet:
Preise anheben. Löst das Problem für die Spitze und erzeugt ein neues am unteren Ende: Wer neu anfängt, sieht Preise, die unerreichbar wirken.
Vermögen abschöpfen — eine Art Steuer auf hohe Bestände. Technisch machbar, sozial eine Katastrophe. Es bestraft genau die, die am aktivsten waren.
Zurücksetzen mit Ankündigung. Unpopulär für eine Woche, danach ein System, das funktioniert.
Ich habe mich für den dritten Weg entschieden, und das war richtig. Was den Unterschied gemacht hat, war nicht die Entscheidung, sondern die Begleitung: zwei Wochen Vorlauf, eine ehrliche Begründung, die alten Stände als historische Werte aufbewahrt, und eine dauerhafte Auszeichnung für alle, die vorher weit gekommen waren.
Was ich daraus über Zahlen in Systemen gelernt habe
Der allgemeine Teil, der auch außerhalb von Spielmechanik gilt:
Eine Zahl, die nur wachsen kann, wächst irgendwann ins Bedeutungslose. Das gilt für Spielwährungen genauso wie für Punktestände, Zähler und alles andere, was sich ansammelt.
Jede Zahl, die Leute sehen, wird optimiert. Nicht von allen, aber von genug, um die Verteilung zu verändern.
Der Wert einer Währung entsteht durch das, was man dafür bekommt — nicht durch die Menge. Ich habe zuerst Geld gebaut und dann überlegt, wofür man es ausgibt. Richtig herum ist: Erst gibt es etwas, das jemand haben will, dann eine Währung dafür.
Der letzte Punkt klingt banal und ist der einzige, der zuverlässig funktioniert. Alles andere — Formeln, Abklingzeiten, Gebühren — sind Werkzeuge, um ein Gleichgewicht zu halten, das man zuerst herstellen muss.
Was ich am Ende über Zahlen gelernt habe
Eine Währung braucht einen Zweck, bevor sie Wert hat. Ich habe zuerst Geld gebaut und dann überlegt, wofür man es ausgibt. Richtig herum ist: Erst gibt es etwas Begehrenswertes, dann eine Währung dafür.
Sichtbare Ranglisten verstärken jede Fehlkonstruktion. Wenn man eine Vermögensrangliste anzeigt, optimieren Leute auf die Zahl — und finden jede Lücke im System schneller, als man denkt.
Zurücksetzen ist manchmal die einzige ehrliche Lösung. Als die Inflation außer Kontrolle war, habe ich nicht versucht, sie durch Preisanpassungen einzufangen. Ich habe die Währung mit Ankündigung zurückgesetzt, alte Stände als „historisches Vermögen" gespeichert und mit einer überarbeiteten Mechanik neu angefangen. Das war unpopulär für eine Woche und danach besser für alle.
Diese letzte Erfahrung hat mich mehr geprägt als der Rest. Es gibt Systeme, die man nicht schrittweise reparieren kann, weil der aktuelle Zustand selbst das Problem ist. Dann ist ein sauberer Schnitt mit ehrlicher Ansage die freundlichste Lösung.