Any tips for difficulty curve system of an endless runner ?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By GameVisitor

Hey there,

Since I am working on my first game ever, is there any difficulty algorithm I can get inspired for an endless runner type of game ?

How should the difficulty rise in an acceptable rate for a casual player ?


:bust_in_silhouette: Reply From: Poobslag

The runner-type games I’m familiar with let novice players play for about 10-20 seconds, and experienced players play for 1-2 minutes.

So if a novice player can react to your obstacles in about 800 ms, (they have to slow down and parse your obstacles) and an experienced player can react to your obstacles in about 100 ms (they have muscle memory), you will want to increase the obstacle speed from 1x to 8x speed over the course of 50-100 seconds.

Naively this could just be a linear or logarithmic scale which goes from 800 ms to 790 ms, 780 ms, 770 ms, 760 ms and so on, but that is boring. Humans like surprises, they like difficulty spikes, and they like being given breaks. So I’d consider stair-stepping your difficulty, oscillating it, and things like that. Maybe a graph like this: Desmos | Graphing Calculator

I am thinking of starting linearly first but thx a lot for your feedback, will investigate it later on. Btw, in your formulas x is the increasing difficulty right ?

Also, any standard way for the decision of incrementing the difficulty ?
Thx again

GameVisitor | 2020-04-13 08:33

Well, ‘x’ in that graph is the amount of time a player has survived. So, the game gets harder over time, but sometimes it gets a little easier in the short term as well.

WIth runner games, difficulty would be a function of distance (if you’re given control over your velocity) or time (if you move at a constant speed). So in your _physics_process method you’d just have a piece of code like obstacle_speed = compute_obstacle_speed(total_time) or something like that.

Poobslag | 2020-04-13 16:14