If a challenge is a way to test the player’s skill with the mechanics of the game, then it follows that those mechanics will intrinsically inform your level design. I wrote before about how it’s best to hold off on level design until you’ve solidified your mechanics and other content (such as enemies). This is because good level design is built around the mechanics.
An important thing to keep in mind when designing challenges is that a challenge is only as difficult as the easiest way past the obstacle. In other words, if there’s an easy way to get the goal and a hard way to get the same goal, the player is going to choose the easy way. What this means is you have to keep your mechanics in mind when designing levels, or else a challenge which you intended to tax a certain skill at a certain level of difficulty might be easily bypassed by using another skill.
Let’s say, for example you have an enemy which throws bombs in an arc. You want to test the player’s ability to dodge the bombs. But let’s also say that in this game you have the ability to jump and shoot horizontally. If you place the enemy in such a way that the player can easily jump up and shoot the enemy before they even enter the area threatened by the bombs, then that challenge is lost.
The challenge at that point becomes shooting a stationary target with no time restraints. There are a few solutions to this. You could put the enemy somewhere where the player can’t reach them. You could also place a second enemy that threatens the player in the area where they are able to shoot the bomb-throwing enemy (thus giving the player a choice between avoiding the bombs, or avoiding the attacks of the second enemy in order to remove the threat of the bomb-thrower. More on this in the next chapter)
Here’s an example with enemies that shoot directly downwards. In the first example, you can easily jump up and shoot them without ever entering their line of fire:
One solution to this is to move the enemies up so that the player can’t hit them, but they can still threaten the path the player has to traverse to get to the goal:
Note that example 1 constitutes a challenge, but it isn’t necessarily the challenge that we want. It requires the player to jump and shoot at the top of their jump arc, but it puts no time constraint on that, and it doesn’t require the player to avoid anything.
And this is why it’s so important to consider the range of what the player is able to do when designing levels. The same level could play entirely different based on the mechanics of your game. Think of the classic Megaman games, for instance. All of the levels are built around the idea that, at least at the start, your only attack is a horizontal projectile. You can’t aim your shot. You can’t shoot up, or diagonally. Thus enemies can be placed with this in mind. If an enemy falls from above, your only option is to get out of the way or take damage; you can’t shoot it while it’s above you. If you changed Megaman so that you could aim freely but kept all the levels the same, almost all the challenge would disappear immediately. And if you popped Megaman’s horizontal shooting into Super Mario Bros as a default action (ie. Something you don’t need a power-up to get like the fire flower), but kept the same level design, the enemies would basically present no threat.
I have three examples of the same level with three sets of mechanics: one where you can run and jump, one where you can run, jump and shoot horizontally, and one where you can run, jump and shoot in all directions.
In the first example, there’s no way to shoot any of the enemies, so you’re required to make some precise jumps over the enemies with the right timing to avoid the projectiles.
In the second example, the enemies on the ground can be easily dealt with without putting yourself in risk. The enemy that shoots horizontally can be shot, but since you both shoot horizontally, you have to enter its line of fire in order to hit it, and therefore need to time your attack in order to avoid getting hit yourself.
In the third example, you can aim freely. Everything can now be hit without entering any area it threatens. You could shoot every enemy from the starting position, and then jump through the now safe level to the goal.
The key thing to notice here isn’t that the challenges get easier as abilities are added, although they certainly do get easier. The key thing is that the nature of the challenges changes. In the first example, you need to use precision platforming and timing. In the second, you need to have a bit of timing combined with aim to hit the horizontal enemy without getting hit yourself.
The key is to know what the player is able to do, both in terms of the actions, and in terms of the numbers at play in those actions (for example, how high the player can jump). It’s then important that you have obstacles that fit those challenges. If you are able to fire in all directions, it might be a good idea to either be able to fire in all directions or move in such a way that it can get into a firing position. In addition to that, giving the player specific weaknesses, such as only being able to fire horizontally, opens up possibilities in level design by allowing you to take advantage of those areas of disability in order to craft interesting challenges.