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).
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:
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.
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.
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