Experience and levels
Erfahrung und Stufen
Every monster you beat gives you experience (XP). Collect enough, and you go up a level.
Jedes Monster, das du besiegst, gibt dir Erfahrung (XP). Sammelst du genug, steigst du eine Stufe auf.
Every level makes you a bit stronger:
Jede Stufe macht dich ein bisschen stärker:
- +10 maximum health (you start with 100),
- +10 maximale Gesundheit (am Anfang hast du 100),
- +2% damage with every sword.
- +2% Schaden mit jedem Schwert.
That doesn't sound like much. But it adds up: at level 21 you have three times the health you started with.
Das klingt nicht nach viel. Aber es läppert sich: Auf Stufe 21 hast du dreimal so viel Gesundheit wie am Anfang.
Two machines. Level 1 gives exactly the starting numbers: (level - 1) is 0. Every level after that adds a little.
Zwei Maschinen. Stufe 1 gibt genau die Anfangszahlen: (level - 1) ist 0. Jede Stufe danach legt ein bisschen drauf.
The bigger step comes from your swords. A sword found deeper down hits harder than the same sword found near the top.
Den größeren Schritt machen deine Schwerter. Ein Schwert, das du weiter unten findest, trifft härter als dasselbe Schwert von weiter oben.
How strong is a sword? Wie stark ist ein Schwert?Try it: every level costs more
Probier es: Jede Stufe kostet mehr
The first level comes after a handful of monsters. Later levels take much longer. Point at the bars:
Die erste Stufe kommt nach einer Handvoll Monster. Spätere Stufen dauern viel länger. Zeig auf die Balken:
Why make it harder? Because the monsters deeper down give more XP too. If every level cost the same, you'd shoot up very fast deep down, and the game would be too easy.
Warum wird es schwerer? Weil die Monster weiter unten auch mehr XP geben. Wenn jede Stufe gleich viel kosten würde, würdest du weiter unten sehr schnell aufsteigen, und das Spiel wäre zu leicht.
Game makers call this a curve: a line that bends upwards. Choosing the right curve is one of the trickiest parts of making a game feel fair.
Spielemacher nennen das eine Kurve: eine Linie, die sich nach oben biegt. Die richtige Kurve zu finden ist einer der kniffligsten Teile daran, ein Spiel fair wirken zu lassen.
The level formula
Die Stufenformel
The cost of the next level has three parts:
Die Kosten der nächsten Stufe haben drei Teile:
XP_BASE(500): what every level costs, even the first.XP_BASE(500): was jede Stufe kostet, auch die erste.XP_STEP × (level − 1): 1000 more for every level you already have. That's a straight line.XP_STEP × (level − 1): 1000 mehr für jede Stufe, die du schon hast. Das ist eine gerade Linie.XP_CURVE × (level − 1) ** 2: a small number times the level squared. Small at first, big later. This bends the line upwards.XP_CURVE × (level − 1) ** 2: eine kleine Zahl mal die Stufe hoch zwei. Erst klein, später groß. Das biegt die Linie nach oben.
All the numbers live together in one object, so they're easy to find and to change:
Alle Zahlen stehen zusammen in einem Objekt, damit man sie leicht findet und ändern kann:
The comment above it says where the targets are explained (docs/balance.md), and which tool checks them. Numbers like these are never just guessed.
Der Kommentar darüber sagt, wo die Ziele erklärt sind (docs/balance.md) und welches Werkzeug sie prüft. Solche Zahlen werden nie einfach geraten.
Monsters grow too
Monster wachsen auch
A monster's level is the depth it lives at: level 1 near the top, level 20 at the core. Every level adds a share of its level-1 numbers:
Die Stufe eines Monsters ist die Tiefe, in der es lebt: Stufe 1 oben, Stufe 20 am Kern. Jede Stufe gibt einen Anteil seiner Zahlen auf Stufe 1 dazu:
So a spider with 32 health at level 1 has 32 × (1 + 0.17 × 10) = 86 at level 11.
Eine Spinne mit 32 Gesundheit auf Stufe 1 hat also auf Stufe 11 32 × (1 + 0,17 × 10) = 86.
A race
Ein Wettrennen
Going down is a race between you and the monsters. Their health grows about as fast as your damage, and their damage about as fast as your health. If they grew faster, the game would get impossible. If you grew faster, boring.
Nach unten zu gehen ist ein Wettrennen zwischen dir und den Monstern. Ihre Gesundheit wächst ungefähr so schnell wie dein Schaden, und ihr Schaden ungefähr so schnell wie deine Gesundheit. Würden sie schneller wachsen, würde das Spiel unmöglich. Würdest du schneller wachsen, langweilig.
What does get harder going down is who you meet: stronger kinds, more of them, and monsters that shoot.
Was nach unten wirklich schwerer wird, ist, wen du triffst: stärkere Sorten, mehr davon und Monster, die schießen.
Try it: the race
Probier es: das Wettrennen
The game is made for a player about two levels above the depth, with a sword found along the way. Then a fight feels the same at depth 1 and at depth 20. What if you never pick up a new sword? Or never level up?
Das Spiel ist für einen Spieler gemacht, der ungefähr zwei Stufen über der Tiefe ist, mit einem Schwert, das er unterwegs gefunden hat. Dann fühlt sich ein Kampf in Tiefe 1 genauso an wie in Tiefe 20. Was, wenn du nie ein neues Schwert aufhebst? Oder nie aufsteigst?
The blue bars should stay flat. If they climb, every fight takes longer and longer, while the red ones (how long you survive) don't grow.
Die blauen Balken sollen flach bleiben. Wenn sie steigen, dauert jeder Kampf länger und länger, während die roten (wie lange du überlebst) nicht wachsen.
No cheating by farming
Kein Schummeln durch Farmen
What if you went back up to the easy depths, and beat weak spiders all day? That's called farming, and the game makes it not worth it:
Was, wenn du zurück in die leichten Tiefen gehst und den ganzen Tag schwache Spinnen besiegst? Das nennt man Farmen, und das Spiel sorgt dafür, dass es sich nicht lohnt:
- A monster more than two levels below you gives less and less XP, down to a tenth.
- Ein Monster mehr als zwei Stufen unter dir gibt immer weniger XP, bis zu einem Zehntel.
- A monster above your level gives a tenth more for every level, up to half again.
- Ein Monster über deiner Stufe gibt pro Stufe ein Zehntel mehr, bis zur Hälfte mehr.
So the fastest way to get stronger is the fun way: go deeper.
Der schnellste Weg, stärker zu werden, ist also der lustige: tiefer gehen.
d is how many levels you are above the monster. cond ? a : b is a short if. The game counts in tenths (10 means "all of it") so the numbers stay whole and exact.
d ist, wie viele Stufen du über dem Monster bist. bedingung ? a : b ist ein kurzes if. Das Spiel rechnet in Zehnteln (10 heißt "alles"), damit die Zahlen ganz und genau bleiben.
Playing a hundred games in a minute
Hundert Spiele in einer Minute
How do the makers know the curve is right? They can't play to the core after every change. So a tool plays for them: node tools/balance.mjs.
Woher wissen die Macher, dass die Kurve stimmt? Sie können nicht nach jeder Änderung bis zum Kern spielen. Also spielt ein Werkzeug für sie: node tools/balance.mjs.
It builds real worlds with the real tables, walks the route of every depth, fights 60% of the monsters it meets, opens chests, picks up better swords, and prints how strong it was when it arrived at each depth. No pictures, no waiting: just the rules.
Es baut echte Welten mit den echten Tabellen, läuft die Route jeder Tiefe ab, bekämpft 60% der Monster, die es trifft, öffnet Truhen, hebt bessere Schwerter auf und druckt, wie stark es war, als es in jeder Tiefe ankam. Keine Bilder, kein Warten: nur die Regeln.
This is only possible because the rules don't need a screen.
Das geht nur, weil die Regeln keinen Bildschirm brauchen.
Rules and pictures are kept apart Regeln und Bilder sind getrenntdepth elvl plvl maxHP hit ... weapon (most common)
1 1 2.0 110 36 ... uncommon medium i1
5 5 7.0 160 79 ... epic long i5
10 10 12.0 210 128 ... epic greatsword i10
15 15 17.0 260 166 ... epic greatsword i16
20 20 22.0 310 195 ... legendary greatsword i20
elvl: the monsters' level. plvl: the player's. Two levels above, all the way down: just as planned. hit: how hard the best sword hits.
elvl: die Stufe der Monster. plvl: die des Spielers. Zwei Stufen darüber, den ganzen Weg nach unten: genau wie geplant. hit: wie hart das beste Schwert trifft.
The real code: a kill pays out
Der echte Code: Ein Sieg zahlt sich aus
awardKill runs for every monster, every frame (it's in the loop you read in the code room):
awardKill läuft für jedes Monster, in jedem Bild (es steht in der Schleife, die du im Code-Raum gelesen hast):
- Not dead, or already counted?
return null: nothing to pay. - Nicht tot, oder schon gezählt?
return null: nichts auszuzahlen. - The XP: the monster's XP times the farming rule, rounded.
- Die XP: die XP des Monsters mal die Farm-Regel, gerundet.
awardXPadds it, works out your new level, and grows your maximum health. You also get the health the new level added.awardXPzählt sie dazu, rechnet deine neue Stufe aus und vergrößert deine maximale Gesundheit. Die Gesundheit, die die neue Stufe dazugibt, bekommst du auch.- The monster's name goes into
defeated, so it is never paid twice. - Der Name des Monsters kommt in
defeated, damit es nie zweimal bezahlt wird. - A guardian? Its gate opens for good.
- Ein Wächter? Sein Tor geht für immer auf.
whole(...) checks that a number is a whole number and not below zero. If a bug ever made half an XP point, the game would stop right there, instead of hiding the mistake.
whole(...) prüft, dass eine Zahl ganz ist und nicht unter null. Wenn ein Fehler je einen halben XP-Punkt machen würde, würde das Spiel genau dort anhalten, statt den Fehler zu verstecken.
Fair and fun
Fair und lustig
- Small steps that add up: every level, every sword makes you a little stronger.
- Kleine Schritte, die sich summieren: Jede Stufe, jedes Schwert macht dich ein bisschen stärker.
- A curve: each level costs more, because each monster gives more.
- Eine Kurve: Jede Stufe kostet mehr, weil jedes Monster mehr gibt.
- A race that stays close: monsters grow as fast as you, so fights keep their shape.
- Ein Wettrennen, das knapp bleibt: Monster wachsen so schnell wie du, darum behalten Kämpfe ihre Form.
- Reward the fun way: going deeper beats farming.
- Belohn den lustigen Weg: tiefer gehen schlägt Farmen.
- Check with a simulation, not with a guess.
- Prüf mit einer Simulation, nicht mit Raten.