I've been dabbling in a lot of free games lately and I have a short message for amateur game designers out there: learn how to make an interface. I'm not talking about pretty graphical menus or coding your own keyboard driver, I'm talking about the basics of how the player interacts with the game. I've played way too many games lately where it is clear that the designer put no thought at all into the interface; it makes sense to them but it acts as a barrier for anyone picking it up for the first time. You want to avoid entry barriers and doing that is Real Video Game Design 101.
Take I Want to Be the Guy, for example. It's intended to be a loving tribute to old NES games while simultaneously being the most unfair game ever devised. This is a fine goal: it creates a unique and peculiar feel for the game encouraging paranoia as everything in the game is out to get you. If it was just the game elements I wouldn't have a problem but when your character stands on a platform moving down the jump button becomes unresponsive to about fifty percent of the presses. Needless to say the game relies on split second jump timing and a frustration is introduced before the player gets too far into the game that is completely unnecessary.
Without seeing the code I'd say that there is simply a timing disconnect between when the game checks for keypresses and when it moves sprites (moving objects on the screen). So sometimes the platform moves, then it tests the jump button condition and finds the character is not standing on anything, and then the player character falls to catch up to the platform where another test occurs. I haven't dealt with this in Flash but the simple solution would be to expand the "standing" check for the jumps to allow for that one pixel difference between the player and the platform.
Blocksum is a cute puzzler that I'm mentioning just as example of sloppiness. Once you're in the game everything is fine. What happens when you first start the game, though, is the player is confronted by the message "PRESS A BUTTON" and pressing a button doesn't do anything. So where's the "any" key? Well as it turns out the game designer defined the interface as "Button A", "Button B", and "Button C" and then defined "Button A" as the 'z' key. So "PRESS A BUTTON" means "Press the 'z' key." The only way to know this is to find out is to press the 'z' key to get past the "PRESS A BUTTON" message. I'm sure this made perfect sense to the programmer but it's just sloppy to a person first starting up the game.
And then there's Dwarf Fortress. A game with an interface that was congealed rather than designed. For all the cleverness in design and behavior contained in the game the vast majority of people who look at because of the recommendations of other players can't even get started with it. The interface has no less than four completely different ways to select an area and chooses between them at random. Each menu has its own unique method of selecting something. Status and feedback on the player's choices is often deeply buried. There's never less than two different ways to do everything and which one works and which one does something completely different for just that section seems to be random. Dwarf Fortress is a perfect example of how to try to kill a good game concept with a bad interface.
Really there's no simple solution to Dwarf Fortress's interface problems. It needs to be gutted, simplified, and completely reimplimented. Just making it coherent would be a dramatic improvement. It's a tribute to the game that people can push through that monster block and find entertainment in it but so many people pass over it just because the interface is so unmanagiable. It's the poster child for exactly how not to make an interface.
I know to some extent it's a case of getting what you pay for but I'm starting from the possibly foolish assumption that the people who made these games want as many people as possible to play them. Interface design isn't as cool as adding a new boss, lightning effects, or special monsters but it is what the player is really going to be dealing with the majority of the time and doing it poorly hurts you. So please, amateur game designers, put at least some effort in it.