Reducing difficulty with checkpoints

Posted by Cosine on Nov. 16, 2011, 7:10 p.m.

Copied/slightly modified from a post I made on Steam community forums:

Quote:
With every danger, the player will either pass or fail. Suppose upon every failure the level is reset for simplicity's sake. There is a probability for each danger: For x number of times that the player tries, how many times will they pass? This probability would be shown as a fraction:

__Pass__

Attempts

For example, if the player will theoretically fail for every time they pass, it would be 1/2, or 50%. Now, why do I bring this up? This can be used to calculate the overall difficulty of a level (as compared to others).

Suppose you find the pass/attempt ratio of every danger. If you take all of these fractions and multiply them together, you will get the theoretical probability of the player passing the level. For example, a level that has a danger with a 1/2 chance of passing, a danger with a 1/3 chance of passing, and a danger with a 3/4 chance of passing. The level will have a 1/8 chance of being passed. This means you can expect your player in a perfect world to fail 7 times before passing in this particular level. In the real world, players will obviously fail more or less times than this, but this gives us an approximate figure.

Now, here is another example. Suppose this is a list of pass/attempt ratios of each danger in the level.

1/8

3/10

2/7

5/11

1/20

This would be a very, very difficult level. The chances of passing are 3/12320, meaning you can expect the average player to fail in excess of 4100 times before succeeding, and therefore should probably never ever be made. I'm just using this extreme example to make a point.

Now, what effect would a checkpoint have on this level? Let's say we stuck it in here:

1/8

3/10

2/7

=CHECKPOINT=

5/11

1/20

Now let's separate the level into two groups: pre-checkpoint and post-checkpoint. The chance of passing the pre-checkpoint portion is 3/280, or about 92 failures per pass. The chance of passing the post-checkpoint portion are 1/44. Since the post-checkpoint portion does not depend on the first portion's passing for every trial, we can simply add the number of approximate failures of each portion to get our total probability of passing the level. As a result, we can expect the player to fail ~136 times before passing, as opposed to the original ~4100.

Now, let's suppose each trial of the level took 10 seconds. 136 failures * 10 seconds = 1360 seconds, or 22m 40s. 4100 failures * 10 seconds = 41000, or 11h 23m 20s. This is a difference of 11h 40s. Note that these calculations do not take into account trials that do not reset on failure, or the fact that trials will have different lengths of time.

I hope you can see why a checkpoint would be a good idea in this case. Checkpoints aren't always a good idea, but they generally lower the frustration much more than they lower the actual difficulty.

Here's a picture to help I just whipped up:

Each column is a danger/trial, and each row is an attempt. Green is pass, red is fail. Each danger has a 1/2, 1/3, and 1/4 chance of passing respectively.

I'm not a math genius, so it would be really appreciated if a few of you went over my math! I'm also looking for a way to take trials that don't reset the level into account (I think you would just multiply the fraction by 1/2, but I'm not entirely sure).

Comments

Cpsgames 13 years, 1 month ago

tldr; Your avatar has me mesmerized. :o

Taizen Chisou 13 years, 1 month ago

I guess the only things that bother me about your reasoning are

- your source probabilities would be entirely dependent upon who plays, and I'm certain your results would differ if these obstacles were tested by 64 Digiters, rather than their respective grandmothers.

- tying with the last point, the end results would only really apply when a computer is choosing outputs at random. You can't expect a player to fail an obstacle after attaining sufficient skill to overtake the supposed ratio it has- and if your obstacles are designed so, there is something wrong

- checkpoints aren't really used to ease difficulty of levels, even if they factor into them. I can have an easy as shit game with no checkpoints, or I Wanna Be The Castle Gaiden with checkpoints every five seconds. In a theoretical sense, a player has just failed a segment preceding the checkpoint, but if he hand't, would have cleared the remainder. Compare this to getting the check, /then/ dying repeatedly.

Whether or not the player is adept at the preceding segments holds no bearing on the later ones.

Checkpoints are there usually to provide ease to a player, so they don't have to repeat the segment before that they probably had no real trouble getting through.

On the flip side, they score a supposed "1/200" obstacle, and there /isn't/ a checkpoint.

I don't know. This doesn't seem like a subject that can be readily explained with math like this.

Even if it is the average, right?

Just test it and make it feel right. You play games, don't you? :P

sirxemic 13 years, 1 month ago

Your formula assumes that the probability of passing A is independent of the probability of passing B (because only in this case simple multiplication makes sense). In reality many events are in fact dependent, so to calculate the probability of passing everything isn't a simple multiplication anymore.

And what Taizen said.

So yeah, unfortunately you cannot really 'calculate' where to place checkpoints.

Cosine 13 years, 1 month ago

The math is not exact in any way, but the point still stands that a checkpoint can dramatically change the difficulty of a level, while not actually toning down any of your obstacles.

Cesar 13 years, 1 month ago

Doesn't change the difficulty, changes the frustration.

I for one am really fucking pissed whenever Skyrim decides not to autosave and I happen to die in a dungeon after 1 hour or so of exploring. I save often now, but it's still fucking annoying.

Taizen Chisou 13 years, 1 month ago

I wasn't implying that.

Same point as before- there's no calculating dificulty based upon player ability.

death 13 years, 1 month ago

yeah i don't think you can generate an average for a single obstacle. there are also many other factors than this as well. i mean the example you gave must have only like 5 obstacles, a very short level if you ask me. i don't know what single obstacle could take me 20 tries to over come lol. after 5 tries i would probably throw my controller across the room and quit the game.

this idea is just useless. though the point of "check points make the game easier" is true. games without check points are incredibly annoying. Games with not enough can get annoying too. the biggest screw up to this math of yours is the idea that most games NEVER give infinite lives. checkpoints rarely help if you are dying 2~3 times in a level since you'll either restart the whole game or go back to the beginning of the level anyway. also try throwing life bars into that math of yours lol XD

colseed 13 years, 1 month ago

it would be nice to have a formula….

I guess that's kinda true of everything though isn't it lol

Juju 13 years, 1 month ago

Define F as the frustration of an entire level.

Define Cn as the frustration experienced between checkpoints n-1 and n (0 representing the beginning of the level).

Define checks as the number of checkpoints.

Define Tn as the frustration experienced between task n-1 and n (0 representing the last checkpoint or beginning of the level).

Define Pn as the probability of passing task n.

Define k as some constant that represents the general frustration of the tasks (annoying sound effects, poor graphics et cetera).

F = C1 + … + Cchecks

Cx = T1 * … * Tn

Tx = k * Pn

Cx = kn * P1 * … * Pn

The position of checkpoints throughout the level is termed the "composition" of the checkpoints. Let's look at a scenario in which tasks = 5 and all P = 0.3. k = 8. If we look at checks = 0:

F = k5 * P5 = 85 * 0.35 = 79.6

Now let's change the composition with a checkpoint: checks = 1 with a 3/2 split in the level.

C1 = k3 * P3 = 83 * 0.33 = 13.8

C2 = k2 * P2 = 5.8

F = C1 + C2 = 19.6

What if we have every checkpoint possible?

F = checks * k * P = 5 * 8 * 0.3 = 12

It's clear that even one checkpoint can significantly reduce the frustration of a level whilst retaining apparent difficulty.

Toast 13 years, 1 month ago

This is all very well and good, but it doesn't make any sense to look at "pass/attempt" ratios from a game design perspective. That tells you nothing about enjoyability, and the entire point of this exercise is enjoyability. You should be looking at "reward/repetition" ratios, or something to that effect, which of course won't be constant. The more a task has been repeated the higher the repetition… but then achieving a less difficult, shorter task is less rewarding.

Non-gibberish version - frustration will not be constant and you haven't considered the overall enjoyability of the tasks or how aspects of the enjoyability of the tasks will be proportional to the difficulty of accomplishing them.