Designing levels for a 2D puzzle platformer

Started by
5 comments, last by Dramolion 6 years, 3 months ago

The Problem

I'm creating a 2D puzzle platformer and I'm having a little trouble creating the levels. I've created 10 levels and they're kind of boring. I was aiming for difficult puzzles that get the player thinking. The levels I've created aren't difficult, they're just long-winded. The player just looks at the level for a few moments and then thinks "Oh, so I just have to do this, this and then this". The longest levels take about 10 seconds of thinking and 3 minutes of running around. I'm not sure if just bad at making puzzles or there is a flaw in the design of the game.

The Game Design

Each level is kind of like a machine that the player must manipulate to create a path to the exit. The player can do all of this:

  • toggle switches
  • hold down buttons
  • push boxes
  • collect keys
  • open locks with keys
  • trigger laser sensors

All of these things are inputs into the machine that is the level.

There are also entities that take input. These entities can take multiple inputs and perform a logic operation on them. For example, a door can be open if switch 2 is on NOR switch 3 is on. The entities that can be activated by inputs are:

  • moving platforms
  • laser emitters
  • doors

Is there anything wrong with this? Does it lend itself to fun levels?

Example: level 7 

5a3e385e2e448_ScreenShot2017-12-23at21_33_23.thumb.png.a4e89f431da353c0b0c7aeddfb2195b9.png

I think this level is the most fun of all the levels I have made because it is the least obvious what the player must do. The player might look at the button above (bottom left) and just see what it does. The player presses the button and a box moves. "So all I have to do is press all the buttons?". The player jumps up to the next closest button (top left) but it doesn't do anything. "Wait, what?". The player will then jump around pressing buttons before realizing "Oh, the buttons have to be pressed in order". Then the door opens and the exit is accessible.

Example: level 9

5a3e3c908e6c9_ScreenShot2017-12-23at21_51_56.thumb.png.58a32324f2421a8ea3085ccac9ee163c.png

This level is easy and long-winded the player must toggle all of the switches from 0 to 9. Unlike level 7, if they make a mistake, they must reload the level. Most consecutive numbers are on opposite levels so the player has to spend a lot of time waiting for the elevator and traveling on the elevator. I can easily change the numbers by just editing 2 lines of a script so I could make it less long-winded.

Conclusion

I can't seem to be able to create levels that are any more fun than level 7. Is the design of my game flawed or am I just bad at making levels? Can anyone offer me some tips on making difficult levels for puzzle games? Can anyone offer me a few ideas for entities that might make the game more fun? Does anyone have any ideas for complex machines that I could build that are fun to interact with?

Thank you for reading this monster of a post. I'd love to hear your suggestions.

Advertisement

Puzzle design can be quite challenging, so don't feel bad if you are having a hard time. I struggle to do simpler puzzles than yours.

Are all of your levels single screen, or there is some that scroll the screen? That may make some difference in design.

Is your level editor simple enough? If so, you could leave other people try it, and see what they come up with. Can also be a good strategy to create a small community around your game. People can be really creative when you allow them to (just check some Super Mario Maker user created levels).

Unless it's by design, don't try to be tricky at each level. Not all levels should be hard. Try a incremental approach. The first levels should teach the mechanics, and subsequent levels should build on previous knowledge. For example:

- level 1 teaches how to exit a level (through the blue square, i suppose). Requires jumping, so teaches it;

- level 2 shows a lever that disables a laser out of the way;

- level 3 shows 2 levers that disable 2 different lasers, but only when used in right order;

- level 4 shows a box and a button. The buttons disables a laser, but only when an object is over it. So the player has to use the box;

- level 5 has a box, a button, a lever and 2 lasers. The lever disables the final laser, but to get to it you need to use the box on the button;

- and so on;

I may seem boring at first, but the idea is to teach the mechanics. In 10 to 20 simple levels, you teach almost everything the player needs, and also get yourself used to the game rules. This is important, because it also helps you to design other levels.

Also, give feedback to the player actions. If two levers need to be pulled in some order, give a hint when done wrond (maybe a sound, or they blink, they booth reset to the initial state).

1 hour ago, Kerndog73 said:

Unlike level 7, if they make a mistake, they must reload the level

For this part, I recommend you to consider the following:

- allow mistakes to be undone right away, if possible (wrong lever pulled, pulling it again undo the change);

- allow the user to reload the level at any time (by a single key press), so they can restart as soon as they realize their mistake;

- make level reloading as fast as possibly (instantly, is possible). Keep a reference to the initial state of the level and use it as a reloading state;

This will reduce player frustration when commiting errors.

Don't know any books on puzzle design, but you can look for some, to learn some ideas and pitfalls of the style.

I agree with everything you said.

The levels are a single screen. I've found that similar games also have a static camera. A side-scrolling camera is for exploration and adventure.

I spent about a week on the level editor but I never actually ended up using it. Currently, I use a scripting language called jsonnet which compiles into json. Using a scripting language allows the levels to be configurable. If I were to use a level editor to make level 9, I wouldn't be able to quickly change the numbers. With a scripting language, all I have to do is type the numbers into a file, recompile the level and then reload the level and the numbers change right before my eyes. Using a level editor might be a little faster but putting the levels into the computer but that is not the bottleneck. Designing the level takes much longer than putting it into the computer so the level editor won't save time anyway.

The level editor is rather difficult to use. It's not too much different to typing into a file. The user just types into some very nice looking forms that validate input rather than a text file with a compiler that gives some less helpful error messages.

The first 5 or so levels are actually exactly as you described. 

I've taught the player all of the mechanics of the game in the levels I have already created.

Pressing R will instantly reload the level so the player doesn't have to wait around and get frustrated. Also, the level is actually reloaded directly from the file (not cached) so level testing is super quick.

There are fours ads for books about game design right below my initial post.

Doors, keys and switches are all a bit the same thing.

further you got buttons, boxes and laser(danger i presume) which give your game's levels about 4 "ingrediënts"

Moving platforms don't realy add much to puzzles, it's more something for a platformer.

So yes, you don't have enough (diverse) objects to make fun/complex levels.

Here 's some things you might add:

- mirrors:to change the direction of a laser

- balloons that float up

- destructible/indestructibe boxes(or use balloons for destructible)

- some kind of a balance or tackle where putting weight on one side moves(or drags) the other side

Since originally posting this I've finished the platformer and I've started a new game. I found that the physics engine got in the way. There were a few puzzles that I wasn't able to create because of physics and lack of complexity in the game mechanics. This new game will have all the things!

Basically, I'm going to take a box pushing game like this cinematic masterpiece and add in some mechanics similar to Minecraft Redstone. Using these new mechanics I can create puzzles like "press this button 4 times to move this box out of the way". There will be lasers that act a bit like trip wires. The kind of lasers that surround the golf ball sized diamond in sky movies. The player will have to push mirrors around to divert the laser to open a door (piston door). Maybe a piston pushes the mirror and the piston is activated by something. 

This way I can add stages to the level. Like "push the box into the pressure plate to open the door" then "press these buttons in sequence to move this mirror" then "go get that box you pushed into the pressure plate and push it into this other pressure plate". This was difficult in the platformer because of the size of the level. In a platformer, you have to waste a lot of space moving the player around. Also, logic was hidden in the platform. There are AND gates and XOR gates and NOT gates all over the place but the player can't see them, so the player has to guess what they are supposed to do. In the new game, the player can see the logic gates and think about what they should do, rather than guess.

Dramolion, I like the mirrors idea and the destructible box idea sounds interesting. 

Some more ideas for game mechanics would be appreciated as I convert the whiteboard scribbles into C++.

18 hours ago, Kerndog73 said:

Some more ideas for game mechanics would be appreciated as I convert the whiteboard scribbles into C++.

Hmm, a fan that produces a airflow capable of pushing balloons left or right.

A button that reverses gravity(or aims it sideways)

Maybe a cuttable rope or something that can hold boxes and balloons together as one object.

Maybe a piece that guides an electricity flow through it to a next piece in it´s vicinity.

That´s all i got now.

This topic is closed to new replies.

Advertisement