How to Design an XP Curve for Your Game
An experience curve decides how fast players level up. Too flat and levels stop feeling special; too steep and the late game turns into grinding. The right curve is the one that produces the pacing you want.
The four common shapes
- Power curve —
XP = base × levelexponent. The most common choice. An exponent of 1.5–2 grows steadily and predictably. - Exponential — each level costs a fixed percentage more than the last. Grows very fast; a growth of 10–15% per level is already steep.
- Linear — each level costs a fixed amount more. Simple, fair, good for short games.
- Fibonacci — each level costs roughly the previous two combined. A classic curve that steepens quickly.
Design around time, not numbers
Players feel hours, not XP. In the XP curve generator, enter how much XP a player earns per hour at a typical point in the game. The table then shows the play time for each level and the total time to max level. Ask questions like:
- How long should the first level take? (Often a few minutes.)
- How long should the last few levels take relative to the content you have?
- Is there a sudden jump where the curve and your content stop matching?
Remember that XP per hour usually rises as players fight tougher enemies, which flattens the felt curve. If your sources scale with level, a steeper XP curve is needed to keep the same pacing.
Readable numbers
Round requirements to 10, 50 or 100 — "1,250 XP" reads better than "1,247 XP" and the shape is unchanged.
Exporting
Download a CSV to fine-tune individual levels in a spreadsheet, or copy the cumulative XP as a JSON array straight into your code.
Balancing randomness too? See the drop rate calculator and the dice probability calculator.