Designing a game can be tricky. Everyone can come up with a concept, but often we forget the things that make games awful when we get down to the real nitty-gritty details. Simply knowing what to avoid and how to avoid it can improve the design of your game tremendously.

------------------------------------------------
Failing to Plan - Planning to fail
------------------------------------------------
This platitude is enough to make you sick. You hear it all the time. Know why that is? Because it's ABSOLUTELY TRUE.
It is important to plan your game out in detail. When planning a design, you should start vague, and add detail. Outlines are a good way of doing this. By planning things out ahead of time, you can see where you will have to accomodate and be able to work on solutions to future problems before they arise.
Plan the gameplay, the player, the enemies, the story, and the interface in detail before you even boot up.
This doesn't mean that you have to have all your graphics finished so that you can plug and chug - far from it. It's actually easier to make very simple graphics and not have any sound at first, and when everything is concrete, you add detail, and then polish. In most games, simple shapes or ripped graphics can act as good placeholders.
When you know where your game is going, you'll find that you spend a lot less time getting it there.

-------------------------------------------------
Difficulty
-------------------------------------------------
Everyone has had moments where they've just wanted to throw the controller down in frustration, and everyone has played games that you breeze through in a matter of minutes.
Several different factors contribute to difficulty. The easiest one to influence is the control of the game itself. Control has three different factors that make it good or bad.

CONTROL
The first, and probably most important thing is responsiveness. Especially in games that require good reflexes, this is essential. The game should register and respond to player movements immediately. Just as importantly, the controlled object should cease movement at the correct time. Acceleration and deceleration should both be very high.
The second thing to consider is the convenience of your controls. If the player has to use 15 different keys or has to remove his hands from the main controls at any point, you should seriously consider redesigning your controls. If several controls have to be used simultaneously, such as using a button combination to acheive a desired effect, you should consider redesigning your controls so that the combinations are simple and intuitive(double tapping for evasion, for example.)
The third thing to consider is accuracy. In some games this is not important, but in games where it is crucial(such as platform games) consider making it as accurate as possible. Allow the player to adjust direction in mid air, and in platform games allow for a variable jump height that depends on how long the player holds down the jump button(a la super mario bros.)
If the player has to fight the controls to play the game, they aren't going to have a very good time, and they will think twice before getting another game that you made.

AUDIENCE
Another important thing to consider is your audience. Is this a sequal with a following, or a game for small children? In the former case, players expect things to be a little more difficult in each progression of the game. You KNOW that Mega-Man X turbo 12 is going to be tough, and you kind of expect it. Educational games should be easy, and children's games should be a piece of cake with no complicated control schemes.

PROGRESSION OF DIFFICULTY AND PLAYTESTING
As your game starts, it should be easy, so that the player has time to become familiar with the controls before you place him in a tough situation later. All of the best games do an excellent job of tutoring - that is, they teach you the tricks and subtleties of the controls before you need them. The later mario games are a perfect example of this.
It is expected that later on your game is going to be more difficult. Tweaking difficulty can be a chore, especially when you're the designer and you've already played the game hundreds of times. It's useful to have other people play your game and issue feedback. Best of all is to have someone new play it every so often, as people who have played before will already know enough to be good. If they can pick it up and enjoy it without screaming, you know you're on the right track.

GOTCHA!
Nothing is worse than playing a game and getting killed by something that you had no chance to avoid. Traps should always have visual cues to let players know that there is danger, even if it isn't always obvious. Bloodstains, subtle differences in the graphics, and even dead bodies are all good ways to alert a player that danger is nearby.

CAMERA
The camera in a game is of vital importance. It should always show the player what lies in wait ahead as far in advance as possible. Having your camera centered on your character all the time gives fairly poor visibility, especially in faster moving games. The player should always lag a little behind the camera, so that they can see further ahead and avoid catastrophe before it happens. In platform games, the player should be able to glance at what lies below - especially on steep drop offs.

GETTING IT JUST RIGHT
In games where the player must vigilantly watch his supplies and health, such as survival horror, it is absolutely crucial to place enough health and supplies for the player to be able to finish the game, but just as important is not to place so many that the player never worries.
A player going into a huge battle should also be well stocked and healthy, instead of going into battle on their last leg with a butter knife. Players resent getting worn down before a hard battle, and you should try very hard to make sure that they have a fair chance.

SAVE POINTS AND CONTINUES
These are PC games. The player should be able to save their progress conveniently, especially in long games, and they should be able to skip to later stages in arcade games without going through all the easy beginning levels.
Two things to seriously consider - being able to save anytime, in multiple slots, and adding a stage select that allows players to jump to stages that they have already beaten.

Balancing all of these issues will insure that your game is as difficult as you want it to be, and for all the right reasons.

------------------------------------------------
Feature Creep
------------------------------------------------
We plan our games out beforehand(I hope) and we include what we want in the design phase, but there comes a time in every game's development when you think to yourself "Wouldn't it be cool if.." and before you know it, feature creep has begun.
Feature creep is a bad thing, to be avoided at all costs. This doesn't mean that you can't change your mind in the middle of the road, but when you add things that you haven't already layed the framework for you almost inevitably add tons of bugs in the process, not to mention that it takes more time to create your game.
Ideally, you should stick to your starting design and add the extras only after everything else is finished, if at all.
The best way to avoid feature creep is to plan everything out ahead of time, finish it, and then polish it. If you don't know where you're going with a game design, chances are good that you aren't going to go through with it.

------------------------------------------------
Facing the Unknown
------------------------------------------------
There comes a time in every game designer's life when they want to make different games - They want to make arcade games, or puzzle games, or RPGs and they haven't had any experience creating them. When it comes to doing this, there is only one route that provides satsfaction and a good learning experience: START SMALL.
For RPGs, try making a one character dungeon crawl first to get a good feel for the gameplay elements. For platform games, don't look any further than jump and collect. For arcade games, choose the simplest example in the genre and start with something similar.
You just aren't going to be able to make a good game in a genre that you are unfamiliar making games for. You need to learn, so that you can plan things out more efficiently and avoid potential trouble before it happens.
In fact, you will probably make a lot of VERY BAD games to begin with. Finish them, examine them and catalogue their shining moments and gaping flaws, and put them behind you. Get them over and done with, and accept the fact that they aren't as brilliant as you like.
------------------------------------------------
Working With Others
------------------------------------------------
You may think that having someone else handling work for you would be sweet. Let me tell you first hand, all parties involved will be less efficient than they would be working on their own.
YOU are the only one with a clear vision of your game. You will find that, more often than not, you will be asking to have graphics reworked, sound-effects remastered, and large chunks of code dumped and built from the beginning.
The key to working with others is clear communication. Your graphics people need to know the specifications for their art. They need to know what size the sprite will be, what style it will be in, and how much time to spend detailing it. Perfect example: My 3d animator for Disasteroids spent hours working on a 3d rendered ship, and I reduced it to a sprite that was 50x50 pixels wide. I can tell you that he wasn't pleased.
When issuing instructions, BE SPECIFIC. If you find yourself saying "Like in gameX" to describe how you want things done, you are actually telling someone to interpret a game that they may have never played, and instead of specific parameters they will go by their own, possibly skewed perceptions.

------------------------------------------------
Ripped Graphics and Sound
------------------------------------------------
I understand that making new graphics can be hard, but when you rip somebody's(probably copyrighted) work not only do you make yourself look unproffesional, you open yourself up to lawsuits. Worse, it tells everyone who sees your game that you are too lazy to learn how to do your own work, or you can't get organized enough to have someone else working on them.
Ripped graphics and sound are okay ONLY during development, as placeholders for graphics and sound that you haven't finished. You should never publicly release anything that has ripped graphics and sound. Like masturbation, it should be done only in privacy.

These are only a few factors involved in game design, but by avoiding these pitfalls you will find yourself a happier and more competent game designer with a larger following.