Anyone can add to these if they wish, but here is what I think makes a good fangame point by point.
Before I get to any points I pose a simple question: Why are you making a fangame?
Bosses: Should be creative not stand still or bounce around the room shooting one attack. ou should have multiple attacks and or gimmicks to mix it up. Animation is nice too.
Use Original Sprites that aren't the IWBTG sprites: Find sprites online or rip them from a game yourself.
Invisible Blocks: many people use these way too much, and here is what I think...these are a crutch a huge crutch they should be used sparingly and creatively rather than all over and chaotically. When you run into literally 50 of these in one room there is something very wrong.
Spike Triggers: The pointless: you trigger it before you even get to it why? Overuse: Trigger after Trigger after Trigger.
Use Spike triggers creatively, effectively, and sparingly. 3-5 triggers or combinations of triggers in one room is good or more just don't go overboard and place trigger after trigger.
Creative Traps: You don't have to use just spikes all over you know or pitfalls. The fun of an IWBT fangame is you never know what you'll get next. Like a laughing clown that slowly pops out of nowhere would be random spontaneous and weird. You want to give the player a sense of hell and enjoyment at the same time not for every room, but every now and then.
Gimmicks: Almost nobody uses these if you don't know how to make something like gravity, water, ice physics, speed increase, room flipping, room spinning, etc. Ask someone for help. Gimmicks break up the monotony of jumping and add more enjoyment and a better experience for the player especially in conjunction with traps.
Tediousness: This is a big one to me. This also delves into save placement. Example: You go through a whole bunch of traps only to come up to an insanely hard trap after with no saves. You're forced to go through all of that again and again and again. This will turn the player off from playing if it just keeps continuing over and over. These games are meant to be hard not tedious. If you want to break up the tediousness place a save after a very repetitive part.
Delicious Fruit: So you're playing a fangame and for absolutely no reason you run into a whole bunch of lines of delicious fruit. You can put something else besides delicious fruit in your game it's just stupid to have a ton of delicious fruit for absolutely no reason.
Funny Factor: Remember in IWBTG when you would go to the next screen and die or fight something absolutely ridiculous and laughed a little or a lot? I see none of this in current fangames it's what makes an IWBT game really good is the abstract and weird. As an LPer it also gives you that WTF moment and is simply amazing. Now I'm not saying to put funny trap after funny trap, because then it will become very expected. Make it so the player never even knows it's coming.
Boundary Killers: We don't need these we have player killers for that. Make walls or something if it's a pit then it's ok if I run into a side or top boundary where NO player killers are why do I die.
Fixxes for Boundary Killers include: A dummy screen you know you jump and enter another screen where a ceiling is or w/e, Walls for the sides, Some creative trap that stops you from going outside the boundaries.
Intricate Jumps: We don't need these in the beginning non-stop. These turn a player off from playing the game when alls you have are intricate jump after intricate jump. The Final Area or later in the areas should include these also be fair about the type of intricate jump you use and put saves before insanely difficult ones. ESPECIALLY if the player had to go through a bunch of other intricate jumps just to reach this insanely difficult intricate jump, because then we run into tediousness.
Glitches: Some are fun and some aren't...When you have a platform that sends the player up and they get stuck in the ceiling or in the blocks or w/e that is terrible. Either put a player killer there or within the block itself to kill the player if need be. Cool glitches would include: Easy Boss Kills, Shooting something off screen, Saving from a different screen etc.
Save Placement: Saves should be used according to what you think deserves it. If a player just went through a difficult room(s) they should get a save. Don't make it to the point where the player has to go through 5 rooms with intricate jumps and ridiculous jumps on hard or medium just to get one save point. Also don't place a save where the player can save into a trap. Think fairly.
Testing: All fangames should be tested by someone other than the creator to check for fairness, glitches, and overall creativity and fun factor. The truth of it is the creators don't know what is fair and what isn't. We know where everything is how to get past it etc. My advice is to get an average player and an advanced player to test your game. The average player will show you how truely hard your game really is. The advanced player will show you the glitches and how easily your game can be broken. Always remember different people try different things.
Annoyance: You don't want to annoy the player by having a sound or song repeating that when looped will drive someone to insanity. Make sure the sound isn't played 10 times in a second or less. Use songs that will actually keep a player going rather than be turned off by.
Music Choice: MIDIS this is my personal opinion if they don't sound as good as the MP3 don't use them. Use audacity to cut down the length of an MP3 and put it to a good looping point. Use songs that are unique and fit an area or don't for all the right reasons.
Ripping off: Don't rip off straight from IWBTG or other fangames unless you get permission. Recently I've come across exact ideas that were exactly like IWBTG's I won't mention fangame names you know who you are. You have your own creativity use it.
Room Transition: Indicate how to get to the next room it's unfair to the player if you have spikes in the next room over and there's no indication of where to go next.
Level Design: make the rooms look nice and clean not scattered and crazy with blocks in weird places, spikes, cherries, and everything in weird places.
Don't make objects that constantly blink, because these hurt people's eyes and people who are prone to seizures will be unable to play your game.
Also DON'T STACK TRAPS Over and Over and Over Spikes on Spikes on Spikes = Poor Design!