Don’t punish the player
One of my pet design hates is when a game deliberately punishes you, either for doing well or for something as innocent as picking up some health.
The main focus of this particular rant is the FPS games Doom and Serious Sam, although the same basic mechanism is seen in many other genres.
You'll know the situation I mean – you're going through a level in either of the above games and see a health pickup or a nice weapon lying there. You're low on both health and ammo and think “Great! Finally a chance to stock up and get back into the fight.” You trot over, pick up the item then suddenly enemies spawn around you. You use your new found weapon and health to fight them off and when they are finally down, your health and ammo are back to where they started. A bit further on is another set of pickups…
Doom (in all it's incarnations) and Serious Sam are by far the worst offenders here. If it only happened a few times in the whole game it would be a shock “Surprise!” to the player and a set of memorable events. When it starts to happen a couple of times in every level then it starts to become less of a surprise and merely becomes annoying. When this “punishment” method is used so often it becomes the main characteristic of the gameplay then it transcends annoying and in my opinion becomes farcical.
Trying to keep the player on the edge of their nerves, where every encounter could prove deadly is a great way to add atmosphere if done correctly. Other games (such as Half-Life 2 if we're keeping the FPS slant) can ratchet up the tension, string you along on low health and ammo by use of clever level design and enemy placement. Simply spewing enemies out of the ether when the player wants to rest and heal up is very poor, cheap game design.