Skip to main content
4 of 4
Fixed first image
Alex Stone
  • 573
  • 1
  • 6
  • 15

Algorithm for game difficulty/pacing curve generation in single player RPG

I'm looking at this article about pacing in entertainment and games. It suggests that all good entertainment roughly follows a pacing/engagement curve like Star Wars(below).

enter image description here

I'm interested in how I can procedurally generate random-looking curve that would conform to the Star Wars engagement intensity pattern (linear increase and oscillating peaks-valleys). The simplest implementation I can think of is a rectified sine wave and a sloped line, but that would be very predictable. I have an algorithm for perlin noise already in the game and am interested if I can leverage perlin noise algorithm to procedurally generate a varying sequence of peaks and valleys on an increasing slope.

Here's my attempt so far: enter image description here

Once I have an algorithm, I can reference it to get engagement difficulty in relation to game turn or progress through some level.


I will add my thoughts to this question in hopes that someone can correct or point out flaws in my approach below:

  • I get the basic XP system in place (previous level *1000 to advance to next level)
  • Decide on the level cap (lets say 20 levels)
  • Plot available equipment tiers vs 20 levels (regular at lvl 1, magical at lvl 10, epic at lvl 20)
  • Using the peak-valley graph decide how many fights are in each peak-valley cycle (5 to reach lvl 2, 12 to reach lvl 20).
  • estimate number of turns per fight, let's say 5 turns per fight
  • calculate xp needed and turns needed to reach to each new level
  • Plot turn number and hypothetical xp the party has at each level.

enter image description here

Now for each peak I have a number of turns and the amount of XP that the curve should have between two valleys.

Using whatever formula the curve follows at that peak (let's assume a bell curve), I can get the xp value of monsters I have to spawn during that turn. These monsters have their equipment adjusted according to the equipment vs tier/turn number that was calculated above. enter image description here

Now I need to adjust monster XP and test it at different levels. A simple sanity check: a party of 6 players must kill:

  • 750 xp of monsters in first fight in 5 turns, that is 30 actions.
  • 1500 in second fight
  • 1800 in third fight
  • 1350 in fourth
  • 555 in fifth

enter image description here

Alex Stone
  • 573
  • 1
  • 6
  • 15