Metin2 EXP-Einstellungen gehören zu den entscheidendsten Balances, die den Charakter eines Servers prägen: Ist die Erfahrungskurve zu steil, bleiben Spieler schon auf den ersten Maps stecken und hören auf; ist sie zu flach, fehlt jedes Erfolgsgefühl und der Content ist an einem Tag aufgebraucht. In diesem Leitfaden zerlege ich das Erfahrungssystem in seine Bestandteile — die Level-Tabelle exp.csv, die Basis-Exp in mob_proto, die Level-Differenz-Strafe und die Server-Rate — und erkläre, wie man eine Levelkurve entwirft, die sowohl spielbar als auch nachhaltig ist.
Was ist exp.csv und wie wird sie gelesen?
Im Datenverzeichnis des Servers enthält exp.csv die Erfahrung, die zum Aufstieg ins nächste Level nötig ist, einen Eintrag pro Level. Der Game Core lädt diese Tabelle beim Start in den Speicher; sobald ein Charakter genug Exp sammelt, steigt er ein Level auf und schaut auf die nächste Zeile. Die Datei ist eine einfache, einspaltige Liste, bei der die Zeilennummer dem Level entspricht:
1500
4000
9000
20000
36000
...
Hier ist die erste Zeile die Exp, die für den Schritt von Level 1 auf Level 2 nötig ist, die zweite Zeile für Level 2 auf 3 und so weiter. Die Länge der Tabelle definiert faktisch auch das Level-Limit: Sind keine Zeilen mehr übrig, kann der Charakter nicht weiter aufsteigen. Willst du das Limit anheben, musst du sowohl neue Zeilen zu exp.csv hinzufügen als auch sicherstellen, dass die Konstante vom Typ PLAYER_MAX_LEVEL im Quellcode das zulässt.
Die Levelkurve entwerfen
Eine gute Kurve ist kein Haufen Zahlen — sie ist eine Geschichte über das Tempo. Die klassische Metin2-Kurve ist exponentiell: Jedes Level ist spürbar teurer als das vorherige. So fließen die frühen Level schnell vorbei, während die letzten Level zu einem echten Ziel werden. Beim Entwerfen einer Kurve halte ich mich an ein paar Grundsätze:
- Ein sanfter Start: Die ersten 30 Level sollten in Minuten vergehen, damit sich ein neuer Spieler an die Systeme gewöhnt und nicht sofort abspringt.
- Stufen-Mauern: Die Kurve an bestimmten Leveln bewusst zu verschärfen (etwa an den Schwellen, an denen neue Maps öffnen), lenkt Spieler zu frischem Content.
- Keine plötzlichen Sprünge: Kostet ein Level das Fünffache des vorherigen, fühlt der Spieler, dass er gegen eine Wand läuft. Halte die Wachstumsrate schrittweise.
Statt die Kurve von Hand zu schreiben, ist es weit konsistenter, sie mit einer Formel zu erzeugen. Ein einfaches exponentielles Modell lässt sich so bauen:
# exp.csv mit Python erzeugen (Beispielmodell)
basis = 1500
for level in range(1, 105):
benoetigt = int(basis * (level ** 2.6))
print(benoetigt)
Indem du den Exponenten (hier 2.6) und die Basis änderst, stellst du die Steilheit der Kurve ein. Die erzeugte Ausgabe direkt in exp.csv zu schreiben und auf einem Testserver zu probieren, ist weit schneller, als die Zahlen nach Augenmaß auszubalancieren.
mob_proto: die eigentliche Quelle der Erfahrung
Die Level-Tabelle beantwortet die Frage „wie viel Exp wird gebraucht“; die Antwort auf „woher kommt diese Exp“ steht in mob_proto. Die Zeile jedes Monsters trägt eine exp-Spalte, die Basis-Erfahrung, die es beim Tod gewährt. Kurve und Mob-Exp müssen einander ergänzen: Kombiniere eine teure Kurve mit niedriger Mob-Exp, und das Spiel wird zum Grind; mach das Gegenteil, und Spieler erreichen das Maxlevel binnen Stunden.
In der Praxis ziehst du an einem von zwei Hebeln: Entweder hältst du die Kurve (exp.csv) fest und skalierst die Mob-Exp, oder du lässt die Mob-Exp unberührt und glättest die Kurve. Beides gleichzeitig zu ändern macht die Balance schwer nachvollziehbar; jeweils eine Variable zu justieren ist weit vorhersehbarer.
Die Level-Differenz-Strafe: warum gibt ein Level-1-Mob einem Level 99 keine Exp?
Ein unsichtbarer, aber entscheidender Teil der EXP-Abstimmung ist die Level-Differenz-Strafe, die der Game Core bei der Berechnung der Belohnungen anwendet. Stirbt ein Monster, skaliert der Core die gewährte Erfahrung nach der Level-Differenz zwischen dem angreifenden Charakter und dem Monster. Tötest du einen Mob weit unter deinem Level, erhältst du nur einen kleinen Bruchteil seiner Basis-Exp; dieser Mechanismus verhindert „Powerleveling“ an Low-Level-Spots und hält die Wirtschaft im Gleichgewicht.
Dieses Verhalten ist im Server-Quellcode innerhalb der Belohnungsfunktion über eine Verhältnistabelle implementiert. Auf Private Servern ist das Glätten dieser Kurve (selbst bei großen Level-Differenzen vernünftige Exp zu geben) eine häufige Modifikation — aber Vorsicht: Entferne die Strafe vollständig, und du öffnest die Tür dafür, dass High-Level-Spieler ihre Low-Level-Freunde in Minuten hochziehen. Damit wird dein gesamtes Level-Tempo bedeutungslos.
Die Server-Rate (EXP-Rate) und Config
Was Spieler mit einem „x1-, x5-, x50-Server“ meinen, ist der globale Multiplikator, der über die Basis-Erfahrung angewendet wird. Das offizielle Verhalten ist x1; Private Server wenden diesen Multiplikator meist im Quellcode über eine Variable zum Belohnungszeitpunkt (z. B. ein Derivat von g_iExpRate) oder per Konfiguration an. Den Multiplikator anzuwenden ist technisch einfach; die eigentliche Arbeit ist, die richtige Rate zu wählen:
- Niedrige Rate (x1–x5): für langlebige, „klassische“ Server, die Spieler langsam, aber gebunden halten. Der Content reicht für Monate.
- Mittlere Rate (x10–x50): die beliebteste Spanne. Sie reduziert den Grind, lässt aber dennoch ein Gefühl von Fortschritt.
- Hohe Rate (x100+): für schnelle, PvP-orientierte Server. Hier ist Leveln kein Hindernis mehr, sondern eine Formalität; die gesamte Balance verlagert sich auf Items und PvP.
Behandle den Multiplikator als strategische, nicht bloß numerische Entscheidung: Die Rate muss die Erfahrung widerspiegeln, die dein Server verspricht. Die Rate nach dem Start zu senken verärgert die Community, deshalb ist es am gesündesten, sie vorab mit echten Spielern auf einem Testserver zu erproben und früh festzulegen.
Party, Premium und temporäre Boni
Über Basis-Exp und Multiplikator stapeln sich noch ein paar Schichten. Der Core gibt Spielern, die in einer Party jagen, einen kleinen Bonus je nach Mitgliederzahl und verteilt die Erfahrung unter den Mitgliedern, was Gruppenspiel fördert. Premium-Accounts und Items wie Erfahrungsringe fügen einen separaten Prozentsatz hinzu. Dazu kommen die temporären Exp-Events, die du in Zeiträumen wie Wochenenden laufen lässt.
Die Falle hier ist das Stapeln von Boni: Wenn x50-Rate + Premium + Ring + ein Wochenend-Event zusammenkommen, kann die effektive Rate weit über das hinausklettern, was du entworfen hast. Plane die Kurve so, dass du auch das Szenario mit maximalen Boni berücksichtigst; sonst kann der als „langsam“ entworfene Server an Event-Tagen in einer Stunde durchgespielt sein.
Häufige Fragen
Ich habe exp.csv bearbeitet, aber im Spiel ändert sich nichts, warum?
Der Game Core liest diese Tabelle nur beim Start. Nach dem Speichern der Datei musst du den betreffenden Core/Channel neu starten. Stelle außerdem sicher, dass die Datei im richtigen Datenverzeichnis liegt und jede Zeile eine einzige gültige Zahl enthält; eine kaputte Zeile kann alles ab diesem Punkt bedeutungslos machen.
Kann ich das Level-Limit anheben, indem ich nur Zeilen zu exp.csv hinzufüge?
Nicht allein. Zeilen zu exp.csv hinzuzufügen verlängert die Tabelle, aber das Maximallevel wird auch von einer Konstante im Quellcode begrenzt. Stimmen die beiden nicht überein, bleibt der Charakter auf einem bestimmten Level hängen. Um das Limit wirklich anzuheben, musst du womöglich auch den Quellcode aktualisieren.
Zieht ein Server mit hoher Rate mehr Spieler an?
Er erregt anfangs Aufmerksamkeit, hält Spieler aber allein nicht. Eine sehr hohe Rate macht das Leveln bedeutungslos, und Spieler erreichen schnell den Punkt „nichts mehr zu tun“. Nachhaltigkeit kommt aus der Balance zwischen Rate und Menge an Content — Systeme, PvP, Events.
Willst du eine ausgewogene Erfahrungskurve für deinen Server aufbauen? Vom exp.csv-Entwurf über die mob_proto-Skalierung bis zur Abstimmung der Level-Differenz-Strafe können wir das ganze Exp-System gemeinsam planen. Nimm Kontakt auf und lass uns über das Tempo deines Servers sprechen.