Corkscrews, Pinball Machines, Bouncy Mushrooms, Pulleys, Sloped Elevators, Flame Throwers, just to show a few
Every level should have gimmicks, and there should be a lot of them. Without gimmicks, you have flat dull level. Imagine Chemical Plant without the tubes, mega mack, blue balls, stair platforms, etc. It's not so interesting, is it? Again with matching the level theme; a gimmick usually matches the theme of a zone, at least somewhat. A high amount of them is essential though. A lot of fan games and hacks have fallen short by not introducing anything new to the table. Lets say you have a water zone. What would be something cool to make it fresh and original?
Here's a quick example I came up with. The player is walking around in a water ruin. They come up to a ledge, but don't notice the ground crumbling. Suddenly they fall into the pool of water, which has a whirlpool in it. The whirlpool sucks the player into the lower water levels. If the player is quick on their feet though, they can avoid the whirlpool by jumping. Neat little gimmick, and it teaches the player.
Know Your Engine
This is something I see missed quite often in fan games. People will make level designs in their fan games unaware (or don't care) that said level design isn't flowing so well with their game engines limitations. After Sonic Zero got some people playing the demo, I was made aware that a player could easily stick to the ceiling of pipe tiles if they hit it at just the right angle. That's not a favorable outcome. The pipe collision has since been redone to where there's no curves underneath a pipe for a player to get caught on. It's all part of the learning process. Know what your engine is capable of, know how it handles even the basic of slopes, and work your level design around that. If you don't, you're gonna start making some goofy level design that your engine won't be able to comprehend the way a player would expect it to.
P.S.: Don't be afraid of path swappers. They can take some difficulty in figuring out, but once you get the hang of it, there's a lot that you'll be able to do in level design, and can result in some very crazy and fun levels!
With that, I think I've covered most of the ground work on level design. I'd love to hear some opinions on each point, if I missed anything, or if something isn't making sense. I wouldn't be surprised since I'm half awake right now. Heck, if someone wants to write their own interpretation or guide I could just add it to this post.
Anyway, I'll close with a few miscellaneous acknowledgements.
This Stupid Thing
If there's a pit, it should be obvious there's a pit, and thus something you won't jump down to. If it isn't obviously a pit, then there shouldn't be a pit there at all. If the level is a sky, space zone, whatever thing floating over an abyss zone, then these signs definitely don't need to be there. Just the trope of the level should signify if the player needs to be aware of pits. Hill Top? You're up in the mountains, best better watch your step. Sky Sanctuary? You're in crumbling ruins in the sky. Don't fall. Have fun. These signs just warn the player of death without the learning experience. It's holding your hand through the game for you.
Whatever-the-hell these things are called
I'm kind of on the fence about them. It's all about if you can execute them right, and if they belong in the respective level. For example, these kinds of slopes don't really belong in a tropical level (Splash Hill), but it could work if said tropical level was like a seaside bluff or something. It's all about execution and if such a slope fits the level theme.
Let these things expand the level layout. Don't make it to where they carry Sonic through the level with no interaction on your part other than hitting the first one. This means your use of diagonal springs probably won't be too high.
I've talked to people that like these, and I've talked to people that are less fond of these. They add a bit of replay value, but if you make it stupid easy and have a short amount of levels, that replay value won't last long.