Always Test Your Levels You should also get beta-testers for your levels, whenever possible.
Time Always make reasonable time limits. First, make sure that you yourself can
finish the game in the time that you have specified. Then add some extra time,
because the players will not be as experienced with the level as you.
Remember that a level is not very fun if player has to rush at top speed through
all puzzles, pausing whenever he needs to think.
Difficulty A fun level doesn't have to be difficult. It's a lot more important for the
level to be well-designed and good looking. In fact, too many difficult levels
make a game frustrating.
Design It's nice if your level looks good. Everybody can make a maze with brick walls.
However, it's a lot more fun to play a level that looks interesting, even though
you don't have to come up with a work of art.
Save Points Some levels can take a lot of time. So it's very nice to give player sufficient save points.
Some people (including myself) like to save very often, so I'd recommend putting a
save point after every 1 or 2 minutes of gameplay and after player performs any complicated task.